Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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에 DropDown 에 지정된 시간 오프셋 (-5m, -15m, -30m 등)을 나타내며 시간은 "현
재"를 기준으로 가정합니다. 날짜 선택기로 정의 된 정의된 절대 시간을 사용하는 경우 :dashboardTime:은 더 낮은 임계 값으로 채워집니다.임계값으로 채워집니다.

Code Block
languagesql
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
languagesql
SELECT "usage_system" AS "System CPU Usage"
FROM "telegraf".."cpu"
WHERE time > :dashboardTime: AND time < :upperDashboardTime:

interval

:interval: 이 변수는 Dashboard 오른쪽 위의 interval DropDown 값이 적용됩니다.

...

Graph쿼리에서는 집계 함수와 함께 사용돼야 하며 GROUP BY time() 절에 작성합니다.

Code Block
languagesql
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를 업로드하여 변수를 만들 수 있습니다.

Template Variable 생성하기:

  1. Dashboard 오른쪽 위의 “Variables”를 클릭한 다음 “+ Add Template Variable”를 클릭합니다.

  2. 생성할 변수의 이름을 입력합니다.

  3. 변수의 Type을 선택합니다.

  4. 쿼리 결과 목록을 확인하고 기본값을 선택합니다. CSV 또는 Map Type을 사용하는 경우 원하는 형식으로 원하는 값으로 CSV를 업로드하거나 기본값을 입력합니다.

  5. Create” Click

...

Template variable를 생성하면 변수로 생성한 DropDown이 Dashboard의 위에 추가되며 Graph 검색 조건에 사용할 수 있습니다.

Template Variable Types

CloudHub는 다음과 같은 Template variable types를 지원합니다 :

Table of Contents
minLevel2
maxLevel2
exclude.*Time|interval

Databases

Database를 변수로 사용

Database meta query
Database template variables는 아래의 meta query를 사용하여 InfluxDB 인스턴스의 Database 항목을 조회합니다.
(Database 항목은 Super Admin일 경우 전체가 보여지고, 그 외의 권한들은 자신이 속한 그룹과 맵핑된 Database 항목만 보여집니다.)

Code Block
languagesql
SHOW DATABASES

cell query의 Database variable 사용 예제

Code Block
languagesql
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
languagesql
SHOW MEASUREMENTS ON database_name

cell query의 Measurement variable 사용 예제

Code Block
languagesql
SELECT * FROM "telegraf"."autogen".:measurementVar:

Measurement variable use cases
Measurement template variables를 사용하면 각 Measurement에 해당하는 Dashboard의 정보를 빠르게 변경 할 수 있습니다.

Field Keys

field key를 변수로 사용

Field key meta query
Field key template variables는 아래의 meta query를 사용하여 지정된 Database의 Measurements의 Field로 Group By 된 항목을 조회합니다.

Code Block
languagesql
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
languagesql
SHOW TAG KEYS ON database_name FROM measurement_name

cell query의 tag key variable 사용 예제

Code Block
languagesql
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
languagesql
SHOW TAG VALUES ON database_name FROM measurement_name WITH KEY tag_key

cell query의 tag value variable 사용 예제

Code Block
languagesql
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:

Code Block
languagesql
value1, value2, value3, value4
Code Block
languagesql
value1
value2
value3
value4

필드 값이 문자열 일 경우 InfluxQL에서 작은 따옴표를 사용하므로 작은 따옴표로 묶어야 합니다.

'network_router01', 'server01', 'server01-vm-cmp', 'server01-vm03', 'server02', 'server02-vm01'

cell query의 CSV value variable 사용 예제

Code Block
languagesql
SELECT "usage_system" FROM "telegraf"."autogen"."cpu" WHERE host = :csvVar:

CSV variable use cases
CSV template variables는 meta query를 사용할 수 없을 경우 사용자 정의 변수를 이용합니다.

Map

변수를 사용자 정의 형식의 key-value 목록으로 선언하여 쿼리의 일부에 사용합니다.
key-value 중 key 값은 DropDown 목록에 표시됩니다. value는 쿼리의 값에 사용됩니다.

Example CSV:

Code Block
languagesql
key1,value1
key2,value2
key3,value3
key4,value4

...

Key는 따옴표를 사용하지 않지만, value가 문자열 일 경우 작은따옴표로 묶습니다. (required by InfluxQL)

Code Block
languagesql
key1,'value1'
key2,'value2'
key3,'value3'
key4,'value4'

cell query의 Map value variable 사용 예제

Code Block
languagesql
SELECT "usage_system" FROM "telegraf"."autogen"."cpu" WHERE host = :mapVar:

Map variable use cases

CSV type과 달리 value를 특정한 이름(별칭)으로 변경하여 지정할 경우 사용됩니다.

Code Block
languagesql
host1,'network_router01'
host2,'server01'
host3,'server01-vm-cmp'
host4,'server01-vm03'
host5,'server02'
host6,'server02-vm01'

예를 들면 위와 같은 Map variable을 정의했다면 network_router01 > host1 이라는 이름으로 DropDown 에 표시됩니다.

Custom Meta Query

InfluxDB에서 특정 결과 값을 가져 오는 Custom Meta Query 변수를 생성합니다.
이처럼 생성된 변수는 저장된 데이터의 값에 따라 변경될 수 있음으로 유연한 쿼리를 사용할 수 있습니다.

아래와 같이 변수를 생성합니다.
Meta Query 항목에는 아래와 같이 입력합니다.

Code Block
languagesql
SHOW TAG VALUES ON "telegraf" FROM "cpu" WITH KEY = "host"

...

cell query의 custom meta query variable 사용 예제

Code Block
languagesql
SELECT * FROM "telegraf"."autogen"."cpu" WHERE time > :dashboardTime: AND "host" != :metaVar:

Text

입력한 문자를 변수로 사용

Text variable use cases
Text template variables를 사용하면 여러 Graph에 대해 WHERE절로 한 번에 추가 또는 변경이 가능합니다.
또한 여러 쿼리에 사용되는 정규식을 생성할 수 있습니다.
일괄 적용이 가능하므로 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를 조회하는 변수를 생성하고 그 변수에 값에 따라 다른 변수를 변경할 때 사용됩니다.

  1. Measurements Type으로 변수를 생성합니다. 변수의 이름은 :measurementVar: 이라고 지정합니다.

    Image Added
  2. Custom Meta query Type으로 변수를 추가 생성합니다. 이 변수의 이름은 :fieldKey: 으로 지정합니다.
    Meta Query 항목에는 아래와 같이 입력합니다.

    Code Block
    languagesql
    SHOW FIELD KEYS ON telegraf FROM :measurementVar:

    Custom Meta query 변수는 위에서 정의된 :measurementVar: 변숫값에 따라 KeyField가 변경됩니다.

    Image Added
  3. 이제 Dashboard에서 measurementVar:fieldKey:를 사용하는 Graph를 생성합니다.

    Code Block
    languagesql
    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
languagehtml
# 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
languagehtml
.../?&tempVars%5BmeasurementVar%5D=cpu

여러 개 template variable의 URL예

Code Block
# Spaces for clarity only
.../?  &tempVars%5BmeasurementVar%5D=cpu  &tempVars%5BfieldKey%5D=usage_system