Profiling Data Structure
This page will introduce about profiling data structure used in DataKit.
DataKit Line Protocol Structure¶
- Line Protocol is the final format storing on disk
- Line Protocol data structure consists of four parts: "Name", "Tags", "Fields" and "Timestamp", which is separated by comma, for example:
line protocol
source_name,key1=value1,key2=value2 field1=value1,field2=value2 ts
DataKit line protocol tags and fields used in profiling¶
| 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 |