...
CloudHub의 Dashboard template variables를 사용하면 쿼리를 편집하지 않고도 Graph내 작성된 쿼리의 특정 요소를 변경할 수 있습니다. 등록된 Template variables을 선택하여 Dashboard의 데이터를 조회 할 조회할 수 있습니다.
Template variables 생성하기
Template variables는 CloudHub Dashboard를 생성할 때 Graph 쿼리 및 제목에 사용됩니다.
쿼리에서 Template variables의 이름은 콜론(:)으로 묶어 선언 합니다선언합니다.
Predefined template variables(사전 정의된 템플릿 변수) 또는 Custom template variables(사용자 정의 템플릿 변수)를 사용할 수 있습니다.
template이 정의되면 Dashboard 인터페이스(UI)에서 변수 값을 변숫값을 선택할 수 있습니다.
...
...
Predefined template variables
...
:dashboardTime:
이 변수는 Dashboard 우측상단의 오른쪽 위의 시간 DropDown 값이 적용 됩니다적용됩니다.
...
상대시간을 상대 시간을 사용하는 경우 DropDown 에 지정된 시간 오프셋 (-5m, -15m, -30m 등)을 나타내며 시간은 "현
재"를 기준으로 가정합니다. 날짜 선택기로 정의된 절대 시간을 사용하는 경우 :dashboardTime:
은 더 낮은 임계 값으로 임계값으로 채워집니다.
Code Block | ||
---|---|---|
| ||
SELECT "usage_system" AS "System CPU Usage" FROM "telegraf".."cpu" WHERE time > :dashboardTime: |
...
:upperDashboardTime:
이 변수는 “date picker”를 사용할 때 지정된 최대범위 최대 범위 시간으로 정의됩니다.
...
Relative Time(상대시간상대 시간)을 이용하거나 Absolute Time(지정시간지정 시간)의 최대범위의 최대 범위의 시간이 최대이면 최대시간은 최대 시간은 now()
로 전달됩니다.
Code Block | ||
---|---|---|
| ||
SELECT "usage_system" AS "System CPU Usage" FROM "telegraf".."cpu" WHERE time > :dashboardTime: AND time < :upperDashboardTime: |
...
:interval:
이 변수는 Dashboard 우측상단의 오른쪽 위의 interval DropDown 값이 적용됩니다.
...
Graph쿼리에서는 집계함수와 집계 함수와 함께 사용돼야 하며 GROUP BY time()
절에 작성합니다.
...
Template Variables는 필터링하여 결과 값을 결과값을 출력할 때 사용됩니다. Meta Query 또는 CSV를 업로드하여 변수를 만들 수 있습니다.
...
Dashboard 오른쪽 위의 “Variables”를 클릭한 다음 “+ Add Template Variable”를 클릭하십시오클릭합니다.
생성할 변수의 이름을 입력하십시오입력합니다.
변수의 Type을 선택하십시오선택합니다.
쿼리 결과 목록을 확인하고 기본값을 선택하십시오선택합니다. CSV 또는 Map Type을 사용하는 경우 원하는 형식으로 원하는 값으로 CSV를 업로드하거나 기본값을 입력하십시오입력합니다.
“Create” Click
...
Template variable를 생성하면 변수로 생성한 DropDown이 Dashboard의 상단에 위에 추가되며 Graph 검색조건에 검색 조건에 사용할 수 있습니다.
Template Variable Types
CloudHub는 다음과 같은 Template variable types를 지원합니다 :
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
Databases
...
Database meta query
Database template variables는 아래의 meta query를 사용하여 InfluxDB 인스턴스의 모든 Database 항목을 조회 합니다.Database 항목을 조회합니다.
(Database 항목은 Super Admin일 경우 전체가 보여지고, 그 외의 권한들은 자신이 속한 그룹과 맵핑된 Database 항목만 보여집니다.)
Code Block | ||
---|---|---|
| ||
SHOW DATABASES |
cell query의 Database variable 사용예제사용 예제
Code Block | ||
---|---|---|
| ||
SELECT mean("usage_system") FROM :db:."autogen"."cpu" |
Database variable use cases
Database template variables는 유사하거나 동일한 형태의 Database로 표현할 경우 유용하게 사용됩니다.
각 Database에 대한 Dashboard의 정보를 빠르게 변경 할 변경할 수 있습니다.
Measurements
Measurement를 변수로 사용
Measurement meta query
Measurement template variables는 아래의 meta query를 사용하여 지정된 Database의 속한 Measurements의 항목을 조회 합니다조회합니다.
Code Block | ||
---|---|---|
| ||
SHOW MEASUREMENTS ON database_name |
cell query의 Measurement variable 사용예제사용 예제
Code Block | ||
---|---|---|
| ||
SELECT * FROM "telegraf"."autogen".:measurementVar: |
...
Field key meta query
Field key template variables는 아래의 meta query를 사용하여 지정된 Database의 Measurements의 Field로 Group By된 By 된 항목을 조회 합니다조회합니다.
Code Block | ||
---|---|---|
| ||
SHOW FIELD KEYS ON database_name FROM measurement_name |
cell query의 field key variable 사용예제사용 예제
Code Block |
---|
SELECT :fieldKeyVar: FROM "telegraf"."autogen"."cpu" |
Field key variable use cases
Field key template variables를 사용하면 Measurement의 Field key에 해당하는 Dashboard의 정보를 빠르게 변경 할 변경할 수 있습니다.
Tag Keys
tag key를 변수로 사용
Tag key meta query
Tag key template variables는 아래의 meta query를 사용하여 지정된 Database의 Measurements의 Tag key 항목을 조회 합니다조회합니다.
Code Block | ||
---|---|---|
| ||
SHOW TAG KEYS ON database_name FROM measurement_name |
cell query의 tag key variable 사용예제사용 예제
Code Block | ||
---|---|---|
| ||
SELECT "usage_system" FROM "telegraf"."autogen"."cpu" GROUP BY :tagKeyVar: |
Tag key variable use cases
Tag key template variables를 사용하면 Measurement의 Tag key에 해당하는 Dashboard의 정보를 빠르게 변경 할 변경할 수 있습니다.
Tag Values
tag value를 변수로 사용
Tag value meta query
Tag value template variables는 아래의 meta query를 사용하여 지정된 Database의 Measurement의 Tag Key에 GroupBy 된 모든 항목을 조회 합니다조회합니다.
Code Block | ||
---|---|---|
| ||
SHOW TAG VALUES ON database_name FROM measurement_name WITH KEY tag_key |
cell query의 tag value variable 사용예제사용 예제
Code Block | ||
---|---|---|
| ||
SELECT "usage_system" FROM "telegraf"."autogen"."cpu" WHERE cpu = :tagValueVar: |
Tag value variable use cases
Tag value template variables를 사용하면 Measurement의 Tag value에 해당하는 Dashboard의 정보를 빠르게 변경 할 변경할 수 있습니다.
CSV
변수를 CSV(쉼표로 구분 된 값) 으로 형식으로 선언하여 쿼리의 일부에 사용합니다.
Example CSVs:
...
필드 값이 문자열 일 경우 InfluxQL에서 작은 따옴표를 사용하므로 작은 따옴표로 묶어야합니다묶어야 합니다.
'network_router01', 'server01', 'server01-vm-cmp', 'server01-vm03', 'server02', 'server02-vm01'
cell query의 CSV value variable 사용예제사용 예제
Code Block | ||
---|---|---|
| ||
SELECT "usage_system" FROM "telegraf"."autogen"."cpu" WHERE host = :csvVar: |
CSV variable use cases
CSV template variables는 meta query를 사용할 수 없을 경우 사용자정의 사용자 정의 변수를 이용합니다.
Map
변수를 사용자정의 사용자 정의 형식의 key-value 목록으로 선언하여 쿼리의 일부에 사용합니다.
key-value중 value 중 key 값은 DropDown목록에 DropDown 목록에 표시됩니다. value는 쿼리의 값에 사용됩니다.
...
Code Block | ||
---|---|---|
| ||
key1,value1 key2,value2 key3,value3 key4,value4 |
...
Key는 따옴표를 사용하지 않지만, value가 문자열 일 경우 작은 따옴표로 작은따옴표로 묶습니다. (required by InfluxQL)
...
cell query의 Map value variable 사용예제사용 예제
Code Block | ||
---|---|---|
| ||
SELECT "usage_system" FROM "telegraf"."autogen"."cpu" WHERE host = :mapVar: |
...
예를 들면 위와 같은 Map variable을 정의했다면 network_router01
> host1 이라는 이름으로 DropDown에 DropDown 에 표시됩니다.
Custom Meta Query
InfluxDB에서 특정 결과 값을 가져 오는 Custom Meta Query 변수를 생성 하십시오생성합니다.
이와 같이 이처럼 생성된 변수는 저장된 데이터의 값에 따라 변경될 수 있으므로 있음으로 유연한 쿼리를 사용 할 사용할 수 있습니다.
아래와 같이 변수를 생성합니다.
Meta Query 항목에는 아래와 같이 입력합니다.
...
cell query의 custom meta query variable 사용예제사용 예제
Code Block | ||
---|---|---|
| ||
SELECT * FROM "telegraf"."autogen"."cpu" WHERE time > :dashboardTime: AND "host" != :metaVar: |
...
Text variable use cases
Text template variables를 사용하면 여러 Graph에 대해 WHERE
절로 한번에 한 번에 추가 또는 변경이 가능합니다.
또한 여러 쿼리에 사용되는 정규식을 생성할 수 있습니다.
일괄 적용이 가능하므로 Troubleshooting 문제를 해결할 경우 사용합니다.
...
아래와 같은 Reserved variable names은 CloudHub에서 이미 문법적인 용도로 사용되고 있기 때문에 변수 명으로 변수명으로 사용할 수 없습니다.:database:
:measurement:
:dashboardTime:
:upperDashboardTime:
:interval:
:upper:
:lower:
:zoomedUpper:
:zoomedLower:
...
Template variables를 생성하고 그 변수를 필터링 할 수 있는 다른 Custom meta query template variables 생성하여 사용합니다.
예를 들면, 하나의 Measurement의 모든 Field를 조회하는 변수를 생성하고 그 변수에 값에 따라 다른 변수를 변경할 때 사용 됩니다사용됩니다.
Measurements Type으로 변수를 생성합니다. 변수의 이름은
:measurementVar:
이라고 지정합니다.Custom Meta query Type으로 변수를 추가 생성합니다. 이 변수의 이름은
:fieldKey:
라고 으로 지정합니다.
Meta Query 항목에는 아래와 같이 입력합니다.Code Block language sql SHOW FIELD KEYS ON telegraf FROM :measurementVar:
이 Custom Meta query 변수는 위에서 정의된
:measurementVar:
변수 값에 변숫값에 따라 KeyField가 변경 됩니다변경됩니다.이제 Dashboard에서
measurementVar
와:fieldKey:
를 사용하는 Graph를 생성합니다.Code Block language sql SELECT :fieldKey: FROM "telegraf"..:measurementVar: WHERE time > :dashboardTime:
...
작업이 완료되면 Dashboard Dashboard가 다음과 같이 실행 됩니다 :실행됩니다.
...
Defining template variables in the URL
URL을 이용하여 Dashboard의 변수 값을 변경 할 변숫값을 변경할 수 있습니다. URL에 변수 값이 변숫값이 포함된 특정 화면의 Link를 생성할 수 있으므로 있음으로 이를 통해 Dashboard공유에 사용 할 Dashboard 공유에 사용할 수 있습니다.
URL변수는 URL 변수는 물음표(?) 의 뒤부터 입력하면 됩니다.
여러 template variable를 전달할 경우 앰퍼샌드엔퍼센트(&) 를 사용하여 변수를 연결할 수 있습니다.
Pattern for template variable query parameters
Code Block | ||
---|---|---|
| ||
# Spaces for clarity only & tempVars %5B variableName %5D = variableValuevariableValue에 |
&
새 매개 변수의 시작을 나타냅니다.
tempVars
전달되는 URL의 매개 변수가 template variable임을 CloudHub에 알립니다. 모든 반드시 Template variable 앞에 입력해야 합니다.
%5B
, %5D
URL-encoded [
and ]
: 사이에 template 변수 명을 변수명을 입력합니다.
variableName
template variable의 이름 입니다.
variableValue
template variable의 값 입니다값입니다.
Dashboard에서 template variable이 수정 될 수정될 때마다 브라우저의 URL도 자동으로 변경됩니다.
...