맞춤형 대시보드의 경우 template variables 사용하여 차트 및 기타 설명을 동적으로 필터링할 수 있습니다. 템플릿 변수를 사용하면 대시보드를 더 유용하게 만들고 다양한 사용 사례에 재사용할 수 있는 대시보드를 더 쉽게 만들 수 있습니다. 변수를 사용하여 다른 변수의 값을 조건지을 수도 있습니다. 자세한 내용은 중첩 변수를 참조하세요.
템플릿 변수를 사용하는 이유는 무엇입니까?
템플릿 변수는 대시보드 작성자가 선택한 특정 메타데이터 값을 기반으로 전체 대시보드를 필터링하는 강력하고 동적인 방법입니다. 템플릿 변수 사용의 이점은 다음과 같습니다.
대시보드 사용을 더 쉽게 만들어줍니다. 사용자는 데이터 구조를 이해할 필요가 없으며, 여러분이 설정한 다양한 필터 옵션 중에서 선택하기만 하면 됩니다.
이를 통해 여러 용도로 복제하고 사용자 정의할 수 있는 재사용 가능한 대시보드 템플릿을 만들 수 있습니다.
템플릿 변수를 사용하면 다양한 변수와 필터를 설정하여 필요한 대시보드 환경을 만들 수 있습니다. 만들 수 있는 경험의 예:
앱 이름을 선택하는 드롭다운
특정 지역을 선택하는 드롭다운
특정 기간 또는 기타 숫자 값을 선택하는 드롭다운
자유 텍스트 필드를 사용하여 일치하는 문자열을 찾는 필터
더욱이 이제는 쿼리를 수정하지 않고도 변수를 포함할지 여부를 결정할 수 있습니다. 자세한 내용은 변수 포함 섹션을 참조하세요.
변수 포함 및 제외
Include variable 토글을 사용하면 원하는 값을 설정하고 대시보드에 해당 값을 포함하거나 제외할 수 있습니다. 자세한 내용은 템플릿 변수 섹션을 참조하세요.
예를 들어, 변수 내의 특정 값과 관련이 없는 문제를 조사할 수 있습니다. 이런 경우, 가능한 모든 옵션을 선택하더라도 변수의 기존 값으로 인해 쿼리 결과가 제한될 수 있습니다. 이 문제를 해결하려면 쿼리에서 변수를 제외하면 됩니다. 이렇게 하면 변수의 조건을 효과적으로 제거하고 중립적인 부울 값(참 또는 거짓)으로 바꿔서 쿼리의 유효성을 보장하고 포괄적인 결과를 반환합니다.
예시
countryCode 변수를 기준으로 결과를 필터링하는 쿼리를 생각해 보세요. 필터링 없이 모든 국가의 데이터를 보려면 변수를 제외할 수 있습니다.
기존 쿼리:
FROM PageAction
SELECTcount(*)AS'views'
WHERE countryCode IN({{countryCode}})AND appName ='Test App' FACET countryCode
변수에 허용되는 최대값(인스턴스의 경우 기본적으로 고유 항목에 대한 최대 결과는 5000개)보다 많은 값이 있거나 매우 많은 수가 있습니다. 기본적으로 변수를 비활성화하도록 선택하면 성능이 상당히 향상됩니다.
변수의 데이터 소스가 쿼리하는 데이터베이스와 다릅니다. 이런 경우에는 "모두 선택"을 사용하여 데이터베이스에서 모든 값을 선택하는 것만으로는 충분하지 않습니다. 변수를 제외하면 데이터베이스에서 모든 값을 검색할 수 있습니다.
포함 변수에 대한 제한 사항:
FACET 케이스에서 사용될 경우, 조건이 참으로 바뀌고 항상 참인 조건으로 변환됩니다.
함수나 SELECT 문 등 다른 맥락에서 사용하면 다음 오류가 발생합니다. "Unknown function Disable_variable()". 이는 비활성화 변수 기능이 아직 이러한 특정한 경우에 구현되지 않았기 때문입니다.
요구 사항 및 제한 사항
템플릿 변수는 맞춤형 대시보드를 만드는 맥락에서만 사용될 수 있습니다. 이러한 이유로 일부 쿼리 관련 기능이 작동하지 않습니다. 예를 들어, Export dashboard as PDF 옵션은 변수가 있는 위젯을 지원하지 않으며, Lens SQL 쿼리는 템플릿 변수를 지원하지 않습니다. NRQL 쿼리에서 변수를 사용하는 방법에 대해서는 NRQL 변수 부분을 참조하십시오.
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 함수를 사용할 수 있습니다.
WHERE userAgentName={{userAgentName}} FACET userAgentName
/ <img title="facet을 사용하여 위젯 만들기" alt="facet을 사용하여 위젯 만들기" src="/images/dashboards_screenshot-crop_add-위젯-facet.webp" /> /
identifier 출력 형식으로 변수를 만들고 FACET 절 뒤에 사용하여 다른 값으로 그룹화할 수 있습니다.
예를 들어, {{location}} 변수를 만들 수 있습니다.
쿼리에 사용할 이름: location
유형:List
쉼표로 구분된 값:countryCode 및 city
출력 형식:Identifier
/ <img width="40%;" title="동적 그룹화를 위한 변수 추가" alt="동적 그룹화를 위한 변수 추가" src="/images/dashboards_screenshot-crop_add-var-dynamic-grouping.webp" /> /
그런 다음 다음 쿼리를 사용하여 위젯을 만듭니다.
SELECTcount(*)FROM PageAction FACET {{location}}
/ <img title="동적 그룹화를 위한 위젯 추가" alt="동적 그룹화를 위한 위젯 추가" src="/images/dashboards_screenshot-crop_add-위젯-dynamic-grouping.webp" /> /
출력 형식이 number 인 변수를 만들고 백분위수 함수 내에서 사용할 수 있습니다.
예를 들어, {{percentile}} 변수를 만들 수 있습니다.
쿼리에 사용할 이름: percentile
유형:List
쉼표로 구분된 값:55 및 90
출력 형식:Number
/ <img width="40%;" title="백분위수를 동적으로 변경하기 위한 변수 추가" alt="백분위수를 동적으로 변경하기 위한 변수 추가" src="/images/dashboards_screenshot-crop_add-var-dynamic-백분위수.webp" /> /
/ <img title="백분위수를 동적으로 변경하기 위한 개념 추가" alt="백분위수를 동적으로 변경하기 위한 개념 추가" src="/images/dashboards_screenshot-crop_add-위젯-dynamic-백분위수.webp" /> /
필터링에 변수를 사용하려면 다음과 같이 WHERE 절의 오른쪽에 생성된 변수를 추가하기만 하면 됩니다.
SELECT countryCode, city FROM PageAction
WHERE countryCode IN({{countryCode}})
/ <img title="변수를 사용하여 필터링" alt="변수를 사용하여 필터링" 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 절이 있는 경우 최신 값이 쿼리를 실행하는 데 사용됩니다.
/ <img title="예시 양식" alt="변수 양식을 보여주는 스크린샷" src="/images/dashboards_screenshot-crop_example-form.webp" /> /
때로는 다양한 유형의 데이터에 동일한 규칙을 적용하는 쿼리가 있습니다. 다음은 데이터 유형을 제외하고 동일한 두 위젯의 예입니다.
위젯 1:
SELECTcount(*)FROM DataType1 SINCE 1day ago
위젯 2:
SELECTcount(*)FROM DataType2 SINCE 1day ago
두 가지 별도의 단어를 만드는 대신, Identifier [출력 형식] 에 대한 Output format [제외] 가 있는 변수로 하나의 단어를 만들 수 있습니다. 그런 다음 FROM 절에서 이를 사용하여 다양한 데이터 유형을 쿼리할 수 있습니다.
예를 들어, DataType1 및 DataType2 라는 두 가지 가능한 값을 사용하여 List [목록] 유형의 {{dataType}} 변수를 생성할 수 있습니다. Output Format [출력 형식을] Identifier [식별자] 로 설정합니다.
그런 다음 위젯을 만들고 실행합니다.
대시보드 JSON 관리 기능을 사용하면 목록 기반 변수의 값에 대한 사용자 지정 제목이나 레이블을 정의할 수 있습니다. 이를 통해 변수의 드롭다운 메뉴에 나타나는 내용을 변경할 수 있습니다.
예를 들어, 다음과 같은 변수가 있다고 가정해 보겠습니다.
{
"name": "list_string",
"items": [
{
"title": null,
"value": "1"
},
{
"title": null,
"value": "2"
},
{
"title": null,
"value": "3"
}
],
"defaultValues": [],
"nrqlQuery": null,
"options": {
"excluded": false
},
"title": "List of string",
"type": "ENUM",
"isMultiSelection": false,
"replacementStrategy": "STRING"
}
JSON을 열고 title 필드에 값을 추가하는 경우:
{
"name": "list_string",
"items": [
{
"title": "Title One",
"value": "1"
},
{
"title": "Title Two",
"value": "2"
},
{
"title": "Title Three",
"value": "3"
}
],
"defaultValues": [],
"nrqlQuery": null,
"options": {
"excluded": false
},
"title": "List of string",
"type": "ENUM",
"isMultiSelection": false,
"replacementStrategy": "STRING"
}
추가하신 제목들이 변수의 드롭다운 메뉴에 표시됩니다. 이는 변수나 위젯의 로직에 전혀 영향을 미치지 않습니다.
위젯 제목에 템플릿 변수를 사용하면 변수 값이 변경될 때 자동으로 업데이트되는 동적 제목을 만들 수 있습니다. 이는 표시되는 데이터에 대한 맥락을 제공하는 데 유용합니다.
답변을 편집할 때 UI 통하거나 대시보드 JSON을 사용하여 답변 제목에 변수를 추가할 수 있습니다.
예를 들어, "알림", "APM", "대시보드", "카탈로그"와 같은 값을 가진 {{products}} 이라는 변수가 있다면, Page views per nerdlet: {{products}} 과 같이 동적 제목을 가진 위젯을 만들 수 있습니다.
변수 드롭다운 메뉴에서 "알림"을 선택하면 제목이 자동으로 업데이트되어 선택한 값을 표시합니다. "알림", "APM", "대시보드"를 모두 선택하면 제목이 선택된 모든 값을 표시하도록 업데이트됩니다.
이 기능은 모든 템플릿 변수 유형(쿼리, 목록 또는 텍스트 필드)에서 작동하며 사용자가 변수 필터를 확인하지 않고도 보고 있는 데이터가 무엇인지 이해하는 데 도움이 됩니다.
마크다운 위젯에서 템플릿 변수를 사용하면 변수 선택에 따라 업데이트되는 동적 텍스트 콘텐츠, 문서 또는 다이어그램을 만들 수 있습니다. 이 기능은 특히 맥락에 맞는 메모나 머메이드 다이어그램과 같은 시각화 자료를 만드는 데 매우 유용합니다.
예를 들어, "알림", "APM", "대시보드", "카탈로그"와 같은 값을 가진 변수 {{products}} 이 있다면, 마크다운 콘텐츠에서 다양한 방식으로 이를 사용할 수 있습니다.
예시 1: 동적 텍스트 콘텐츠
변수({{products}})를 마크다운 텍스트에 직접 포함시키면 선택 항목에 따라 업데이트되는 동적 문서를 만들 수 있습니다.
예시 2: 동적 머메이드 다이어그램
Mermaid 다이어그램의 마크다운 텍스트 내에서 변수({{products}})를 사용하여 동적으로 업데이트되는 순서도를 만들 수도 있습니다.
이 예시에서 다이어그램은 {{products}} 변수가 어떤 데이터를 유지하고 어떤 데이터를 버릴지 결정하는 의사 결정 흐름을 보여줍니다. 변수 선택을 변경하면 다이어그램이 업데이트되어 선택된 제품을 반영합니다.
메모
마크다운 위젯을 편집할 때 미리보기 모드에는 변수 이름(예: {{products}})이 표시되고 실제 값은 표시되지 않습니다. 하지만 대시보드를 저장하고 보면 변수들은 실제 값으로 대체됩니다.