변수 생성 및 관리
IBM® Cloud Logs 에서 변수는 쿼리에 사용되는 값의 자리 표시자입니다. 사용자 지정 대시보드에서 사용하는 경우 대시보드의 쿼리가 업데이트되어 해당 값에 대한 데이터를 표시합니다.
변수는 대시보드를 더욱 상호 작용적이고 역동적으로 만듭니다. 쿼리에 서버, 애플리케이션 또는 센서의 특정 이름을 넣는 대신 변수를 사용할 수 있습니다. 다양한 데이터 보기 간에 쉽게 전환할 수 있습니다. 즉, 복잡하고 카디널리티가 높은 메트릭이 있는 경우 변수를 추가하여 관심 있는 특정 값을 확대할 수 있습니다. 변수는 변수 소스 유형에 관계없이 모든 데이터 유형에 대해 위젯에서 사용할 수 있습니다.
변수 유형
다양한 변수 유형 중에서 선택할 수 있습니다.
- 정적 값 변수
- 쉼표로 구분된 숫자 또는 숫자 문자열과 같은 고정된 변수 값 목록을 수동으로 정의할 수 있습니다. 예를 들어 국가 이름이 변경되지 않는 경우, 데이터 소스 쿼리 변수가 아닌 정적 값 변수로 생성하는 것이 좋습니다.
- 쿼리 변수
- 변수 값은 로그 또는 메트릭 데이터 소스 쿼리에서 검색됩니다. 예를 들어 쿼리 변수는 서버 이름, 센서 ID 또는 데이터 센터의 목록을 생성하여 데이터 소스 쿼리를 사용하여 옵션을 가져와서 값을 동적으로 업데이트할 수 있습니다. 쿼리 변수는 특히 다양한 환경에서 여러 데이터 소스 인스턴스를 관리할 때 유용합니다.
사용자 지정 대시보드에 변수 정의하기
-
IBM Cloud 계정에 로그인 합니다.
-
대시보드 아이콘
> 사용자 지정 대시보드를 클릭합니다.
-
새 대시보드 또는 기존 대시보드에서 관리 변수 아이콘( { }.
-
변수 + 변수를 클릭합니다.
-
모든 변수 유형에 대해 다음 필드를 구성합니다:
-
변수 이름입니다. 이 필드에 입력하는 텍스트에 따라 변수 이름이 쿼리에 표시되는 방식이 결정됩니다(예:
{{ podvalues }}). 변수 이름에는 대문자나 공백을 사용할 수 없습니다. -
표시 이름(선택 사항). 이 필드에 입력한 텍스트는 드롭다운 목록의 일부로 선택 항목에 나타납니다(예: "내 파드").
-
선택 옵션.
- 다중 값
- 다중 값은 사용자가 특정 변수 내에서 여러 값을 선택할 수 있도록 지정합니다.
{{ variablename }}와 같은 일부 쿼리는 여러 값을 지원하지 않습니다. 쿼리가 여러 값을 지원하는 경우에만 이 옵션을 선택합니다. - 모두 포함
- 다중 값 옵션이 활성화된 경우 모두 포함을 선택할 수 있습니다. 쿼리는 특정 선택 항목에 관계없이 특정 기간 동안 사용 가능한 모든 값과 미래 값을 선택합니다. 두 옵션을 모두 선택하면 기본적으로 모든 변수 옵션이 선택되며, 하나 이상의 옵션을 선택 해제할 수 있습니다. 두 옵션을 모두 지정하지 않으면 한 번에 하나의 변수 값을 선택할 수 있습니다.
-
query유형 변수의 경우:-
쿼리 소스를 지정합니다(
logs또는metrics). -
variable type의 경우values을logs으로 지정합니다.metrics의 경우metric names,metric labels또는label values을 지정합니다.metric labels을 선택하면 표시되는 값에 사용할 레이블을 선택합니다. -
logs의 경우 쿼리할 로그 키를 선택하여 필드를 정의합니다. 현재 변수 값의 목록이 값 미리 보기에 영숫자 순서로 표시됩니다. -
metrics의 경우 Metrics 정규식에 정규식 표현식을 입력하여 표시할 메트릭 목록을 가져옵니다. 예를 들어^kube(.*)은 kube로 시작하는 모든 메트릭 이름을 반환합니다.-
label values의 경우 메트릭 레이블에서 표시되는 값의 레이블을 선택합니다. 예를 들어Pod Name = {{ pod }}과 같은 변수를 삽입하여 레이블을 동적으로 만들 수 있습니다. -
label values, 레이블 필터의 경우 하나 이상의 중첩 변수와 쿼리에 대한 추가 필터 레이어를 만듭니다. 예를 들어{{ podvalue }}또는 클러스터의 하드코딩된 이름 값을 선택하여 클러스터별로 레이블을 필터링하도록 선택할 수 있습니다. -
metrics의 경우 변수 값 표시 이름에 대해 드롭다운 선택 목록에 값이 표시되는 방식을 정의합니다.필드에 대한 현재 변수 값의 목록이 값 미리 보기에 표시됩니다.
-
-
값 정렬의 경우 값 미리 보기에서 데이터를 정렬하는 방법을 선택합니다.
-
-
저장 을 클릭하십시오.
정의된 변수 목록에서 변수를 편집하거나 삭제할 수도 있습니다.
조회에서 변수 사용
사용자 지정 대시보드에서 변수를 사용하는 것 외에도, 정의된 변수를 Lucene, DataPrime, 및 PromQL 쿼리에서 사용할 수 있습니다.
Lucene 쿼리
Lucene 쿼리에서 정의된 변수를 사용할 수 있습니다. 예를 들어 product_id:{{ pid }} 여기서 pid 은 변수 이름(표시 이름이 아님)입니다,
DataPrime 쿼리
변수가 생성된 후 사용자가 선택한 변수 값은 $p.<variable_name> 을 사용하여 DataPrime 쿼리에서 쿼리 매개 변수로 사용할 수 있습니다.
PromQL 쿼리
PromQL 쿼리 언어에 {{ variable_name }} 을 사용합니다.
예를 들어, PromQL 쿼리 sum(kube_pod_owner{pod=~"{{ pod }}"}) 는 Kubernetes 파드와 관련된 메트릭을 집계하는 데 사용됩니다. {pod=~"{{ pod }}"} 는 변수 값과 이름이 일치하는 특정 파드의 kube_pod_owner 메트릭을 필터링하는 레이블 선택기입니다. {{ pod }} 자리 표시자는 쿼리가 실행될 때 실제 포드 이름을 대체하는 템플릿 변수입니다.
PromQL 쿼리에서 미리 정의된 변수를 사용할 수도 있습니다.
| 가변 | 설명 | 예제 |
|---|---|---|
${__range} |
이 변수는 대시보드 시간 범위의 기간을 나타냅니다. PromQL 에서 지원하는 간격 문자열로 렌더링됩니다. 예를 들어 13.00 에서 14.30 까지의 시간 범위를 선택하면 ${__range} 변수는 90m 으로 계산됩니다. |
1d, 5m |
${__range_s} |
선택한 시간 프레임의 초 수로 계산됩니다. | 60s, 180s |
${__range_ms} |
선택한 시간 프레임의 밀리초 수로 계산됩니다. | 60ms, 180ms |
예를 들어 sum_over_time 에서 __range variable 을 사용할 수 있습니다.
sum_over_time(kube_pod_owner[${__range}])