맞춤형 대시보드의 경우 template variables 사용하여 차트 및 기타 설명을 동적으로 필터링할 수 있습니다. 템플릿 변수를 사용하면 대시보드를 더 유용하게 만들고 다양한 사용 사례에 재사용할 수 있는 대시보드를 더 쉽게 만들 수 있습니다. 변수를 사용하여 다른 변수의 값을 조건지을 수도 있습니다. 자세한 내용은 중첩 변수를 참조하세요.
템플릿 변수를 사용하는 이유는 무엇입니까?
템플릿 변수는 대시보드 작성자가 선택한 특정 메타데이터 값을 기반으로 전체 대시보드를 필터링하는 강력하고 동적인 방법입니다. 템플릿 변수 사용의 이점은 다음과 같습니다.
대시보드 사용을 더 쉽게 만들어줍니다. 사용자는 데이터 구조를 이해할 필요가 없으며, 여러분이 설정한 다양한 필터 옵션 중에서 선택하기만 하면 됩니다.
이를 통해 여러 용도로 복제하고 사용자 정의할 수 있는 재사용 가능한 대시보드 템플릿을 만들 수 있습니다.
템플릿 변수를 사용하면 다양한 변수와 필터를 설정하여 필요한 대시보드 환경을 만들 수 있습니다. 만들 수 있는 경험의 예:
앱 이름을 선택하는 드롭다운
특정 지역을 선택하는 드롭다운
특정 기간 또는 기타 숫자 값을 선택하는 드롭다운
자유 텍스트 필드를 사용하여 일치하는 문자열을 찾는 필터
더욱이 이제는 쿼리를 수정하지 않고도 변수를 포함할지 여부를 결정할 수 있습니다. 자세한 내용은 변수 포함 섹션을 참조하세요.
변수 포함 및 제외
Include variable 토글을 사용하면 원하는 값을 설정하고 대시보드에 해당 값을 포함하거나 제외할 수 있습니다. 자세한 내용은 템플릿 변수 섹션을 참조하세요.
예를 들어, 변수 내의 특정 값과 관련이 없는 문제를 조사할 수 있습니다. 이런 경우, 가능한 모든 옵션을 선택하더라도 변수의 기존 값으로 인해 쿼리 결과가 제한될 수 있습니다. 이 문제를 해결하려면 쿼리에서 변수를 제외하면 됩니다. 이렇게 하면 변수의 조건을 효과적으로 제거하고 중립적인 부울 값(참 또는 거짓)으로 바꿔서 쿼리의 유효성을 보장하고 포괄적인 결과를 반환합니다.
예시
countryCode 변수를 기준으로 결과를 필터링하는 쿼리를 생각해 보세요. 필터링 없이 모든 국가의 데이터를 보려면 변수를 제외할 수 있습니다.
기존 쿼리:
FROM PageAction
SELECTcount(*)AS'views'
WHERE countryCode IN({{countryCode}})AND appName ='Test App' FACET countryCode
Include variable [변수 포함] 토글은 대시보드에서 해당 변수에 대한 기본 설정(포함 또는 제외)을 결정합니다. 이 설정은 대시보드를 보는 사용자가 변수 드롭다운 메뉴 메뉴의 Include variable [변수 포함] 토글을 사용하여 수정할 수 있습니다. 선택한 사용자 설정은 세션 기간 동안 유효합니다.
중요
토글이 변수를 포함하도록 설정된 경우에만 기본값을 구성할 수 있습니다. 기본값을 선택하면 토글을 전환하여 변수가 기본적으로 포함되지 않도록 할 수 있습니다. 사용자가 변수 드롭다운 메뉴에서 변수를 포함하도록 토글을 돌리면 기본값이 미리 선택됩니다.
출력 형식
이를 통해 변수에 의해 생성된 데이터가 쿼리에서 처리되는 방식을 변경할 수 있습니다. 여기에서 선택한 옵션은 나중에 위젯에 추가할 쿼리와 관련이 있습니다. default 옵션은 대부분의 쿼리에 사용되는 더 일반적인 옵션이므로 문자열입니다. default 옵션을 다음 중 하나로 변경할 수 있습니다.
String: 숫자가 아닌 텍스트 값에 사용합니다.
Number: 숫자 값에 사용합니다.
Identifier: 이벤트 이름이나 패싯 이름과 같은 쿼리의 일부를 대체하려는 경우에 사용합니다.
country 값에 대한 템플릿 변수의 모양에 대한 다음 예를 참조하세요.
템플릿 변수를 정의하고 나면 생성된 템플릿 변수를 사용하는 위젯을 추가할 수 있습니다.
템플릿 변수를 사용하는 위젯을 만듭니다.
템플릿 변수를 구성한 후에는 쿼리에서 정의한 변수를 사용하는 대시보드에 위젯이 필요합니다.
텍스트, 이미지 또는 링크를 추가합니다. Markdown 편집기를 사용하여 자신의 콘텐츠를 추가하는 위젯을 만듭니다.
Add a chart 옵션을 선택합니다.
쿼리를 추가하고 Run 클릭합니다.
1단계에서 언급한 예를 따르면 다음과 같습니다.
SELECT countryCode
FROM PageAction
WHERE countryCode IN({{countryCode}})
이는 템플릿 변수를 값으로 허용하는 NRQL 절입니다: SELECT, FROM, FACET, ORDER BY 및 WHERE.
대신, 다음 NRQL 절 목록은 템플릿 변수를 인수로 허용하지 않습니다: AS, COMPARE WITH, LIMIT, OFFSET, SINCE, SLIDE BY, TIMESERIES, UNTIL 및 WITH....
딸깍 하는 소리 Add to dashboard
템플릿 변수 정의 및 해당 변수를 참조하는 위젯 추가를 완료하면 템플릿 변수 막대에서 다른 옵션을 선택하고 선택한 항목에 따라 위젯이 변경되는지 확인하여 예상대로 작동하는지 확인할 수 있습니다.
오른쪽은 결과 위젯의 예이고, 왼쪽에는 country 드롭다운 메뉴가 있습니다.
쿼리 유형 템플릿 변수 작성 규칙
템플릿 변수 정의 섹션 에서 설명한 대로 변수 유형에는 쿼리, 목록, 텍스트 필드의 세 가지가 있습니다. 쿼리 유형 변수는 값 목록을 반환하는 작업 쿼리를 생성해야 하기 때문에 생성하기가 가장 복잡합니다. 이 값은 대시보드 상단의 템플릿 변수 표시줄에 있는 드롭다운 메뉴를 채우는 데 사용됩니다.
중요
이것은 템플릿 변수를 사용하는 쿼리 작성과는 다른 주제입니다.
값 목록을 반환하는 한 거의 모든 NRQL 쿼리를 사용할 수 있습니다. 이를 위해 uniques 또는 keyset 함수를 사용할 수 있습니다.
-- with `keyset`, you'll get a list with all of the attributes from the table you're querying from
FROM PageAction SELECT keyset() SINCE 1day ago
변수 내에 변수가 있을 수 없으므로 중첩 변수는 지원되지 않습니다.
몇 가지 예
다음은 몇 가지 다른 유형의 템플릿 변수 구현입니다.
You can enable the multi-value option to allow users to select multiple values from a dropdown instead of just one. This is useful when you want to filter data across multiple criteria simultaneously.
Multi-value is available for Query and List variable types. Text field variables don't support the multi-value option.
To enable multi-value:
When creating a Query or List template variable, select the Multi-value option.
In your widget queries, use the IN operator instead of = to handle multiple selected values.
/ You can enable the multi-value option from the display options section when creating a variable of type NRQL/ENUM. /
Here's an example where you'd name your variable {{MultiValue}} and use this query to populate its values:
SELECTcount(*)FROM AjaxRequest WHERE eventId IN({{MultiValue}})
/ <img width="80%;" title="Creating a widget" alt="Creating a widget" src="/images/dashboards_screenshot-full_multivalue-add-widget.webp" /> /
While you can only define one template variable at a time, you can reference multiple variables within the same widget.
For this example, you need to have the two variables set up:
countryCode variable: Use the query shown earlier in this document:
SELECT uniques(countryCode)FROM PageAction SINCE 2 days ago
city variable with a similar query:
SELECT uniques(city)FROM PageView SINCE 1 week ago
Here's an example using the above template variables with single values to create the widget:
SELECT countryCode, city FROM PageAction
WHERE countryCode = {{countryCode}} AND city = {{city}}
/ <img title="Creating a widget using multiple variables" alt="Creating a widget using multiple variables" src="/images/dashboards_screenshot-crop_add-widget-multiple-variable.webp" /> /
If your variables support multiple values (such as Chicago, New York, Paris for your city variable), you need to use IN:
SELECT countryCode, city FROM PageAction
WHERE countryCode IN({{countryCode}})AND city IN({{city}})
변수와 regex를 사용하여 필터의 일부가 고정된 것이 확실한 경우 필터를 만들 수 있습니다.
LIKE사용하려면 이 부분 일치를 사용해야 합니다.
릴리스 버전별로 필터링한다고 가정해 보겠습니다. 쿼리는 다음과 같은 것을 반환합니다. release-1234 .
/ <img width="40%;" title="Creating the release version variable" alt="Creating the release version variable" src="/images/dashboards_screenshot-crop_add-var-release-version.webp" /> /
그런 다음 다음 쿼리를 사용하여 위젯을 만듭니다.
SELECTcount(*)FROM PageAction
WHERE aparse(platformVersion,'release-*')IN({{releaseversion}}) FACET platformVersion
/ <img title="Creating the widget" alt="Creating the widget" src="/images/dashboards_screenshot-crop_add-widget-aparse.webp" /> /
WHERE capture(platformVersion, r'release-(?P<platformVersion>\d+)')IN({{releaseversion}}) FACET platformVersion
/ <img title="Creating the widget" alt="Creating the widget" src="/images/dashboards_screenshot-crop_add-widget-capture.webp" /> /
LIKE 및 RLIKE 템플릿 변수로 사용하여 대시보드에서 데이터를 필터링할 수 있습니다. 이 기능을 사용하려면 템플릿 변수를 생성할 때 추가하는 값은 값의 시작과 끝에 % 와일드카드 기호를 사용해야 합니다.
Here's an example. You define a string template variable with the following values:
Name to use in queries: line_filter
유형:Text field
Default value: %@%.com
Output format:String
/ <img width="40%;" title="Add LIKE as template variable" alt="Add LIKE as template variable" src="/images/dashboards_screenshot-crop_add-var-like-filter.webp" /> /
그런 다음 위젯 차트를 만들고 다음과 같이 변수를 사용할 수 있습니다.
FROM NrdbQuery SELECTuserWHEREuserLIKE {{like_filter}}
/ <img title="Add LIKE as template variable" alt="Add LIKE as template variable" src="/images/dashboards_screenshot-crop_add-widget-like-filter.webp" /> /
또는 다음과 같이:
FROM NrdbQuery SELECTuserWHEREuserRLIKE {{like_filter}}
문자열 출력 형식으로 NRQL 유형의 변수를 생성하고 FACET 절 뒤에 사용하여 다른 값으로 그룹화할 수 있습니다.
For example, you might create a template variable named {{userAgentName}} that would look like:
SELECT uniques(userAgentName)FROM PageAction
/ <img width="30%;" title="Creating the variable" alt="Creating the variable" src="/images/dashboards_screenshot-crop_add-var-facet.webp" /> /
그런 다음 다음 쿼리를 사용하여 위젯을 만듭니다.
SELECTcount(*)FROM PageAction
WHERE userAgentName={{userAgentName}} FACET userAgentName
/ <img title="Creating widget using facet" alt="Creating widget using facet" src="/images/dashboards_screenshot-crop_add-widget-facet.webp" /> /
identifier 출력 형식으로 변수를 만들고 FACET 절 뒤에 사용하여 다른 값으로 그룹화할 수 있습니다.
For example, you might create a {{location}} variable:
Name to use in queries: location
유형:List
Values separated by commas:countryCode and city
Output format:Identifier
/ <img width="40%;" title="Adding the variable for dynamic grouping" alt="Adding the variable for dynamic grouping" src="/images/dashboards_screenshot-crop_add-var-dynamic-grouping.webp" /> /
그런 다음 다음 쿼리를 사용하여 위젯을 만듭니다.
SELECTcount(*)FROM PageAction FACET {{location}}
/ <img title="Adding the widget for dynamic grouping" alt="Adding the widget for dynamic grouping" src="/images/dashboards_screenshot-crop_add-widget-dynamic-grouping.webp" /> /
출력 형식이 number 인 변수를 만들고 백분위수 함수 내에서 사용할 수 있습니다.
For example, you could create a {{percentile}} variable:
Name to use in queries: percentile
유형:List
Values separated by commas:55 and 90
Output format:Number
/ <img width="40%;" title="Adding the variable for dynamically change the percentile" alt="Adding the variable for dynamically change the percentile" src="/images/dashboards_screenshot-crop_add-var-dynamic-percentile.webp" /> /
/ <img title="Adding the widget for dynamically change the percentile" alt="Adding the widget for dynamically change the percentile" src="/images/dashboards_screenshot-crop_add-widget-dynamic-percentile.webp" /> /
필터링에 변수를 사용하려면 다음과 같이 WHERE 절의 오른쪽에 생성된 변수를 추가하기만 하면 됩니다.
SELECT countryCode, city FROM PageAction
WHERE countryCode IN({{countryCode}})
/ <img title="Use variables to filter" alt="Use variables to filter" src="/images/dashboards_screenshot-crop_variables-to-filter.webp" /> /
기본적으로 "타임 피커 무시" 옵션이 활성화되어 있어 대시보드의 타임 1 hour 에 다른 값이 선택된 경우에도(예: 5 minutes, 3 hours, 등). 이 경우의 예외는 쿼리에 SINCE 절로 설정된 명시적 시간 범위가 있는 경우입니다. 예를 들어 다음과 같습니다.
SELECT uniques(eventId)
FROM AjaxRequest
SINCE 5 minutes ago
결과는 지난 5분 동안의 범위에 있습니다.
"타임 피커 무시" 옵션이 꺼지면 쿼리는 타임 피커에서 선택한 값으로 실행됩니다. 예를 들어, 아래 스크린샷과 같이 '라벨 피커'를 30분으로 설정하면, 변수 편집 폼에서 '라벨 피커 무시' 필드가 꺼짐으로 설정됩니다.
그러면 지난 30분 동안의 값이 나옵니다. 타임 피커 값을 Default 으로 설정하고 쿼리에 SINCE 절이 있는 경우 최신 값이 쿼리를 실행하는 데 사용됩니다.