DataKit 프로파일링 관련 데이터 구조
이 기사에서는 DataKit의 프로파일링 관련 데이터 구조 정의를 소개합니다.
DataKit Line Protocol 소개¶
- 라인 프로토콜은 데이터 스트림에 배치되는 마지막 데이터입니다.
- Line Protocol 데이터 구조는 Name, Tags, Fields, Timestamp의 네 부분과 구분 기호(쉼표, 공백)로 구성된 문자열이며 형식은 다음과 같습니다.
line protocol
source_name,key1=value1,key2=value2 field1=value1,field2=value2 ts
DataKit profiling의 Line Protocol에서 사용하는 tags 및 fields¶
| Section | Name | Unit | Description |
|---|---|---|---|
| Tag | host |
host name | |
| Tag | endpoint |
end point of resource | |
| Tag | service |
service name | |
| Tag | env |
environment arguments | |
| Tag | version |
service version | |
| Tag | language |
language [Java, Python, Golang, ...] |
|
| Field | runtime |
runtime [jvm, CPython, go, ....] |
|
| Field | runtime_os |
operating system | |
| Field | runtime_arch |
cpu architecture | |
| Field | runtime_version |
programming language version | |
| Field | runtime_compiler |
compiler | |
| Field | runtime_id |
allocated unique ID once process bootstrap | |
| Field | profiler |
profiler library name [DDTrace, py-spy, Pyroscope, ...] |
|
| Field | library_ver |
profiler library version | |
| Field | profiler_version |
profiler library version | |
| Field | profile_id |
profiling unique ID | |
| Field | datakit_ver |
DataKit version | |
| Field | start |
nanosecond | profiling start timestamp |
| Field | end |
nanosecond | profiling end timestamp |
| Field | duration |
nanosecond | profiling duration |
| Field | pid |
process id | |
| Field | process_id |
process id | |
| Field | format |
profiling file format | |
| Field | __file_size |
Byte | profiling file total size |