전역 변수

전역 변수 (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 변수의 밀리초 단위 표현입니다(시간 간격 형식 문자열이 아님). 예를 들어 $__interval20m 이면 $__interval_ms1200000 입니다.

$__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_interval20m 이면 $__rate_interval_ms1200000 입니다.

$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 변수를 사용하세요.

더 알아보기 (Learn more)