Table of Contents |
---|
개요
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
CloudHub는 UI의 요소에 Predefined template variables가 정의되어 있습니다. 이 변수는 모든 쿼리에서 사용할 수 있습니다.:dashboardTime:
:upperDashboardTime:
:interval:
dashboardTime
:dashboardTime:
이 변수는 Dashboard 우측상단의 시간 DropDown 값이 적용 됩니다.
...
상대 시간을 상대시간을 사용하는 경우 DropDown 에 지정된 시간 오프셋 (-5m, -15m, -30m 등)을 나타내며 시간은 "현
재"를 기준으로 가정합니다. 날짜 선택기로 정의된 절대 시간을 사용하는 경우 :dashboardTime:
은 더 낮은 임계 값으로 채워집니다.
Code Block | ||
---|---|---|
| ||
SELECT "usage_system" AS "System CPU Usage" FROM "telegraf".."cpu" WHERE time > :dashboardTime: |
“지금”을 “현재”를 포함하지 않는 과거 데이터를 확인하려면 “date picker”를 사용하여 특정 시간 범위를 지정합니다.
Graph 쿼리는 보다 큼(>) 및 보다 작음(<) 연산자와
최소 값:dashboardTime:
최대 값:upperDashboardTime:
변수를 사용하여 쿼리를 작성합니다.
upperDashboardTime
: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
:interval:
이 변수는 Dashboard 우측상단의 interval DropDown 값이 적용됩니다.
...
Code Block | ||
---|---|---|
| ||
SELECT mean("usage_system") AS "Average System CPU Usage" FROM "telegraf".."cpu" WHERE time > :dashboardtime: GROUP BY time(:interval:) |
Custom template variables 생성하기
Template Variables는 필터링하여 결과 값을 출력할 때 사용됩니다. Meta Query 또는 CSV를 업로드하여 변수를 만들 수 있습니다.
...
Dashboard 오른쪽 위의 “Variables”를 클릭한 다음 “+ Add Template Variable”를 클릭하십시오.
생성할 변수의 이름을 입력하십시오.
변수의 Type을 선택하십시오.
쿼리 결과 목록을 확인하고 기본값을 선택하십시오. CSV 또는 Map Type을 사용하는 경우 원하는 형식으로 원하는 값으로 CSV를 업로드하거나 기본값을 입력하십시오.
“Create” Click
...
Template variable을 variable를 생성하면 변수로 생성한 DropDown이 Dashboard의 상단에 추가되며 Graph 검색조건에 사용할 수 있습니다.
Template Variable Types
CloudHub는 다음과 같은 Template variable types를 지원합니다 :
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
Databases
Database를 변수로 사용
Database meta query
Database template variables는 아래의 meta query를 사용하여 InfluxDB 인스턴스의 모든 Database 항목을 조회 합니다.
...
Database variable use cases
Database template variables는 유사하거나 동일한 형태의 Database로 표현할 경우 유용하게 사용됩니다.
각 Database에 대한 Dashboard의 정보를 빠르게 변경 할 수 있습니다.
Measurements
Measurement를 변수로 사용
Measurement meta query
Measurement template variables는 아래의 meta query를 사용하여 지정된 Database의 속한 Measurements의 항목을 조회 합니다.
...
Measurement variable use cases
Measurement template variables variables를 사용하면 각 Measurement에 해당하는 Dashboard의 정보를 빠르게 변경 할 수 있습니다.
Field Keys
field key를 변수로 사용
Field key meta query
Field key template variables는 아래의 meta query를 사용하여 지정된 Database의 Measurements의 Field로 Group By된 항목을 조회 합니다.
...
Field key variable use cases
Field key template variables variables를 사용하면 Measurement의 Field key에 해당하는 Dashboard의 정보를 빠르게 변경 할 수 있습니다.
Tag Keys
tag key를 변수로 사용
Tag key meta query
Tag key template variables는 아래의 meta query를 사용하여 지정된 Database의 Measurements의 Tag key 항목을 조회 합니다.
...
Tag key variable use cases
Tag key template variables variables를 사용하면 Measurement의 Tag key에 해당하는 Dashboard의 정보를 빠르게 변경 할 수 있습니다.
Tag Values
tag value를 변수로 사용
Tag value meta query
Tag value template variables는 아래의 meta query를 사용하여 지정된 Database의 Measurement의 Tag Key에 GroupBy 된 모든 항목을 조회 합니다.
...
Tag value variable use cases
Tag value template variables variables를 사용하면 Measurement의 Tag value에 해당하는 Dashboard의 정보를 빠르게 변경 할 수 있습니다.
CSV
변수를 CSV(쉼표로 구분 된 값)으로 선언하여 쿼리의 일부에 사용합니다.
...
CSV variable use cases
CSV template variables는 meta query를 사용할 수 없을 경우 사용자정의 변수를 이용합니다.
Map
변수를 사용자정의 형식의 key-value 목록으로 선언하여 쿼리의 일부에 사용합니다.
key-value중 key 값은 DropDown목록에 표시됩니다. value는 쿼리의 값에 사용됩니다.
...
예를 들면 위와 같은 Map variable을 정의했다면 network_router01
> host1 이라는 이름으로 DropDown에 표시됩니다.
Custom Meta Query
InfluxDB에서 특정 결과 값을 가져 오는 Custom Meta Query 변수를 생성 하십시오.
이와 같이 생성된 변수는 저장된 데이터의 값에 따라 변경될 수 있으므로 유연한 쿼리를 사용 할 수 있습니다.
...
Code Block | ||
---|---|---|
| ||
SELECT * FROM "telegraf"."autogen"."cpu" WHERE time > :dashboardTime: AND "host" != :metaVar: |
Text
입력한 문자를 변수로 사용
Text variable use cases
Text template variables variables를 사용하면 여러 Graph에 대해 WHERE
절로 한번에 추가 또는 변경이 가능합니다.
또한 여러 쿼리에 사용되는 정규식을 생성할 수 있습니다.
일괄 적용이 가능하므로 troubleshooting Troubleshooting 문제를 해결할 경우 사용합니다.
Reserved variable names
아래와 같은 Reserved variable names은 CloudHub에서 이미 문법적인 용도로 사용되고 있기 때문에 변수 명으로 사용할 수 없습니다.:database:
:measurement:
:dashboardTime:
:upperDashboardTime:
:interval:
:upper:
:lower:
:zoomedUpper:
:zoomedLower:
Advanced template variable usage
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 다음과 같이 실행 됩니다 :
...
Defining template variables in the URL
...
URL을 이용하여 Dashboard의 변수 값을 변경 할 수 있습니다. URL에 변수 값이 포함된 특정 화면의 Link를 생성할 수 있으므로 이를 통해 Dashboard공유에 사용 할 수 있습니다.
URL변수는 물음표(?)의 뒤부터 입력하면 됩니다.
여러 template variable를 전달할 경우 앰퍼샌드(&)를 사용하여 변수를 연결할 수 있습니다.
Pattern for template variable query parameters
Code Block | ||
---|---|---|
| ||
# Spaces for clarity only
& tempVars %5B variableName %5D = variableValue |
&
새 매개 변수의 시작을 나타냅니다.
tempVars
전달되는 URL의 매개 변수가 template variable임을 CloudHub에 알립니다. 모든 반드시 Template variable 앞에 입력해야 합니다.
%5B
, %5D
URL-encoded [
and ]
: 사이에 template 변수 명을 입력합니다.
variableName
template variable의 이름 입니다.
variableValue
template variable의 값 입니다.
Dashboard에서 template variable이 수정 될 때마다 브라우저의 URL도 자동으로 변경됩니다.
template variable의 URL예
Code Block | ||
---|---|---|
| ||
.../?&tempVars%5BmeasurementVar%5D=cpu |
여러 개 template variable의 URL예
Code Block |
---|
# Spaces for clarity only
.../? &tempVars%5BmeasurementVar%5D=cpu &tempVars%5BfieldKey%5D=usage_system |