DataKit Profiling 関連のデータ構造
本記事では、DataKit の profiling 関連のデータ構造の定義を説明します。
DataKit の Line Protocol の概要¶
- Line Protocol は、データストリームが最終的にディスクへ書き込まれる際の形式です。
- Line Protocol のデータ構造は、Name、Tags、Fields、Timestamp の 4 つの部分と区切り文字(半角カンマとスペース)で構成される文字列です。次の形式を取ります。
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 |