Azure Monitor 템플릿 변수

Azure Monitor 템플릿 변수 (Azure Monitor template variables)

메트릭 쿼리에 리소스 그룹이나 리소스 이름 같은 세부 정보를 하드코딩하는 대신 변수를 사용할 수 있어요. 이렇게 하면 더 대화형이고 동적이며 재사용 가능한 대시보드를 만들 수 있어요. Grafana는 이런 변수를 템플릿 변수라고 부릅니다.

출처: 문서

본문

템플릿 변수 만들기

대시보드 설정의 Variables에서 변수를 추가하고 쿼리 유형을 선택하면 돼요.

사용 가능한 쿼리 유형

Azure Monitor 데이터 소스는 템플릿 변수에 다음 쿼리 유형을 제공해요.

쿼리 유형 설명
Subscriptions 구성된 자격 증명으로 접근 가능한 Azure 구독 목록 반환
Resource Groups 지정된 구독의 리소스 그룹 반환. 다중 값 선택 지원
Namespaces 지정된 구독의 메트릭 네임스페이스 반환. 리소스 그룹이 지정되면 해당 그룹 내 네임스페이스만 반환
Regions 지정된 구독에서 사용 가능한 Azure 지역 반환
Resource Names 지정된 구독·리소스 그룹·네임스페이스의 리소스 이름 반환. 다중 값 선택 지원
Metric Names 지정된 리소스의 사용 가능한 메트릭 이름 반환
Workspaces 지정된 구독의 Log Analytics 워크스페이스 반환
Logs KQL 쿼리를 실행해 결과를 변수 값으로 반환
Custom Namespaces 지정된 리소스의 커스텀 메트릭 네임스페이스 반환
Custom Metric Names 지정된 리소스의 커스텀 메트릭 이름 반환

참고: 커스텀 메트릭은 구독이나 리소스 그룹에 대해 생성할 수 없어요. 커스텀 메트릭 네임스페이스나 이름을 가져올 때는 특정 리소스를 선택하세요.

계단식 변수 만들기 (Create cascading variables)

계단식 변수(종속 변수 또는 체인 변수)는 이전 선택에 따라 필터링되는 드롭다운 메뉴를 만들 수 있게 해줘요. 구독 → 리소스 그룹 → 특정 리소스로 드릴다운할 때 유용해요.

예: Subscription → Resource Group → Resource Name

  1. Subscription 변수를 만든다.
  2. Resource Group 변수를 만들고 Workspaces/Resource Groups 쿼리에서 구독 변수를 참조한다.
  3. Resource Name 변수를 만들고 구독·리소스 그룹 변수를 참조한다.

이제 구독을 바꾸면 리소스 그룹 드롭다운이 자동으로 업데이트되고, 리소스 그룹을 바꾸면 리소스 이름 드롭다운이 업데이트돼요.

Logs 변수 만들기

Logs 쿼리 유형은 KQL 쿼리를 사용해 변수 값을 채울 수 있게 해줘요. 쿼리는 단일 값 열을 반환해야 해요.

쿼리 반환
Heartbeat | distinct Computer 가상 머신 이름 목록
Perf | distinct ObjectName 성능 개체 이름 목록
AzureActivity | distinct ResourceGroup 활동이 있는 리소스 그룹 목록
AppRequests | distinct Name 애플리케이션 요청 이름 목록

Logs 쿼리에서 다른 변수를 참조할 수 있어요:

workspace("$workspace").Heartbeat | distinct Computer
workspace("$workspace").Perf
| where ObjectName == "$object"
| distinct CounterName

변수 새로고침 옵션

  • On dashboard load: 변수가 대시보드를 로드할 때마다 새로고침. 드물게 변하는 데이터에 적합.
  • On time range change: 대시보드 시간 범위가 바뀔 때 변수 새로고침. 시간에 민감한 쿼리에 사용.

변수나 복잡한 쿼리가 많은 대시보드는 On dashboard load를 사용해 성능을 개선하세요.

쿼리에서 변수 사용하기

Metrics 쿼리 예시

Metrics 쿼리의 리소스 선택기 필드에서 변수를 선택하세요.

Logs 쿼리 예시

KQL 쿼리에서 변수를 직접 참조하세요:

Perf
| where ObjectName == "$object" and CounterName == "$metric"
| where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo()
| where $__contains(Computer, $computer)
| summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer
| order by TimeGenerated asc

다중 값 변수

Resource Groups와 Resource Names 변수에 대해 Multi-value 선택을 활성화할 수 있어요. Metrics 쿼리에서 다중 값 변수를 사용할 때 모든 선택된 리소스는 같은 리소스 유형·네임스페이스여야 해요.

참고: 다중 값 변수를 다른 변수 쿼리의 파라미터로 사용할 때(예: 메트릭 이름 조회)는 첫 번째 선택 값만 사용돼요. 첫 번째 리소스 그룹·리소스 이름 조합이 유효한지 확인하세요.

템플릿 변수 문제 해결

  • 변수가 값을 반환하지 않음: 쿼리와 선택 항목을 확인하세요.
  • 변수 값이 오래됨: 새로고침 옵션을 확인하세요.
  • Grafana 업그레이드 후 변수 깨짐: 업그레이드 후 Properties found in series but missing valueProp and textProp 같은 오류가 나오면 버전별 버그일 수 있어요. Grafana 버전의 최신 패치 릴리스로 업데이트하세요. Grafana Cloud는 안정 릴리스 채널인지 확인하세요.

더 알아보기 (Learn more)