전역 변수
전역 변수 (Global variables)
Grafana에는 쿼리 편집기의 표현식에서 사용할 수 있는 전역 내장 변수가 있어요. 이 페이지는 이를 알파벳 순으로 나열하고 정의합니다. 대부분의 변수는 쿼리, 대시보드 링크, 패널 링크, 데이터 링크에서 유용하지만, $__url_time_range 같은 일부는 쿼리 편집기가 아닌 링크에서만 쓰도록 설계됐어요.
출처: 문서
본문
Grafana에는 쿼리 편집기의 표현식에서 사용할 수 있는 전역 내장 변수(global built-in variables) 가 있어요.
$__dashboard
현재 대시보드의 이름입니다.
$__from and $__to
Grafana에는 내장 시간 범위 변수 $__from 과 $__to 가 있습니다. 기본적으로 항상 epoch 밀리초로 인터폴레이션되지만, 날짜 형식을 제어할 수 있어요.
| 구문 | 예시 결과 | 설명 |
|---|---|---|
${__from} |
1594671549254 |
Unix 밀리초 epoch |
${__from:date} |
2020-07-13T20:19:09.254Z |
인자 없음, 기본 ISO 8601/RFC 3339 |
${__from:date:iso} |
2020-07-13T20:19:09.254Z |
ISO 8601/RFC 3339 |
${__from:date:seconds} |
1594671549 |
Unix 초 epoch |
${__from:date:YYYY-MM} |
2020-07 |
: 문자를 포함하지 않는 사용자 정의 날짜 형식. 브라우저 시간 사용. UTC는 :date 또는 :date:iso 사용 |
위 구문은 ${__to} 에도 동일하게 적용됩니다. 이 변수는 URL에서도 사용할 수 있어요. 예를 들어 6시간 전부터 지금까지의 시간 범위를 보여주는 대시보드로 사용자를 보낼 수 있습니다: https://play.grafana.org/d/000000012/grafana-play-home?viewPanel=2&orgId=1?from=now-6h&to=now
$__interval
$__interval 변수를 시간별 그룹화 매개변수(인프럭스 DB, MySQL, Postgres, MSSQL용), date histogram 간격(Elasticsearch용), 또는 summarize 함수 매개변수(Graphite용)로 사용할 수 있어요.
Grafana는 쿼리에서 시간별 그룹화에 사용할 수 있는 간격을 자동 계산합니다. 그래프에 표시할 수 있는 것보다 많은 데이터 포인트가 있으면 더 큰 간격으로 그룹화해 쿼리를 더 효율적으로 만들 수 있어요. 3개월 데이터를 볼 때 10초 단위보다 1일 단위로 그룹화하는 것이 더 효율적입니다. 그래프는 같게 보이고 쿼리는 더 빨라져요. $__interval 은 시간 범위와 그래프 너비(픽셀 수)로 계산됩니다.
근사 계산: (to - from) / resolution
예를 들어 시간 범위가 1시간이고 그래프가 전체 화면이면 간격은 2m 으로 계산될 수 있어요(2분 간격으로 포인트 그룹화). 시간 범위가 6개월이고 전체 화면이면 간격은 1d(1일)일 수 있습니다.
InfluxDB 데이터 소스에서 레거시 변수 $interval 은 동일한 변수이며, $__interval 을 사용해야 해요. InfluxDB와 Elasticsearch 데이터 소스에는 Group by time interval 필드가 있으며, 이는 간격을 하드코딩하거나 > 구문(예: >10m)으로 $__interval 의 최소 한도를 설정하는 데 사용됩니다.
$__interval_ms
$__interval 변수의 밀리초 단위 표현입니다(시간 간격 형식 문자열이 아님). 예를 들어 $__interval 이 20m 이면 $__interval_ms 는 1200000 입니다.
$__name
이 변수는 Singlestat 패널에서만 사용할 수 있으며 Options 탭의 prefix 또는 suffix 필드에서 사용할 수 있어요. 변수는 시리즈 이름 또는 alias로 대체됩니다.
참고: Singlestat 패널은 Grafana 8.0부터 더 이상 사용할 수 없어요.
$__org
현재 조직의 ID입니다. ${__org.name} 은 현재 조직의 이름입니다.
$__user
${__user.id} 는 현재 사용자의 ID, ${__user.login} 은 현재 사용자의 로그인 핸들, ${__user.email} 은 현재 사용자의 이메일입니다.
$__range
현재 Prometheus와 Loki 데이터 소스에서만 지원됩니다. 현재 대시보드의 범위를 나타내며 to - from 으로 계산됩니다. 밀리초·초 표현 $__range_ms 와 $__range_s 를 가집니다.
$__rate_interval
현재 Prometheus 데이터 소스에서만 지원됩니다. $__rate_interval 변수는 rate 함수에서 사용하도록 설계됐어요. 자세한 내용은 Prometheus query variables를 참고하세요.
$__rate_interval_ms
$__rate_interval 변수의 밀리초 단위 표현입니다(시간-간격 형식 문자열 아님). $__rate_interval 이 20m 이면 $__rate_interval_ms 는 1200000 입니다.
$timeFilter or $__timeFilter
$timeFilter 변수는 현재 선택된 시간 범위를 표현식으로 반환합니다. 예를 들어 Last 7 days 시간 범위의 표현식은 time > now() - 7d 입니다. 다음을 포함한 여러 곳에서 사용됩니다:
- InfluxDB 데이터 소스의 WHERE 절. Query Editor 모드에서는 Grafana가 InfluxDB 쿼리에 자동 추가합니다. Text Editor 모드에서는
WHERE $timeFilter로 수동 추가할 수 있어요. - Azure Monitor 데이터 소스의 Log Analytics 쿼리
- MySQL, Postgres, MSSQL의 SQL 쿼리
$__timeFilter 변수는 MySQL 데이터 소스에서 사용됩니다.
$__timezone
현재 선택된 시간대를 반환합니다: utc 또는 IANA 시간대 데이터베이스 항목(예: America/New_York). 현재 선택된 시간대가 Browser Time 이면 Grafana는 브라우저 시간대를 결정하려 시도합니다.
$__url_time_range
현재 대시보드 시간 범위를 URL 쿼리 매개변수로 반환합니다. 데이터 링크와 패널 링크에서 사용하도록 설계됐으며, 쿼리 편집기에서는 사용하지 않아요. 변수는 from=1607687293000&to=1607687293100 같은 문자열로 확장되며, 값은 현재 시간 범위 선택과 일치하는 Unix 밀리초 타임스탬프입니다. URL 구성 시 ? 또는 & 구분자를 직접 포함해야 해요.
| 사용 예 | 예시 결과 |
|---|---|
https://example.com/d/abc?${__url_time_range} |
https://example.com/d/abc?from=1594671549254&to=1594672349254 |
https://example.com/d/abc?orgId=1&${__url_time_range} |
https://example.com/d/abc?orgId=1&from=1594671549254&to=1594672349254 |
현재 시간 범위를 유지하면서 다른 대시보드로 연결하려면:
https://your-grafana/d/other-dashboard?${__url_time_range}
현재 대시보드에서 변수 값도 전달하려면:
https://your-grafana/d/other-dashboard?{__url_time_range}&var-host= {host}
참고:
$__url_time_range는 항상 Unix 밀리초 epoch 타임스탬프를 사용합니다. 시간 범위의 시작 또는 끝만 특정 형식으로 포함하려면 대신$__from과$__to변수를 사용하세요.