Azure Monitor 애노테이션

Azure Monitor 애노테이션 (Azure Monitor annotations)

애노테이션은 그래프 위에 풍부한 이벤트 정보를 오버레이해요. Azure Monitor Log Analytics 쿼리를 사용해 대시보드에 중요한 이벤트, 배포, 알림 또는 기타 중요한 발생을 표시하는 애노테이션을 만들 수 있어요.

출처: 문서

본문

애노테이션 쿼리 만들기

대시보드에 Azure Monitor 애노테이션을 추가하려면 대시보드 설정에서 Annotations를 열고 새 쿼리에서 Azure Monitor 데이터 소스를 선택하고 KQL 쿼리를 입력하면 돼요.

쿼리 요구 사항

KQL 쿼리는 Grafana가 애노테이션을 만드는 데 사용할 수 있는 열을 반환해야 해요.

필수 설명
TimeGenerated 애노테이션의 타임스탬프. Grafana가 시간 축에 애노테이션을 배치하는 데 사용
Text 권장 애노테이션을 가리키거나 클릭할 때 표시되는 애노테이션 텍스트
추가 열 선택 반환된 다른 열은 애노테이션 태그가 됨

참고: 결과를 대시보드 시간 범위로 제한하려면 쿼리에 항상 시간 필터를 포함하세요. $__timeFilter() 매크로를 사용하세요.

애노테이션 쿼리 예시

Azure Activity Log 이벤트

리소스 수정, 배포, 관리 작업 같은 Azure Activity Log 이벤트 표시:

AzureActivity
| where $__timeFilter(TimeGenerated)
| where Level == "Error" or Level == "Warning" or CategoryValue == "Administrative"
| project TimeGenerated, Text=OperationNameValue, Level, ResourceGroup, Caller
| order by TimeGenerated desc
| take 100

배포 이벤트

배포 관련 활동 표시:

AzureActivity
| where $__timeFilter(TimeGenerated)
| where OperationNameValue contains "deployments"
| project TimeGenerated, Text=strcat("Deployment: ", OperationNameValue), Status=ActivityStatusValue, ResourceGroup
| order by TimeGenerated desc

Application Insights 예외

애플리케이션 예외를 애노테이션으로 표시:

AppExceptions
| where $__timeFilter(TimeGenerated)
| project TimeGenerated, Text=strcat(ProblemId, ": ", OuterMessage), SeverityLevel, AppRoleName
| order by TimeGenerated desc
| take 50

Application Insights의 커스텀 이벤트

애플리케이션이 기록한 커스텀 이벤트 표시:

AppEvents
| where $__timeFilter(TimeGenerated)
| where Name == "DeploymentStarted" or Name == "DeploymentCompleted"
| project TimeGenerated, Text=Name, AppRoleName
| order by TimeGenerated desc

보안 알림

보안 관련 알림 표시:

SecurityAlert
| where $__timeFilter(TimeGenerated)
| project TimeGenerated, Text=AlertName, Severity=AlertSeverity, Description
| order by TimeGenerated desc
| take 50

리소스 상태 이벤트

리소스 상태 변경 표시:

AzureActivity
| where $__timeFilter(TimeGenerated)
| where CategoryValue == "ResourceHealth"
| project TimeGenerated, Text=OperationNameValue, Status=ActivityStatusValue, ResourceId
| order by TimeGenerated desc

VM 시작·중지 이벤트

가상 머신 상태 변경 표시:

AzureActivity
| where $__timeFilter(TimeGenerated)
| where OperationNameValue has_any ("start", "deallocate", "restart")
| where ResourceProviderValue == "MICROSOFT.COMPUTE"
| project TimeGenerated, Text=OperationNameValue, VM=Resource, Status=ActivityStatusValue
| order by TimeGenerated desc

자동 확장 이벤트

자동 확장(autoscale) 작업 표시:

AzureActivity
| where $__timeFilter(TimeGenerated)
| where OperationNameValue contains "autoscale"
| project TimeGenerated, Text=strcat("Autoscale: ", OperationNameValue), Status=ActivityStatusValue, ResourceGroup
| order by TimeGenerated desc

애노테이션 모양 사용자 지정

설정 설명
Color 애노테이션 마커의 색상 선택. 애노테이션 유형을 구분하는 데 다른 색 사용
Show in 애노테이션을 표시할 패널 선택
Filter by 애노테이션이 나타나는 시점을 제한하는 필터 추가

모범 사례

애노테이션을 만들 때 다음을 권장해요: 시간 필터를 포함하고, take로 행 수를 제한하며, Text 열을 명확하게 지정하세요.

애노테이션 문제 해결

  • 애노테이션이 나타나지 않음: 데이터 소스 선택, 시간 필터, 토글 활성화를 확인하세요.
  • 애노테이션 과다: take로 행 수를 제한하거나 시간 범위를 조정하세요.
  • 애노테이션이 잘못된 시간에 표시: 쿼리에서 반환하는 TimeGenerated 값과 시간대 설정을 확인하세요.

더 알아보기 (Learn more)