TestData 쿼리 편집기
TestData 쿼리 편집기 (TestData query editor)
TestData 데이터 소스는 전통적인 쿼리 언어 대신 시나리오(scenarios) 로 시뮬레이션 데이터를 생성해요. 각 시나리오는 특정 시각화·동작·엣지 케이스 테스트에 적합한 다른 유형의 데이터를 만듭니다. TestData는 시계열, 로그, 트레이스, 그래프, 스트리밍, 오류 시뮬레이션을 다루는 30개 시나리오를 포함합니다.
출처: 문서
본문
TestData 데이터 소스는 시나리오(scenarios) 로 시뮬레이션 데이터를 생성합니다. 시나리오를 사용해:
- 실제 데이터 소스 연결 없이 대시보드 프로토타입 제작
- 다른 개발자가 재현할 수 있는 제어된·결정적 데이터로 버그 재현
- 빈 결과, 가시 범위 밖 타임스탬프, 데이터·오류 혼합 같은 엣지 케이스로 패널 동작 테스트
- 알려진 일정에 발화·해결되는 예측 가능한 패턴으로 알림 파이프라인 검증
- 실시간 데이터 업데이트 처리 확인을 위한 스트리밍 시뮬레이션
쿼리를 만들려면 Scenario 드롭다운에서 시나리오를 선택합니다. 쿼리 편집기가 해당 시나리오 특정 필드로 업데이트됩니다. Run queries 클릭 또는 키보드 단축키로 실행.
참고: 일부 시나리오(Streaming Client, Grafana Live, Grafana API, Steps, No Data Points)는 전적으로 브라우저에서 실행됩니다. 이 시나리오들은 백엔드로 쿼리를 보내지 않으므로, Grafana Alerting이나 서버 측 평가가 필요한 어떤 컨텍스트에서도 사용할 수 없어요.
시나리오 참조 (Scenario reference)
| 시나리오 | 카테고리 | 용도 |
|---|---|---|
| Random Walk | 데이터 생성 | 무작위 보행 시계열 (기본 시나리오) |
| Random Walk Table | 데이터 생성 | Enum 상태가 있는 테이블 형식 무작위 보행 |
| Random Walk (with error) | 데이터 생성 | 오류도 반환하는 무작위 보행 |
| Predictable Pulse | 데이터 생성 | 절대 시간 기반 반복 on/off 파 |
| Predictable CSV Wave | 데이터 생성 | CSV 값의 커스텀 반복 파형 |
| Simulation | 데이터 생성 | 연속 시뮬레이션 엔진(flight, sine, tank) |
| USA generated data | 데이터 생성 | US 주 차원의 다차원 데이터 |
| CSV Content | 수동 입력 | CSV 데이터 직접 붙여넣기·입력 |
| Steps | 수동 입력 | CSV 입력의 계단 함수 데이터 |
| CSV File | 수동 입력 | 내장 CSV 데이터 파일에서 선택 |
| CSV Metric Values | 수동 입력 | 쉼표 구분 값의 시계열 |
| Raw Frames | 수동 입력 | JSON 형식의 데이터 프레임 정의 |
| Load Apache Arrow Data | 수동 입력 | base64 인코딩 Arrow 페이로드 렌더링 |
| Table Static | 수동 입력 | 사전 정의된 열의 정적 테이블 |
| Logs | 시각화 테스트 | 무작위 레벨의 시뮬레이션 로그 데이터 |
| Node Graph | 시각화 테스트 | node graph 시각화용 데이터 |
| Flame Graph | 시각화 테스트 | flame graph 시각화용 데이터 |
| Trace | 시각화 테스트 | 시뮬레이션 분산 트레이스 데이터 |
| Annotations | 시각화 테스트 | 주석 데이터 포인트 |
| Exponential heatmap bucket data | 시각화 테스트 | 지수 버킷의 히트맵 데이터 |
| Linear heatmap bucket data | 시각화 테스트 | 선형 버킷의 히트맵 데이터 |
| Streaming Client | 스트리밍 | 브라우저 측 스트리밍(signal, logs, traces) |
| Grafana Live | 스트리밍 | live 채널을 통한 서버 측 스트리밍 |
| Grafana API | 데이터 검색 | 내부 Grafana 엔드포인트에서 데이터 가져오기 |
| Conditional Error | 오류 테스트 | 구성 가능한 오류 또는 CSV 데이터 |
| Error with source | 오류 테스트 | 플러그인 또는 다운스트림 분류와 함께 오류 |
| No Data Points | 오류 테스트 | 데이터 없는 빈 결과 |
| Data Points Outside Range | 오류 테스트 | 가시 시간 범위 밖의 데이터 포인트 |
| Slow Query | 오류 테스트 | 데이터 반환 전 구성 가능한 지연 |
| Query Metadata | 메타데이터 | 쿼리 컨텍스트 메타데이터 반환 |
공유 쿼리 옵션 (Shared query options)
모든 시나리오는 Scenario 드롭다운을 표시합니다. 대부분 시나리오는 Alias 필드와(시나리오가 기본값을 정의할 때) String Input 필드도 보여줍니다.
| 필드 | 설명 |
|---|---|
| Scenario | 데이터 생성 유형 선택 드롭다운. 알파벳순 나열 |
| Alias | 시리즈의 선택적 표시 이름. Simulation·Annotations 시나리오에서는 숨겨짐. __server_names, __house_locations 특수 값 지원(내장 이름 세트) |
| String Input | 선택한 시나리오가 기본 문자열 값을 제공할 때 표시되는 텍스트 필드. 시나리오마다 다르게 사용 |
| Labels | Random Walk·Predictable Pulse에서 사용 가능. key="value", key2="value2" 같은 key=value 구문으로 라벨 설정. 값에 $seriesIndex 사용 시 시리즈 인덱스 삽입 |
| Drop percent | CSV Content·CSV File에서 사용 가능. 결과에서 랜덤 백분율(0-100)의 데이터 포인트 제거 |
데이터 생성 시나리오 (Data generation scenarios)
Random Walk: 무작위 보행 시계열 생성(기본). 필드: Series count(기본 1), Start value(기본 auto/random), Min(기본 none), Max(기본 none), Spread(기본 1), Noise(기본 0), Drop %(기본 0).
Random Walk Table: Time, Value, Min, Max, Info, State 열이 있는 테이블 형식 무작위 보행. State 열은 Unknown·Up·Down 값의 enum 필드 사용. withNil 활성화 시 선택적으로 null 값 포함.
Random Walk (with error): 응답에 오류도 반환하는 무작위 보행. 데이터·오류를 모두 포함한 응답을 패널이 어떻게 처리하는지 테스트.
Predictable Pulse: epoch의 절대 시간 기반 예측 가능한 펄스 파. 실행 간 재현 가능. 필드: Step(기본 60, 데이터 포인트 간 초), On Count(기본 3), Off Count(기본 3), On Value(기본 2, 숫자·null·nan), Off Value(기본 1). 파는 Step * (On Count + Off Count) 초로 주기. 기본값으로 6분마다 전체 주기 완료.
Predictable CSV Wave: CSV 정의 값에서 하나 이상의 예측 가능한 파 생성. 필드: Values(기본 0,0,2,2,1,1, null·nan 지원), Step(기본 60), Name(선택), Labels(선택). 마지막 파 행의 + 버튼으로 파 추가, 다른 행의 - 버튼으로 제거.
Simulation: 데이터를 지속 생성하는 시뮬레이션 엔진. Grafana Live를 통한 스트리밍 지원. 필드: Simulation(유형: Flight·Sine·Tank), Stream(토글), Interval(기본 10Hz), Last(최근 값만 반환 토글), UID(선택, 동시 실행 가능).
USA generated data: US 주 차원의 데이터 생성. geo-map 시각화·다차원 데이터 테스트에 유용. 필드: Mode(values-as-rows, values-as-fields, values-as-labeled-fields, timeseries, timeseries-wide), Period(기본 30m), Fields(foo·bar·baz, 기본 전부), States(기본 50주 + DC).
수동 입력 시나리오 (Manual input scenarios)
CSV Content: CSV 데이터를 붙여넣는 텍스트 편집기. 첫 행은 헤더로 처리. Drop percent 필드로 데이터 포인트 랜덤 제외. 예:
Time,Temperature,Humidity
2024-01-01 00:00:00,22.5,45
2024-01-01 01:00:00,21.8,48
2024-01-01 02:00:00,20.1,52
Steps: 계단 함수 데이터용 CSV 텍스트 영역(CSV Content와 동일 편집기). 기본 내용 a, b, c. 전적으로 브라우저에서 처리.
CSV File: 내장 CSV 데이터 파일 세트에서 선택(flight_info_by_state.csv, population_by_state.csv, gdp_per_capita.csv, js_libraries.csv, ohlc_dogecoin.csv, weight_height.csv, browser_marketshare.csv, automobiles.csv). Drop percent 지원.
CSV Metric Values: String Input 필드에 입력한 쉼표 구분 값에서 시계열 생성. 값은 선택 시간 범위에 균등 분포. 기본 1,20,90,30,5,0.
Raw Frames: 데이터 프레임을 직접 정의하는 JSON 편집기. Grafana 데이터 프레임 JSON 형식을 받으며 패널 JSON·원시 쿼리 결과용 붙여넣기 헬퍼 포함.
Load Apache Arrow Data: String Input 텍스트 영역에 입력한 base64 인코딩 Apache Arrow 페이로드에서 데이터 로드. Arrow 형식 렌더링 테스트.
Table Static: Time, Message, Description, Value 열이 있는 정적 테이블 생성.
시각화 테스트 시나리오 (Visualization test scenarios)
Logs: 무작위 로그 레벨, 컨테이너 ID, 호스트명의 시뮬레이션 로그 데이터. 필드: Lines(기본 10, 최대 10000), Level(메시지에 임베드하는 대신 별도 level 열 포함 토글).
Node Graph: Node Graph 시각화용 데이터. 필드: Data type(random, response_small, response_medium, random edges, feature_showcase), Count(random·random edges용), Seed(random·random edges용, 재현 가능한 난수).
Flame Graph: Flame Graph 시각화용 데이터. 필드: Diff profile(두 프로파일 비교·차분 플레임 그래프 토글).
Trace: 시뮬레이션 분산 트레이스 데이터. 필드: Span count(생성 트레이스의 스팬 수).
Annotations: 합성 주석 데이터 포인트. 전적으로 브라우저에서 생성되며 패널이 주석 마커·오버레이를 표시하는 방법 테스트. 외부 소스를 쿼리하거나 데이터를 지속하지 않아요. 필드: Count(기본 10).
Exponential heatmap bucket data: 지수 분포 버킷 경계(1, 2, 4, 8, 16, …)의 히트맵 데이터. Linear heatmap bucket data: 선형 분포 버킷 경계(0, 10, 20, 30, …).
스트리밍 시나리오 (Streaming scenarios)
Streaming Client: 브라우저 클라이언트에서 직접 스트리밍 데이터 생성. 필드: Type(Signal·Logs·Fetch·Traces·Watch). 추가 필드는 유형에 따라 다름: Signal은 Speed(ms)·Spread·Noise·Bands, Logs·Traces·Watch는 Speed(ms)만, Fetch는 점진적 스트리밍할 원격 CSV 엔드포인트 URL.
Grafana Live: 서버에서 무작위 데이터를 스트리밍하는 Grafana Live 채널에 연결. 필드: Channel — random-2s-stream(2초마다 포인트), random-flakey-stream(무작위 간격), random-labeled-stream(이동 라벨 값), random-20Hz-stream(20Hz 포인트).
데이터 검색 시나리오 (Data retrieval scenarios)
Grafana API: 내부 Grafana API 엔드포인트에서 데이터를 가져와 데이터 프레임으로 반환. 브라우저에서 실행. 필드: Endpoint — Data Sources(구성된 데이터 소스 나열), Search(대시보드 검색 결과), Annotations(주석 반환).
오류·엣지 케이스 테스트 시나리오
Conditional Error: String Input과 Error type 필드에 따라 오류 또는 데이터 생성. String Input이 비어 있으면 선택한 오류 유형 트리거. CSV 값(기본 1,20,90,30,5,0)이 있으면 오류 유형과 무관하게 CSV Metric Values처럼 시계열 반환. 필드: Error type — Server panic(백엔드 패닉), Frontend exception(브라우저의 잡히지 않은 오류), Frontend observable(쿼리 observable을 통한 오류). 오류 트리거 시 String Input을 비우고 테스트할 유형 선택.
Error with source: 구성 가능한 소스 분류와 함께 오류 반환. 필드: Error source — Plugin(플러그인 오류), Downstream(다운스트림 서비스 오류). 알림·오류 처리에서 Grafana가 플러그인 오류와 다운스트림 오류를 어떻게 구분하는지 테스트.
No Data Points: 데이터 포인트 없는 빈 결과 반환. 데이터 없음 시 패널 표시 테스트.
Data points Outside Range: 쿼리 시간 범위보다 한 시간 전 타임스탬프의 단일 데이터 포인트 반환. 가시 범위 밖 데이터 처리 테스트.
Slow Query: 무작위 보행 데이터 반환 전 구성 가능한 지연. String Input 필드에 Go duration 구문(예: 5s, 1m, 500ms)으로 지연 설정. 기본 5s.
메타데이터 시나리오 (Metadata scenarios)
Query Metadata: 현재 사용자의 사용자명을 포함한 쿼리 메타데이터 테이블 반환. 쿼리 컨텍스트 정보가 사용 가능한지 확인.