콘텐츠로 이동하기
관리 도구

Cloud Monitoring에서 Monitoring Query Language 정식 버전 출시

2021년 2월 3일
https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP-Management-tools-3.max-2600x2600_lpoFpWf.jpg
Rory Petty

Cloud Monitoring Product Manager

Google Cloud 사용해 보기

$300의 무료 크레딧과 20개 이상의 항상 무료인 제품으로 Google Cloud 사용을 시작해보세요.

무료 체험

  * 본 아티클의 원문은 2020년 12월 24일 Google Cloud 블로그(영문)에 게재되었습니다.

IT팀 및 개발팀의 개발자와 운영자는 서비스 중단 문제를 해결하고 근본 원인 분석을 수행하고 커스텀 SLI/SLO, 보고서, 분석을 만들며 복잡한 알림 로직을 설정하는 등의 작업이 가능한 강력한 측정항목 쿼리, 분석, 차트 작성, 알림 기능을 원합니다. 이러한 요구를 반영하여 오늘 Cloud Monitoring에서 Monitoring Query Language(MQL) 정식 버전을 출시한다는 소식을 전해드리게 되어 기쁩니다.

MQL은 Google에서 십 년간 내부 측정항목 쿼리 언어를 학습하고 개선한 결과물입니다. Google 내부의 프로덕션 사용자가 고급 쿼리에 사용하는 언어를 이제 Google Cloud 사용자도 사용할 수 있습니다. 예를 들어 MQL로 가능한 작업은 다음과 같습니다.

  • 비율 기반 차트 및 알림 만들기
  • 타임 시프트 분석 수행(측정항목 데이터를 전주 대비, 전월 대비, 전년 대비 등으로 비교)
  • 수학, 논리, 테이블 연산, 기타 함수를 측정항목에 적용
  • 여러 측정항목의 가져오기, 조인, 집계
  • 사전 정의된 값이 아닌 임의의 백분위수 값으로 선택
  • 정규 표현식을 포함한 임의의 문자열 조작을 사용하여 새 라벨을 만들어 데이터 집계

Cloud Monitoring에서 MQL에 액세스하고 사용하는 방법을 살펴보겠습니다.

MQL 시작하기

MQL은 간편하게 시작할 수 있습니다. MQL 쿼리 편집기에 액세스하려면 Cloud Monitoring 측정항목 탐색기에서 버튼을 클릭하세요.
https://storage.googleapis.com/gweb-cloudblog-publish/images/MQL_Query_Editor.max-1500x1500.jpg

그런 다음 측정항목 탐색기 UI에서 쿼리를 만들고 쿼리 편집기 버튼을 클릭하세요. 그러면 기존 쿼리가 MQL 쿼리로 변환됩니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Query_Editor.max-1500x1500.jpg

MQL은 작업 및 함수를 사용해 빌드됩니다. 작업은 일반적인 ‘pipe’ 관용구를 사용하여 서로 연결되며 여기에서 한 작업의 출력이 다음 작업의 입력이 됩니다. 작업을 연결하면 복잡한 쿼리를 점진적으로 빌드할 수 있습니다. Linux 명령줄에서 pipe를 통해 명령어와 데이터를 작성하고 연결하는 방식 그대로 MQL을 사용해 측정항목을 가져오고 작업을 적용할 수 있습니다. 

고급 예시를 위해 Compute Engine VM 인스턴스에서 실행되고 Cloud Load Balancing을 사용하는 분산 웹 서비스를 빌드했다고 가정해 보겠습니다. SRE '골든 신호' 중 하나인 오류율을 분석하려고 합니다.

요청 실패 비율, 즉 총 요청 수 대비 HTTP 500 응답(내부 오류) 반환 요청의 비율을 보여주는 차트를 표시하고자 합니다. loadbalancing.googleapis.com/https/request_count 측정항목 유형에는 응답 코드 클래스를 캡처하는 response_code_class 라벨이 포함되어 있습니다.

이 예에서는 비율의 분자 및 분모가 동일한 시계열에서 파생되므로 그룹화로 비율을 계산할 수도 있습니다. 다음 쿼리는 이 접근 방식을 보여줍니다.
로드 중...

이 쿼리는 두 합계의 비율에 기반한 집계 표현식을 사용합니다.

  • 첫 번째 sum에서는 if 함수를 사용하여 500 값의 HTTP 응답을 계산하고 다른 HTTP 응답 코드는 0으로 계산합니다. 이 sum 함수는 500을 반환한 요청 수를 계산합니다.
  • 두 번째 sum은 val()로 표시된 모든 요청 수를 합산합니다. 

그런 다음 두 합계를 나누어 모든 응답 대비 500 응답의 비율을 계산합니다.

이번에는 이 쿼리로 알림 정책을 만들어 보겠습니다. 알림으로 이동하여 '정책 만들기'를 클릭하고 '조건 추가'를 클릭하면 측정항목 탐색기에서와 동일한 '쿼리 편집기' 버튼이 표시됩니다.

위와 동일한 쿼리를 사용할 수 있지만 알림의 기준을 제공하는 조건 연산자가 다음과 같습니다.

로드 중...

이 조건은 정렬된 입력 테이블에서 각 데이터 포인트를 테스트하여 비율 값이 기준 값 50%를 초과하는지 여부를 확인합니다. '10^2.%' 문자열은 이 값을 백분율로 사용해야 한다고 지정합니다.

비율 외의 일반적인 MQL 사용 사례로는 타임 시프트가 있습니다. 간결한 설명을 위해 이 블로그 게시물에서는 다루지 않지만 예시 문서에 전주 대비 또는 전월 대비 비교를 수행하는 방법이 안내되어 있습니다. 커스텀 및 Prometheus 측정항목의 24개월 간 장기 유지율을 함께 활용하면 특히 유용합니다.

모니터링을 한 단계 업그레이드

MQL로 가능한 사용 사례에는 한계가 없습니다. 조인 수행, 임의 비율 표시, 고급 계산 등 무엇을 필요로 하든 상관없이 모든 고객이 MQL을 사용할 수 있게 된 것을 기쁘게 생각하며 모니터링, 알림, 작업 요구사항을 해결하는 데 MQL이 어떻게 사용될지 궁금합니다. MQL에 대해 자세히 알아보려면 문서, 빠른 시작, 예시(쿼리알림), 언어 및 함수 참조 등을 확인하세요.
게시 위치