TestData 템플릿 변수
TestData 템플릿 변수 (TestData template variables)
TestData 데이터 소스와 템플릿 변수를 사용해 동적이고 재사용 가능한 대시보드를 테스트할 수 있어요. TestData는 계층적 메트릭 트리를 제공하며, 이 트리를 쿼리해 시뮬레이션 값으로 변수 드롭다운을 채울 수 있어요. 동적 대시보드를 만들기 전에 변수 동작을 연습하기 좋습니다.
출처: 문서
본문
템플릿 소개는 Templating과 변수 추가·관리 문서를 참고하세요.
지원되는 변수 유형
| 변수 유형 | 지원 |
|---|---|
| Query | 예 |
| Custom | 예 |
| Data source | 예 |
쿼리 변수 만들기
- 대시보드에서 Edit 클릭 → Add new element → Variable 클릭
- 변수 유형 Query 선택, Name 입력, Display 위치 선택
- Open variable editor → Query Variable 대화상자에서 TestData 데이터 소스 선택
- Query 필드에 쿼리 입력
메트릭 트리 쿼리
TestData는 문자 조합으로 이름을 붙인 노드의 계층적 메트릭 트리를 생성해요. 트리는 깊이 6단계, 각 단계에 A부터 H까지 8개 노드가 있습니다. 쿼리 문자열은 점으로 구분된 경로 세그먼트로 이 트리를 탐색해요.
쿼리 문법
*를 와일드카드로 사용해 해당 단계의 모든 자식을 반환하세요.
| 쿼리 | 결과 |
|---|---|
* |
최상위 노드: A, B, C, D, E, F, G, H |
A.* |
노드 A의 자식: AA, AB, AC, AD, AE, AF, AG, AH |
A.AA.* |
노드 AA의 자식: AAA, AAB, AAC 등 |
A.AB |
AB 노드의 자식: ABA, ABB, ABC 등 |
중괄호 glob 패턴으로 여러 노드를 매칭하세요.
| 쿼리 | 결과 |
|---|---|
{A,B}.* |
A와 B의 자식: AA, AB, …, BA, BB 등 |
A.{AA,AB}.* |
AA와 AB의 자식: AAA, AAB, …, ABA, ABB 등 |
접두사 뒤의 *로 주어진 문자열로 시작하는 노드를 매칭하세요. 예: A* → A로 시작하는 최상위 노드(최상위에선 A만).
값 쿼리
쿼리 문자열이 value로 시작하면 TestData는 쿼리 문자열 자체를 결과로 반환해요. 테스트용 특정 값 변수를 만들 때 유용합니다. 예: value_production 쿼리는 value_production을 반환.
예시: region 변수 만들기
- Edit → Add new element → Variable → 유형 Query
- Name 입력(예:
host) → 변수 편집기에서 TestData 선택 - Query 필드에
*입력 → 최상위 노드(A~H)로 변수 채움 - 변수 이름을
region으로 지정 - (선택) Multi-value, Include All value, Allow custom values 구성
- Save → Exit edit
패널에서 사용하기:
- 새 패널 추가, TestData 데이터 소스 선택
- Random Walk 시나리오 선택
- Labels 필드에
region=$region입력 - region 드롭다운에서 다른 값을 선택하면 패널이 갱신돼요.
예시: 캐스케이딩 드롭다운으로 변수 연결
다른 변수의 쿼리를 참조하는 의존 변수를 만들 수 있어요.
region변수(쿼리*) 생성 → 최상위 노드 반환host변수(쿼리$region.*) 생성 → region으로A선택 시 host 드롭다운에AA,AB,AC등이 채워짐
region 선택을 바꾸면 host 드롭다운이 자동으로 갱신됩니다.
쿼리에서 변수 사용하기
TestData는 다음 쿼리 필드에서 템플릿 변수를 보간(interpolate)해요.
- Labels
- Alias
- Scenario
- String Input
- CSV Content
- Raw Frame Content
이 필드들에 표준 문법($varname 또는 ${varname})을 쓰면 변수 값이 삽입됩니다. 예: env 변수가 production일 때 Labels에 env=$env를 입력하면 env=production 라벨의 시리즈가 만들어져요.
제한 사항
TestData는 필터(filter)를 지원하지 않아요. 필터는 데이터 소스가 태그 키·값 조회를 구현해야 하는데 TestData는 제공하지 않기 때문입니다.