데이터 수집 가용성 검사
이 수집기는 데이터 수집의 가용성과 지연을 검사하는 데 사용됩니다. 메트릭, 로그, 트레이싱의 탐지 데이터를 자동으로 생성한 뒤 DQL 조회로 데이터가 정상적으로 수집되었는지 확인하고, 데이터 전송부터 조회 가능해질 때까지의 지연 시간을 측정합니다.
사전 조건¶
- DataWay 구성이 필요하며, 데이터 전송과 DQL 조회에 사용됩니다
result_workspace를 설정한 경우, 해당 워크스페이스 URL에 접근 가능해야 합니다
설정¶
DataKit 설치 디렉터리의 conf.d/samples 디렉터리로 이동한 뒤, ingestion_canary.conf.sample을 복사하여 ingestion_canary.conf로 이름을 바꿉니다. 예시는 다음과 같습니다:
[[inputs.ingestion_canary]]
## 수집 주기, 기본값 10m
interval = "10m"
## 쿼리 타임아웃, 주기보다 짧아야 함, 기본값 5m
query_timeout = "5m"
## DQL 쿼리 폴링 간격, 기본값 500ms
poll_interval = "500ms"
## 쿼리 오류에 대한 최대 재시도 횟수, 기본값 10
error_retries = 10
## 메트릭 보고용 결과 워크스페이스 URL
# result_workspace = "https://openway.guance.com?token=xxx"
## 수집할 데이터 범주 (metric, logging, tracing)
## 지정하지 않으면 모든 범주를 수집합니다
categories = ["metric", "logging", "tracing"]
## 로깅 설정
[inputs.ingestion_canary.logging]
storage_index = "default"
## 선출 모드 활성화
election = true
## 추가 태그
[inputs.ingestion_canary.tags]
# some_tag = "some_value"
# more_tag = "some_other_value"
설정한 뒤에는 DataKit을 재시작하면 됩니다.
ConfigMap 방식으로 수집기 구성을 주입하거나 ENV_DATAKIT_INPUTS를 설정하여 수집기를 활성화할 수 있습니다.
지표 설명¶
이 수집기는 두 종류의 데이터를 생성합니다:
- 테스트 데이터: 데이터 수집 가용성을 테스트하기 위한 탐지 데이터 포인트(메트릭, 로그, 트레이싱)
- 결과 지표: 지연 시간과 테스트 상태를 포함한 테스트 결과의 메트릭 데이터
탐지 데이터 포인트에는 전역 태그가 포함되지 않으며, 데이터 포인트 자체의 필드와 태그, 그리고 설정에서 지정한 tags만 포함됩니다.
테스트 데이터¶
ingestion_canary (메트릭)¶
각 탐지 라운드마다 수집기가 내보내는 합성 메트릭 포인트로, 메트릭 수집 경로를 검증합니다.
| Tags & Fields | Description |
|---|---|
| test_type ( tag) |
테스트 유형: collect(수집기) 또는 cmd(CLI 도구) |
| round | ingestion canary 탐지의 라운드 번호입니다. 형식: int | (gauge) 단위: count 태그 기준: test_type |
ingestion_canary (로그)¶
로그 수집 경로를 검증하기 위해 canary가 내보내는 합성 로깅 페이로드입니다.
| Tags & Fields | Description |
|---|---|
| test_type ( tag) |
테스트 유형: collect(수집기) 또는 cmd(CLI 도구) |
| message | ingestion canary 탐지에서 내보내는 합성 로그 메시지입니다. 형식: string 단위: N/A 태그 기준: test_type |
| round | ingestion canary 탐지의 라운드 번호입니다. 형식: int 단위: count 태그 기준: test_type |
ingestion_canary (트레이싱)¶
트레이스 수집과 전달을 검증하기 위해 canary가 내보내는 합성 트레이싱 페이로드입니다.
| Tags & Fields | Description |
|---|---|
| service ( tag) |
서비스 이름 |
| source ( tag) |
소스 이름 |
| span_type ( tag) |
스팬 유형 |
| test_type ( tag) |
테스트 유형: collect(수집기) 또는 cmd(CLI 도구) |
| duration | 트레이스 스팬의 지속 시간(마이크로초)입니다. 형식: int 단위: time,μs 태그 기준: service, source, span_type, test_type |
| parent_id | ingestion canary 탐지에서 내보내는 부모 스팬 식별자입니다. 형식: string 단위: N/A 태그 기준: service, source, span_type, test_type |
| resource | ingestion canary 탐지에서 내보내는 합성 리소스 이름입니다. 형식: string 단위: N/A 태그 기준: service, source, span_type, test_type |
| round | ingestion canary 탐지의 라운드 번호입니다. 형식: int 단위: count 태그 기준: service, source, span_type, test_type |
| span_id | ingestion canary 탐지에서 내보내는 스팬 식별자입니다. 형식: string 단위: N/A 태그 기준: service, source, span_type, test_type |
| start | 트레이스 스팬의 시작 시간을 Unix 타임스탬프 마이크로초로 나타낸 값입니다. 형식: int 단위: timeStamp,usec 태그 기준: service, source, span_type, test_type |
| status | ingestion canary 탐지에서 내보내는 합성 스팬 상태입니다. 형식: string 단위: N/A 태그 기준: service, source, span_type, test_type |
| trace_id | ingestion canary 탐지에서 내보내는 트레이스 식별자입니다. 형식: string 단위: N/A 태그 기준: service, source, span_type, test_type |
결과 지표¶
ingestion_canary_result¶
각 ingestion canary 탐지 라운드의 결과 지표로, 범주, 상태, 저장 대상, 지연 시간을 포함합니다.
| Tags & Fields | Description |
|---|---|
| category ( tag) |
데이터 범주: M (metric), L (logging), T (tracing) |
| status ( tag) |
테스트 상태: ok, timeout, error |
| storage_index ( tag) |
로그 데이터의 저장 인덱스(선택 사항) |
| latency_ms | canary 포인트를 입력한 뒤 조회 가능해질 때까지의 지연 시간(밀리초)입니다. 형식: int | (gauge) 단위: time,ms 태그 기준: category, status, storage_index, test_type |
명령행 도구¶
수집기 모드 외에도, 일회성 테스트를 위한 명령행 도구를 제공합니다:
# 기본 설정 사용
datakit tool --ingestion-canary
# 로그 데이터의 storage index 지정
datakit tool --ingestion-canary --ingestion-canary-index my_index
매개변수 설명:
--ingestion-canary: ingestion canary 테스트 도구 활성화--ingestion-canary-index: 로그 데이터의 storage index를 지정하며, 기본값은 "default"입니다(로그 데이터에만 유효)
기능 설명:
이 도구는 탐지 데이터(메트릭, 로그, 트레이싱)를 한 라운드 생성하여 DataWay로 전송한 뒤, 데이터를 찾을 때까지 또는 사용자가 중단할 때까지 계속 조회하고 각 데이터 유형의 지연 시간을 출력합니다. 도구는 계속 실행되며, 각 테스트 라운드 간격은 10초입니다.