변수 추가 및 관리 - Amazon Managed Grafana

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

변수 추가 및 관리

이 설명서 항목은 Grafana 버전 10.x를 지원하는 Grafana 작업 영역을 위해 설계되었습니다.

Grafana 버전 9.x를 지원하는 Grafana 작업 영역에 대해서는 을 참조하십시오. Grafana 버전 9에서 작업하기

Grafana 버전 8.x를 지원하는 Grafana 작업 영역에 대해서는 을 참조하십시오. Grafana 버전 8에서 작업하기

다음 표에는 Grafana의 변수 유형이 나열되어 있습니다.

변수 유형 설명

Query

메트릭 이름, 서버 이름, 센서 ID, 데이터 센터 등과 같은 쿼리로 생성된 값 목록입니다.

사용자 지정(Custom)

쉼표로 구분된 목록을 사용하여 변수 옵션을 수동으로 정의합니다.

텍스트 상자

선택적 기본값을 사용하여 자유 텍스트 입력 필드를 표시합니다.

상수

숨겨진 상수를 정의합니다.

데이터 소스

전체 대시보드의 데이터 소스를 빠르게 변경할 수 있습니다.

간격

간격 변수는 기간을 나타냅니다.

임시 필터

데이터 소스의 모든 메트릭 쿼리에 자동으로 추가되는 키-값 필터 (Prometheus, Loki, InfluxDB 및 Elasticsearch만 해당)

전역 변수

쿼리 편집기의 표현식에 사용할 수 있는 내장 변수.

체인 변수

변수 쿼리는 다른 변수를 포함할 수 있습니다.

일반 옵션 입력

생성하는 모든 유형의 변수에 대해 일반 옵션을 입력해야 합니다.

일반 옵션을 입력하려면
  1. 변수를 만들려는 대시보드로 이동한 다음 페이지 상단의 대시보드 설정 (기어) 아이콘을 선택합니다.

  2. 변수 탭에서 새 변수를 선택합니다.

  3. 변수 이름을 입력합니다.

  4. 유형 목록에서 쿼리를 선택합니다.

  5. (선택 사항) 레이블에 변수 드롭다운의 표시 이름을 입력합니다.

    표시 이름을 입력하지 않는 경우 드롭다운 레이블이 변수 이름이 됩니다.

  6. 숨기기 옵션을 선택합니다.

    • 선택 없음 (공백) — 변수 드롭다운에 변수 이름 또는 레이블 값이 표시됩니다.

    • 레이블 - 변수 드롭다운에는 선택한 변수 값과 아래쪽 화살표만 표시됩니다.

    • 변수 - 대시보드에 변수 드롭다운이 표시되지 않습니다.

쿼리 변수 추가

쿼리 변수를 사용하면 지표 이름, 태그 값 또는 키 목록을 반환할 수 있는 데이터 소스 쿼리를 작성할 수 있습니다. 예를 들어 쿼리 변수는 서버 이름, 센서 ID 또는 데이터 센터 목록을 반환할 수 있습니다. 데이터 소스 쿼리를 사용하여 옵션을 동적으로 가져오면 변수 값이 변경됩니다.

쿼리 변수는 일반적으로 문자열에만 지원됩니다. 쿼리가 숫자 또는 기타 데이터 유형을 반환하는 경우 변수로 사용하려면 해당 유형을 문자열로 변환해야 할 수 있습니다. 예를 들어 Azure 데이터 원본의 경우 이 용도로 tostring 함수를 사용할 수 있습니다.

쿼리 표현식에는 다른 변수에 대한 참조가 포함될 수 있으며 실제로 연결된 변수를 만들 수 있습니다. Grafana는 이를 감지하고 연결된 변수 중 하나가 변경되면 변수를 자동으로 새로 고칩니다.

참고

쿼리 표현식은 데이터 소스마다 다릅니다. 자세한 내용은 데이터 원본 설명서를 참조하십시오.

쿼리 변수를 추가하려면
  1. 위와 같이 일반 옵션을 입력합니다.

  2. 데이터 원본 목록에서 쿼리의 대상 데이터 원본을 선택합니다.

  3. 새로 고침 목록에서 변수로 옵션을 업데이트해야 하는 시기를 선택합니다.

    • 대시보드 로드 시 - 대시보드가 로드될 때마다 데이터 원본을 쿼리합니다. 이렇게 하면 대시보드를 초기화하기 전에 변수 쿼리를 완료해야 하므로 대시보드 로드 속도가 느려집니다.

    • 시간 범위 변경 시 — 대시보드 시간 범위가 변경될 때 데이터 원본을 쿼리합니다. 변수 옵션 쿼리에 시간 범위 필터가 포함되어 있거나 대시보드 시간 범위에 종속되는 경우에만 이 옵션을 사용하십시오.

  4. 쿼리 필드에 쿼리를 입력합니다.

    • 쿼리 필드는 데이터 소스에 따라 달라집니다. 일부 데이터 원본에는 사용자 지정 쿼리 편집기가 있습니다.

    • 쿼리는 이름이 __text__value 인 값을 반환해야 합니다. 예를 들어, SQL에서는 다음과 같은 쿼리를 사용할 수 SELECT hostname AS __text, id AS __value from MyTable 있습니다. 다른 언어에 대한 쿼리는 구문에 따라 달라집니다.

    • 단일 입력 필드 쿼리 편집기에 더 많은 공간이 필요한 경우 필드 오른쪽 아래 모서리에 있는 줄 위에 커서를 놓고 아래로 드래그하여 확장하십시오.

  5. (선택 사항) Regex 필드에 regex 표현식을 입력하여 데이터 원본 쿼리에서 반환된 이름의 특정 부분을 필터링하거나 캡처합니다. 예제를 보려면 정규식을 사용하여 변수 필터링하기를 참조하십시오.

  6. 정렬 목록에서 드롭다운 목록에 표시할 값의 정렬 순서를 선택합니다. 기본 옵션인 Disabled는 데이터 소스 쿼리에서 반환된 옵션 순서가 사용됨을 의미합니다.

  7. (선택 사항) 선택 옵션을 입력합니다.

  8. 값 미리보기에서 Grafana는 현재 변수 값 목록을 표시합니다. 값을 검토하여 예상과 일치하는지 확인하세요.

  9. 추가를 선택하여 변수를 대시보드에 추가합니다.

사용자 지정 변수 추가

숫자나 문자열과 같이 변경되지 않는 값에는 사용자 지정 변수를 사용하십시오.

예를 들어 변경되지 않는 서버 이름이나 지역 이름이 있는 경우 이러한 이름을 쿼리 변수 대신 사용자 지정 변수로 만드는 것이 좋습니다. 변경되지 않으므로 다른 쿼리 변수 대신 체인 변수에 사용할 수 있습니다. 그러면 체인 변수가 업데이트될 때 Grafana가 보내야 하는 쿼리 수가 줄어듭니다.

사용자 지정 변수 추가하기
  1. 위와 같이 일반 옵션을 입력합니다.

  2. 쉼표로 구분된 값 목록에서 이 변수의 값을 쉼표로 구분된 목록으로 입력합니다. 공백과 콜론으로 구분된 숫자, 문자열 또는 키-값 쌍을 포함할 수 있습니다. 예를 들어 key1 : value1,key2 : value2입니다.

  3. (선택 사항) 선택 옵션을 입력합니다.

  4. 값 미리보기에서 Grafana는 현재 변수 값 목록을 표시합니다. 값을 검토하여 예상과 일치하는지 확인하세요.

  5. 추가를 선택하여 변수를 대시보드에 추가합니다.

텍스트 상자 변수 추가

텍스트 상자 변수에는 선택적 기본값이 있는 자유 텍스트 입력 필드가 표시됩니다. 이 변수는 아무 값이나 입력할 수 있기 때문에 가장 유연한 변수입니다. 카디널리티가 높은 지표가 있거나 대시보드의 여러 패널을 동시에 업데이트하려는 경우 이 유형의 변수를 사용하십시오.

텍스트 상자 변수를 추가하려면
  1. 위와 같이 일반 옵션을 입력합니다.

  2. (선택 사항) 기본값 필드에서 변수의 기본값을 선택합니다. 이 필드에 아무 것도 입력하지 않으면 Grafana는 사용자가 텍스트를 입력할 수 있는 빈 텍스트 상자를 표시합니다.

  3. 값 미리보기에서 Grafana는 현재 변수 값 목록을 표시합니다. 값을 검토하여 예상과 일치하는지 확인하세요.

  4. 추가를 선택하여 변수를 대시보드에 추가합니다.

상수 변수 추가

상수 변수를 사용하면 숨겨진 상수를 정의할 수 있습니다. 이는 공유하려는 대시보드의 지표 경로 접두사에 유용합니다. 대시보드를 내보내는 경우 상수 변수가 가져오기 옵션으로 변환됩니다.

상수 변수는 유연하지 않습니다. 각 상수 변수에는 하나의 값만 포함되며 변수 설정을 업데이트하지 않는 한 업데이트할 수 없습니다.

상수 변수는 쿼리에 포함해야 하는 복잡한 값이 있지만 쿼리마다 다시 입력하고 싶지 않은 경우에 유용합니다. 예를 들어 서버 경로가 i-0b6a61efe2ab843gg 호출된 경우 이를 라는 $path_gg 변수로 바꿀 수 있습니다.

상수 변수를 추가하려면
  1. 위와 같이 일반 옵션을 입력합니다.

  2. 필드에 변수 값을 입력합니다. 문자, 숫자, 기호를 입력할 수 있습니다. 원시 형식을 사용하는 경우 와일드카드를 사용할 수도 있습니다.

  3. 값 미리보기에서 Grafana는 현재 변수 값 목록을 표시합니다. 값을 검토하여 예상과 일치하는지 확인하세요.

  4. 추가를 선택하여 변수를 대시보드에 추가합니다.

데이터 소스 변수 추가

데이터 소스 변수를 사용하면 전체 대시보드의 데이터 원본을 빠르게 변경할 수 있습니다. 데이터 원본의 인스턴스가 여러 개 있는 경우, 아마도 환경이 서로 다른 경우에 유용합니다.

데이터 소스 변수를 추가하려면
  1. 위와 같이 일반 옵션을 입력합니다.

  2. 유형 목록에서 변수의 대상 데이터 원본을 선택합니다.

    고급 데이터 원본 선택기 열기를 선택하여 데이터 원본 추가 (관리자만 해당) 를 비롯한 추가 옵션을 볼 수도 있습니다. 자세한 정보는 데이터 원본에 연결을 참조하세요.

  3. (선택 사항) 인스턴스 이름 필터에 변수 값 드롭다운 목록에서 선택할 데이터 원본 인스턴스에 대한 정규식 필터를 입력합니다. 모든 인스턴스를 표시하려면 이 필드를 비워 두십시오.

  4. (선택 사항) 선택 옵션을 입력합니다.

  5. 값 미리보기에서 Grafana는 현재 변수 값 목록을 표시합니다. 값을 검토하여 예상과 일치하는지 확인하세요.

  6. 추가를 선택하여 변수를 대시보드에 추가합니다.

간격 변수 추가

간격 변수를 사용하여 1m1h, 또는 1d 같은 시간 범위를 나타냅니다. 이를 대시보드 전체에 걸친 시간 명령으로 간주할 수 있습니다. 간격 변수는 비주얼리제이션에서 데이터를 그룹화하는 방식을 변경합니다. 자동 옵션을 사용하여 시간 범위당 설정된 수의 데이터 포인트를 반환할 수도 있습니다.

간격 변수를 시간 (InfluxDB의 경우), 날짜 히스토그램 간격 (Elasticsearch의 경우) 별로 그룹화하는 매개 변수로 사용하거나 요약 함수 매개 변수 (Graphite의 경우) 로 그룹화할 수 있습니다.

간격 변수 추가하기
  1. 위와 같이 일반 옵션을 입력합니다.

  2. 변수 드롭다운 목록에 표시할 시간 범위 간격을 필드에 입력합니다. 지원되는 시간 단위는s (seconds),,,m (minutes),h (hours), d (days) w (weeks)M (months), 및 y (years) 입니다. 기본값을 그대로 사용하거나 편집할 수도 있습니다1m,10m,30m,1h,6h,12h,1d,7d,14d,30d.

  3. (선택 사항) 목록에 옵션을 추가하려면 자동 auto 옵션을 켜십시오. 이 옵션을 사용하면 현재 시간 범위를 분할하여 현재 시간 범위를 계산해야 하는 횟수를 지정할 수 있습니다. auto 이 기능을 켜면 다음 두 가지 옵션이 더 나타납니다.

    • 걸음 수최대 데이터 포인트 쿼리 옵션과 마찬가지로 현재 시간 범위를 분할하여 값을 계산할 횟수를 선택합니다. 예를 들어, 현재 표시되는 시간 범위가 30분인 경우 auto 간격은 데이터를 1분 간격으로 30회 그룹화합니다. 기본값은 30단계입니다.

    • 최소 간격 — 걸음 수 간격이 시간을 나누지 않는 최소 임계값입니다. 30분 예제를 계속하기 위해 최소 간격이 2m로 설정된 경우 Grafana는 데이터를 2분 단위로 15회 그룹화합니다.

  4. 값 미리보기에서 Grafana는 현재 변수 값 목록을 표시합니다. 값을 검토하여 예상과 일치하는지 확인하세요.

  5. 추가를 선택하여 변수를 대시보드에 추가합니다.

간격 변수 예제

다음 예제는 Graphite 함수의 템플릿 변수를 myinterval 보여줍니다.

summarize($myinterval, sum, false)

애드혹 필터 추가

Ad Hoc 필터를 사용하면 지정된 데이터 소스를 사용하는 모든 지표 쿼리에 자동으로 추가되는 키-값 필터를 추가할 수 있습니다. 다른 변수와 달리 쿼리에는 임시 필터를 사용하지 않습니다. 대신 임시 필터를 사용하여 기존 쿼리에 필터를 작성합니다.

참고

애드혹 필터 변수는 프로메테우스, 로키, InfluxDB 및 엘라스틱서치 데이터 소스에서만 작동합니다.

  1. 위와 같이 일반 옵션을 입력합니다.

  2. 데이터 원본 목록에서 대상 데이터 원본을 선택합니다.

    고급 데이터 원본 선택기 열기를 선택하여 데이터 원본 추가 (관리자만 해당) 를 비롯한 추가 옵션을 볼 수도 있습니다. 자세한 정보는 데이터 원본에 연결을 참조하세요.

  3. 추가를 선택하여 대시보드에 변수를 추가합니다.

임시 필터 생성

Ad Hoc 필터는 사용 가능한 가장 복잡하고 유연한 변수 옵션 중 하나입니다. 이 변수를 사용하면 일반적인 변수 옵션 목록 대신 대시보드 전체에 대한 임시 쿼리를 작성할 수 있습니다. 이러한 방식으로 적용한 필터는 대시보드의 모든 패널에 적용됩니다.

변수 선택 옵션을 구성합니다.

선택 옵션은 가변 옵션 선택을 관리하는 데 사용할 수 있는 기능입니다. 모든 선택 옵션은 선택 사항이며 기본적으로 해제되어 있습니다.

다중 값 변수

여러 값을 선택한 상태에서 변수를 보간하는 것은 변수가 사용되는 주어진 컨텍스트에서 유효한 문자열로 여러 값의 형식을 지정하는 방법이 간단하지 않기 때문에 까다롭습니다. Grafana는 각 데이터 소스 플러그인이 템플릿 보간 엔진에 여러 값에 사용할 형식을 알릴 수 있도록 하여 이 문제를 해결하려고 합니다.

참고

Grafana가 모든 값을 단일 문자열로 포맷하려면 변수의 모든 값 사용자 지정 옵션이 비어 있어야 합니다. 이 필드를 비워 두면 Grafana는 쿼리의 모든 값을 연결 (합산) 합니다. 예를 들어 value1,value2,value3입니다. 사용자 지정 all 값을 사용하는 경우 대신 값은 or가 됩니다. * all

Graphite 데이터 소스를 사용하는 다중 값 변수

Graphite는 글로브 표현식을 사용합니다. 이 경우 값이 여러 개인 변수는 현재 변수 값이 호스트1, 호스트2, 호스트3인 것처럼 {host1,host2,host3} 보간됩니다.

Prometheus 또는 InfluxDB 데이터 소스를 사용하는 다중 값 변수

InfluxDB와 Prometheus는 정규식 표현식을 사용하므로 동일한 변수를 다음과 같이 보간합니다. (host1|host2|host3) 또한 모든 값에는 정규식 이스케이프가 적용됩니다. 그렇지 않은 경우 정규식 제어 문자가 있는 값은 정규식 표현식을 깨뜨릴 수 있습니다.

Elastic 데이터 소스를 사용하는 다중 값 변수

Elasticsearch는 lucene 쿼리 구문을 사용하므로 동일한 변수의 형식이 다음과 같이 지정됩니다. ("host1" OR "host2" OR "host3") 이 경우 모든 값이 이스케이프되어 값에 lucene 제어 단어와 따옴표만 포함됩니다.

다중 값 변수 문제 해결

자동 이스케이프 및 서식 지정은 문제를 일으킬 수 있으며 문제의 이면에 있는 논리를 파악하기가 까다로울 수 있습니다. 특히 정규식 구문을 사용하려면 정규식 연산자 컨텍스트에서 변수를 사용해야 하는 InfluxDB 및 Prometheus의 경우 더욱 그렇습니다.

Grafana가 이 자동 정규식 이스케이프 및 형식 지정을 수행하지 않도록 하려면 다음 중 하나를 수행해야 합니다.

  • 다중 값 또는 모두 포함 옵션 옵션을 끕니다.

  • 원시 형식을 사용하십시오.

모두 포함 옵션

Grafana는 변수 드롭다운 All 목록에 옵션을 추가합니다. 사용자가 이 옵션을 선택하면 모든 변수 옵션이 선택됩니다.

모든 값 사용자 지정

이 옵션은 모두 포함 옵션을 선택한 경우에만 표시됩니다.

모든 값 사용자 지정 필드에 regex, glob 또는 lucene 구문을 입력하여 옵션의 값을 정의합니다. All

기본적으로 이 All 값에는 결합된 표현식의 모든 옵션이 포함됩니다. 시간이 너무 길어질 수 있으며 성능 문제가 발생할 수 있습니다. 와일드카드 정규식과 같이 사용자 지정 all 값을 지정하는 것이 더 나을 수도 있습니다.

모든 값 사용자 지정 옵션에 사용자 지정 정규식, 글로브 또는 루신 구문을 사용하려면 이스케이프 처리되지 않으므로 데이터 원본에 유효한 값이 무엇인지 생각해 봐야 합니다.

전역 변수

Grafana에는 쿼리 편집기의 표현식에 사용할 수 있는 글로벌 내장 변수가 있습니다. 이 항목에서는 알파벳순으로 나열하고 정의합니다. 이러한 변수는 쿼리, 대시보드 링크, 패널 링크 및 데이터 링크에 유용합니다.

$__대시보드

이 변수는 현재 대시보드의 이름입니다.

$__from 및 $__to

Grafana에는 두 개의 내장 시간 범위 변수인 및 이 있습니다. $__from $__to 현재는 기본적으로 항상 에포크 밀리초로 보간되지만 날짜 형식을 제어할 수 있습니다.

구문 예제 결과 설명

${__from}

1594671549254

유닉스 밀리세컨드 에포크

${__from:date}

2020-07-13T 20:19:09.254 Z

인수 없음, 기본값은 ISO 8601/RFC 3339입니다.

${__from:date:iso}

2020-07-13T 20:19:09.254 Z

ISO 8601/RFC 3339

${__from:date:seconds}

1594671549

유닉스 세컨즈 에포크

${__from:date:YYYY-MM}

2020-07

: 문자를 포함하지 않는 모든 사용자 지정 날짜 형식

위 구문은 다음과 함께 사용할 수도 ${__to} 있습니다.

$__간격

$__interval변수를 시간 (InfluxDB, MySQL, Postgres, MSSQL의 경우), 날짜 히스토그램 간격 (Elasticsearch의 경우) 또는 요약 함수 매개 변수 (Graphite의 경우) 별로 그룹화하는 매개 변수로 사용할 수 있습니다.

Grafana는 쿼리에서 시간별로 그룹화하는 데 사용할 수 있는 간격을 자동으로 계산합니다. 그래프에 표시할 수 있는 것보다 많은 데이터 포인트가 있는 경우 더 큰 간격으로 그룹화하여 쿼리를 더 효율적으로 만들 수 있습니다. 예를 들어 3개월 분량의 데이터를 그래프로 보는 경우 분 단위로는 세부 정보가 표시되지 않을 수 있습니다. 시간별 또는 일별로 그룹화하면 그래프에 표시되는 내용에 영향을 주지 않으면서 쿼리를 보다 효율적으로 수행할 수 있습니다. 시간 범위와 그래프 너비 (픽셀 수) 를 사용하여 $__interval 계산됩니다.

대략적인 계산: (to - from) / resolution

예를 들어, 시간 범위가 1시간이고 그래프가 전체 2m 화면인 경우 간격은 다음과 같이 계산될 수 있습니다. 포인트는 2분 간격으로 그룹화됩니다. 시간 범위가 6개월이고 그래프가 전체 화면인 경우 간격은 1d (1일) 일 수 있습니다. 포인트는 일별로 그룹화됩니다.

InfluxDB 데이터 소스에서 레거시 $interval 변수는 동일한 변수입니다. $__interval대신 사용해야 합니다.

InfluxDB 및 Elasticsearch 데이터 소스에는 간격을 하드 코딩하거나 $__interval 변수의 최소 제한을 설정하는 데 사용되는 Group by time interval 필드가 있습니다 (예: > 구문 사용). >10m

$__interval_ms

이 변수는 시간 간격 형식의 $__interval 문자열이 아니라 밀리초 단위의 변수입니다. 예를 들어, 가 20m $__interval_ms 이면 $__interval is입니다. 1200000

$__org

이 변수는 현재 조직의 ID입니다. ${__org.name}현재 조직의 이름입니다.

$__사용자

${__user.id}현재 사용자의 ID입니다. ${__user.login}현재 사용자의 로그인 핸들입니다. ${__user.email}현재 사용자의 이메일입니다.

$__range

Prometheus 및 Loki 데이터 소스에서만 지원됩니다. 이 변수는 현재 대시보드의 범위를 나타냅니다. 에 의해 계산됩니다to - from. 밀리초 단위이고 두 번째 표현은 and입니다$__range_ms. $__range_s

$__rate_interval

Prometheus 데이터 소스에서만 지원됩니다. $__rate_interval변수는 rate 함수에 사용하기 위한 것입니다.

$타임필터 또는 $__타임필터

$timeFilter변수는 현재 선택한 시간 범위를 표현식으로 반환합니다. 예를 들어, 시간 범위 간격 Last 7 days 표현식은 다음과 같습니다time > now() - 7d.

이는 다음을 비롯한 여러 곳에서 사용됩니다.

  • InfluxDB 데이터 소스의 WHERE 절. Grafana는 쿼리 편집기 모드에서 InfluxDB 쿼리에 자동으로 추가합니다. 텍스트 편집기 모드에서 수동으로 추가할 수 있습니다. WHERE $timeFilter

  • Azure Monitor 데이터 원본의 로그 분석 쿼리

  • MySQL, Postgres 및 MSSQL에서의 SQL 쿼리.

  • $__timeFilter변수는 MySQL 데이터 소스에서 사용됩니다.

$__타임존

$__timezone변수는 현재 선택된 시간대, utc 또는 IANA 시간대 데이터베이스의 항목 (예:) 을 반환합니다. America/New_York

현재 선택한 시간대가 브라우저 시간인 경우 Grafana는 브라우저 시간대를 결정하려고 시도합니다.

체인 변수

연결 변수 또는 중첩 변수라고도 하는 체인 변수는 변수 쿼리에 하나 이상의 다른 변수가 있는 쿼리 변수입니다.

체인 변수 쿼리는 데이터 원본마다 다르지만 전제는 모든 데이터 원본에서 동일합니다. 체인 변수 쿼리를 허용하는 모든 데이터 소스에서 체인 변수 쿼리를 사용할 수 있습니다.

5단계 또는 10단계 깊이의 매우 복잡한 연결된 템플릿 대시보드를 사용할 수 있습니다. 엄밀히 따지자면 깊이와 복잡성에는 제한이 없지만, 링크가 많을수록 쿼리 부하가 커집니다.

베스트 프랙티스 및 팁

다음 방법을 사용하면 대시보드와 변수를 더 쉽게 사용할 수 있습니다.

새 연결 변수 생성

  • 변수를 연결하면 부모/하위 종속성이 생성됩니다. 사다리나 나무로 생각할 수 있습니다.

  • 새 체인 변수를 만드는 가장 쉬운 방법은 새 변수의 기준으로 사용할 변수를 복사하는 것입니다. 변수 목록에서 변수 항목 오른쪽에 있는 변수 복제 아이콘을 클릭하여 사본을 생성합니다. 그런 다음 상위 변수에 대한 쿼리에 항목을 추가할 수 있습니다.

  • 이렇게 만든 새 변수는 목록 하단에 나타납니다. 논리적인 순서로 정렬하려면 목록의 다른 위치로 드래그해야 할 수 있습니다.

변수 순서

각 항목의 오른쪽에 있는 위쪽 및 아래쪽 화살표를 클릭하여 대시보드 변수 목록에서 변수 순서를 변경할 수 있습니다. Grafana는 이 목록에 따라 변수 드롭다운을 왼쪽에서 오른쪽으로 나열하고 변수는 맨 왼쪽 상단에 있습니다.

  • 종속성이 없는 변수를 하위 변수 앞에 맨 위에 나열합니다.

  • 각 변수는 해당 변수가 종속된 변수를 따라야 합니다.

  • UI에는 어떤 변수가 종속성 관계를 갖는지 알 수 있는 표시가 없다는 점을 기억하세요. 변수를 논리적인 순서로 나열하여 다른 사용자 (및 사용자 자신) 가 쉽게 이해할 수 있도록 하세요.

복잡성 고려 사항

변수에 종속성 계층이 많을수록 변수를 변경한 후 대시보드를 업데이트하는 데 시간이 더 오래 걸립니다.

예를 들어, 일련의 네 개의 연결된 변수 (국가, 지역, 서버, 지표) 가 있고 루트 변수 값 (국가) 을 변경하는 경우 Grafana는 대시보드의 시각화를 업데이트하기 전에 모든 종속 변수에 대한 쿼리를 실행해야 합니다.

변수 관리

변수 페이지에서는 변수를 추가하고 기존 변수를 관리할 수 있습니다. 또한 변수를 검사하고 변수가 다른 변수 또는 대시보드에서 참조 (또는 사용) 되고 있는지 확인할 수 있습니다.

이동 — 드래그 앤 드롭을 사용하여 목록에서 변수를 위 또는 아래로 이동할 수 있습니다.

복제 - 변수를 복제하려면 오른쪽에 있는 아이콘 세트에서 복제 아이콘을 클릭합니다. 그러면 원래 변수 이름 앞에 접두사가 붙은 copy_of_ 변수 사본이 만들어집니다.

삭제 - 변수를 삭제하려면 오른쪽에 있는 아이콘 세트에서 휴지통 아이콘을 클릭합니다.

정규식을 사용하여 변수를 필터링합니다.

Regex Query 옵션을 사용하면 변수 쿼리에서 반환되는 옵션 목록을 필터링하거나 반환된 옵션을 수정할 수 있습니다.

이 페이지에서는 regex를 사용하여 변수 드롭다운에서 값을 필터링/수정하는 방법을 보여줍니다.

Regex 쿼리 옵션을 사용하면 변수 쿼리에서 반환되는 옵션 목록을 필터링하거나 반환된 옵션을 수정할 수 있습니다. 자세한 내용은 정규 표현식에 대한 Mozilla 가이드를 참조하십시오.

다음 예제는 다음 옵션 목록에 대한 필터링을 보여줍니다.

backend_01 backend_02 backend_03 backend_04

01 끝나거나 로 끝나는 옵션만 02 반환되도록 필터링합니다.

정규식:

/ ( 01|02 ) $/

결과:

backend_01 backend_02

텍스트의 일부를 반환하도록 정규식 캡처 그룹을 사용하여 옵션을 필터링 및 수정합니다.

정규식:

/.* ( 01|02 ) /

결과:

01 02

필터링 및 수정 - Prometheus 예제

이 옵션 목록의 경우:

up{instance="demo.robustperception.io:9090",job="prometheus"} 1 1521630638000 up{instance="demo.robustperception.io:9093",job="alertmanager"} 1 1521630638000 up{instance="demo.robustperception.io:9100",job="node"} 1 1521630638000

이 정규식은 다음과 같습니다.

/. *instance=" ( [^"]* ) .*/

다음 결과를 반환합니다.

demo.robustperception.io:9090 demo.robustperception.io:9093 demo.robustperception.io:9100

명명된 텍스트 및 값 캡처 그룹을 사용하여 필터링 및 수정

명명된 캡처 그룹을 사용하면 변수 쿼리에서 반환된 옵션에서 별도의 '텍스트' 및 '값' 부분을 캡처할 수 있습니다. 이렇게 하면 변수 드롭다운 목록에 선택 가능한 각 값에 대해 친숙한 이름을 포함할 수 있습니다.

예를 들어 Prometheus 메트릭을 쿼리할 때는 이 node_hwmon_chip_names 값보다 훨씬 더 친숙합니다chip_name. chip 따라서 변수 쿼리 결과는 다음과 같습니다.

node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_0",chip_name="enp216s0f0np0"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_1",chip_name="enp216s0f0np1"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_2",chip_name="enp216s0f0np2"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_3",chip_name="enp216s0f0np3"} 1

다음 Regex를 통과했습니다.

/chip_name="(?<text>[ ^ " ] + ) |chip=" (?<value >[ ^ " ] + )/g

다음과 같은 드롭다운 목록을 생성합니다.

Display Name Value ------------ ------------------------- enp216s0f0np0 0000:d7:00_0_0000:d8:00_0 enp216s0f0np1 0000:d7:00_0_0000:d8:00_1 enp216s0f0np2 0000:d7:00_0_0000:d8:00_2 enp216s0f0np3 0000:d7:00_0_0000:d8:00_3

textvalue 캡처 그룹 이름만 지원됩니다.