Azure Monitor의 사용자 지정 메트릭(미리 보기)

Azure는 몇 가지 메트릭을 기본적으로 제공합니다. 이러한 메트릭을 표준 또는 플랫폼이라고 합니다. 사용자 지정 메트릭은 애플리케이션의 원격 분석, Azure Monitor 에이전트, Azure 리소스에서 실행되는 진단 확장 또는 외부 모니터링 시스템을 통해 수집할 수 있는 성능 지표 또는 비즈니스별 메트릭입니다. 사용자 지정 메트릭이 Azure Monitor에 게시되고 나면 표준 Azure 메트릭과 함께 사용자 지정 메트릭을 찾아보고, 쿼리하고, 경고할 수 있습니다.

Azure Monitor 사용자 지정 메트릭은 현재 공개 미리 보기로 제공됩니다.

사용자 지정 메트릭을 보내는 방법

다음과 같은 여러 가지 방법으로 사용자 지정 메트릭을 Azure Monitor로 보낼 수 있습니다.

가격 책정 모델 및 보존

일반적으로 표준 메트릭(플랫폼 메트릭)을 Azure Monitor 메트릭 저장소에 수집하는 데는 비용이 발생하지 않지만 사용자 지정 메트릭이 일반 공급으로 전환될 때는 비용이 발생합니다. 메트릭 API에 대한 쿼리에는 비용이 발생합니다. 사용자 지정 메트릭 및 메트릭 쿼리에 대금이 청구되는 시기에 관한 자세한 내용은 Azure Monitor 가격 책정 페이지를 확인하세요.

사용자 지정 메트릭은 플랫폼 메트릭과 동일한 시간 동안 보존됩니다.

참고 항목

Application Insights SDK를 통해 Azure Monitor로 전송되는 메트릭은 수집 로그 데이터로 청구됩니다. Application Insights의 사용자 지정 메트릭 차원의 경고를 사용하도록 설정 기능이 선택된 경우에만 추가 메트릭 요금이 발생합니다. 이 확인란은 더 복잡한 경고를 허용하기 위해 사용자 지정 메트릭 API를 사용하여 Azure Monitor 메트릭 데이터베이스로 데이터를 전송합니다. Application Insights 가격 책정 모델해당 지역의 가격에 대해 자세히 알아봅니다.

사용자 지정 메트릭 정의

게시된 각 메트릭 데이터 포인트에는 네임스페이스, 이름 및 차원 정보가 포함되어 있습니다. 사용자 지정 메트릭을 Azure Monitor에 처음 내보낼 때 메트릭 정의가 자동으로 생성됩니다. 그런 다음 메트릭 정의를 통해 메트릭을 내보낸 모든 리소스에서 이 새로운 메트릭 정의를 검색할 수 있습니다. 내보내기 전에 사용자 지정 메트릭을 Azure Monitor에서 미리 정의할 필요가 없습니다.

참고 항목

Application Insights, 진단 확장 및 InfluxData Telegraf 에이전트는 올바른 지역별 엔드포인트에 대한 메트릭 값을 내보내고 각 내보내기에 위의 속성을 모두 포함하도록 이미 구성되어 있습니다.

사용자 지정 메트릭 사용

사용자 지정 메트릭을 Azure Monitor에 전송한 후 Azure Portal을 통해 검색하고 Azure Monitor REST API를 통해 쿼리할 수 있습니다. 특정 조건이 충족되면 알리도록 메트릭에 대한 경고를 만들 수도 있습니다.

참고 항목

사용자 지정 메트릭을 보려면 읽기 권한자 또는 참가자 역할이 있어야 합니다. Monitoring Reader를 참조합니다.

Azure Portal을 통해 사용자 지정 메트릭 찾아보기

  1. Azure Portal로 이동합니다.
  2. 모니터 창을 선택합니다.
  3. 메트릭을 선택합니다.
  4. 사용자 지정 메트릭을 내보낸 리소스를 선택합니다.
  5. 사용자 지정 메트릭에 대한 메트릭 네임스페이스를 선택합니다.
  6. 사용자 지정 메트릭을 선택합니다.

Azure Portal에서 메트릭을 보는 방법에 대한 자세한 내용은 Azure Monitor 메트릭 탐색기로 메트릭 분석을 참조하세요.

대기 시간 및 스토리지 보존

메트릭에 새로 추가된 메트릭 또는 새로 추가된 차원이 나타나려면 최대 3분이 걸릴 수 있습니다. 데이터가 시스템에 있으면 99% 확률로 30초 이내에 표시됩니다.

메트릭을 삭제하거나 차원을 제거하는 경우 변경 내용이 시스템에서 삭제되기까지 1주에서 1달 정도 소요될 수 있습니다.

할당량 및 제한

Azure Monitor는 사용자 지정 메트릭에 대해 다음과 같은 사용량 한도를 적용합니다.

범주 한도
지역별 구독의 총 활성 시계열 50,000
메트릭당 차원 키 10
메트릭 네임스페이스, 메트릭 이름, 차원 키 및 차원 값의 문자열 길이 256자
utf-8 인코딩을 사용하는 모든 사용자 지정 메트릭 이름을 합친 길이 64KB

활성 시계열은 지난 12시간 동안 메트릭 값이 게시된 메트릭, 차원 키 또는 차원 값의 고유한 조합으로 정의됩니다.

50,000 시계열 제한을 이해하려면 다음 메트릭을 고려하세요.

차원이 있는 서버 응답 시간: 지역, 부서, CustomerID

이 메트릭 사용 시, 10개 지역, 20개 부서 및 100명의 고객이 있는 경우 시계열은 10 x 20 x 100 = 20,000입니다.

100개 지역, 200개 부서 및 2000명의 고객의 경우, 시계열은 100x200x2000=4,000만으로 이 메트릭 하나에 대해서만으로도 제한을 훨씬 초과합니다.

다시 말하지만, 이 제한은 개별 메트릭에 대한 것이 아닙니다. 이는 구독과 지역에 대한 모든 메트릭의 합계에 대한 것입니다.

아래 단계에 따라 현재 총 활성 시계열 메트릭과 문제 해결을 돕기 위한 추가 정보를 확인하세요.

  1. Azure Portal의 모니터 섹션으로 이동합니다.
  2. 왼쪽에서 메트릭을 선택합니다.
  3. 범위 선택에서 해당 구독 및 리소스 그룹을 확인합니다.
  4. 범위 구체화에서 사용자 지정 메트릭 사용량과 원하는 위치를 선택합니다.
  5. 적용 버튼을 선택합니다.
  6. 활성 시계열, 활성 시계열 제한 또는 제한된 시계열을 선택합니다.

문자당 utf-8 또는 1바이트라고 가정하면 모든 사용자 지정 메트릭 이름을 합친 길이는 64KB로 제한됩니다. 64KB 제한이 초과되면 추가 메트릭의 메타데이터를 사용할 수 없습니다. 추가 사용자 지정 메트릭에 대한 메트릭 이름은 선택 필드의 Azure Portal에 표시되지 않으며, 메트릭 정의 요청에서 API에 의해 반환되지 않습니다. 메트릭 데이터는 여전히 사용할 수 있고 쿼리할 수 있습니다.

제한이 초과되면 보내는 메트릭 수를 줄이거나 이름 길이를 줄이세요. 그런 다음 새 메트릭의 이름이 표시되는 데는 최대 2일이 소요됩니다.

제한에 도달하지 않도록 하려면 메트릭 이름에 변수나 차원 관련 요소를 포함하지 마세요. 예를 들어 서버 CPU 사용량에 대한 메트릭, CPU_server_12345678-319d-4a50-b27e-1234567890abCPU_server_abcdef01-319d-4a50-b27e-abcdef012345는 메트릭 CPUServer 차원으로 정의해야 합니다.

디자인 제한 사항 및 고려 사항

감사 목적으로 Application Insights 사용 Application Insights 원격 분석 파이프라인은 성능 영향을 최소화하고 네트워크 트래픽이 애플리케이션을 모니터링하지 못하도록 제한하기 위해 최적화되어 있습니다. 따라서 초기 데이터 세트가 너무 커지면 이를 제한하거나 샘플링합니다(원격 분석의 일부만 사용하고 나머지는 무시함). 이로 인해 일부 레코드가 삭제될 가능성이 있기 때문에 감사 목적으로는 사용할 수 없습니다.

이름에 변수가 있는 메트릭입니다. 변수를 메트릭 이름의 일부로 사용하지 마세요. 대신 상수를 사용하세요. 변수가 값을 변경할 때마다 Azure Monitor는 새 메트릭을 생성합니다. 그런 다음 Azure Monitor는 메트릭 수에 대한 제한에 빠르게 도달합니다. 일반적으로 개발자가 메트릭 이름에 변수를 포함하려는 경우 하나의 메트릭 내에서 여러 개의 시계열을 추적하려고 하며 변수 메트릭 이름 대신 차원을 사용해야 합니다.

높은 카디널리티 메트릭 차원입니다. 차원에 유효한 값이 너무 많은 메트릭은(예: 높은 카디널리티) 50,000 제한에 도달할 가능성이 훨씬 높습니다. 일반적으로 차원에는 지속적으로 변화하는 값을 사용해서는 안됩니다. 예를 들어 타임스탬프는 절대로 차원이 되어서는 안 됩니다. 서버, 고객 또는 제품 ID는 이러한 유형의 개수가 더 적은 경우에만 사용할 수 있습니다.

시험 삼아 이러한 데이터를 그래프에 모두 표시하는지 자문해 보세요. 서버 10대 또는 100대가 있는 경우 비교를 위해 그래프에 모두 표시하는 것이 유용할 수 있습니다. 그러나 1,000대가 있는 경우에는 결과 그래프를 읽을 수 없거나 어려울 수 있습니다. 유효한 100개 이하의 값을 유지하는 것이 가장 효율적입니다. 최대 300은 회색 영역입니다. 300개 이상을 사용해야 하는 경우 Azure Monitor 사용자 지정 로그를 사용하세요.

이름 또는 높은 카디널리티 차원에 변수가 있는 경우 다음 문제가 발생할 수 있습니다.

  • 제한으로 인해 메트릭을 신뢰할 수 없게 됩니다.
  • 메트릭 탐색기가 작동하지 않음.
  • 예측이 불가능한 경고 및 알림.
  • 비용이 예기치 않게 증가할 수 있음. 이 기능이 공개 미리 보기로 제공되는 동안 Microsoft는 차원이 있는 사용자 지정 메트릭에 대해 요금을 청구하지 않습니다. 나중에 요금이 청구되기 시작하면 예기치 못한 요금이 발생합니다. 계획은 모니터링되는 시계열 수 및 API 호출 수에 따라 메트릭 사용에 대한 비용을 청구하는 것입니다.

메트릭 이름 또는 차원 값이 실수로 식별자 또는 높은 카디널리티 차원으로 채워진 경우 변수 부분을 제거하여 쉽게 수정할 수 있습니다.

그러나 시나리오에 높은 카디널리티가 필수적인 경우 집계된 메트릭이 올바른 선택이 아닐 수 있습니다. 사용자 지정 로그(즉, trackEvent를 사용한 trackMetric API 호출)를 사용하도록 전환합니다. 그러나 모든 단일 항목이 저장되도록 로그가 값을 집계하지 않는 것이 좋습니다. 따라서 짧은 기간에 많은 양의 로그가 있는 경우(예: 초당 100만 개) 제한 및 수집 지연이 발생할 수 있습니다.

다음 단계

다음과 같은 다양한 서비스의 사용자 지정 메트릭을 사용합니다.