本文介绍日志服务Trace数据的格式。
日志服务Trace数据格式完全兼容OpenTelemetry Trace 1.0格式,通过OpenTelemetry、Jaeger、Zipkin、OpenCensus、SkyWalking等协议写入的Trace数据可自动映射成OpenTelemetry的Trace数据格式。其他类型的Trace数据可通过数据加工转换为日志服务Trace格式。
原始Trace数据
原始Trace数据会被采集到名为{instance}-traces的Logstore中,采集时所定义的字段如下所示。
字段 | 类型 | 是否必选 | 说明 | 示例 |
---|---|---|---|---|
host | String | 否 | 资源所在主机的主机名。提取自resource字段中的host.name字段。 | test-host |
service | String | 是 | 资源的服务名。提取自resource字段中的service.name字段。 | test-service |
resource | JSON Object | 否 | 除host、service之外的其他资源字段,例如进程ID、进程名、Pod名等。更多信息,请参见Resource Semantic Conventions。 | {"k8s.pod.name":"xxxx", "k8s.pod.namespace":"kube-system"} |
otlp.name | String | 否 | Trace SDK名称。 | go-sdk |
otlp.version | String | 否 | Trace SDK版本号。 | v1.0.0 |
name | String | 是 | Span名称。 | /get/314159 |
kind | String | 否 | Span类型,例如CLIENT、SERVER等。更多信息,请参见SpanKind。 | SERVER |
traceID | String | 是 | Trace ID。使用十六进制表示。 | 0123456789abcde0123456789abcde |
spanID | String | 是 | Span ID。使用十六进制表示。 | 0123456789abcde |
parentSpanID | String | 是 | ParentSpan ID。使用十六进制表示。 | 0123456789abcde |
links | JSON Array | 否 | 相关联的其他的Span。更多信息,请参见Specifying links。 | [{"TraceID" : "abc", "SpanId" : "abc", "TraceState" : "", "Attributes" : { "k" : "v" } }] |
logs | JSON Array | 否 | 相关联的日志、事件信息。更多信息,请参见Add Events。 | 无 |
traceState | String | 否 | W3C定义的Trace State信息。更多信息,请参见W3C Trace Context Specification。 | 无 |
start | INT | 是 | 开始时间。Unix时间戳类型,单位:纳秒。 | 1686294916826000000 |
end | INT | 否 | 结束时间。Unix时间戳类型,单位:纳秒。 | 1686294924827000000 |
duration | INT | 是 | 延迟时间,start参数与end参数之间的差值。单位:纳秒。 | 8001000 |
attribute | JSON Object | 是 | Span相关的属性信息,例如HTTP请求的URL、状态码等。更多信息,请参见Attribute Naming。 | {"custom":"custom","host.hostname":"myhost","my-label":"myapp-type","null-value":"","service.name":"myapp"} |
statusCode | String | 是 | 状态码。取值为OK、ERROR、UNSET。其中,UNSET与OK同义。 | ERROR |
statusMessage | String | 否 | 状态信息。 | stack overflow |
维度调用关系数据
Trace数据经计算生成的维度调用关系数据将被存储在名为{instance}-traces-deps的Logstore中,对应的字段说明如下所示。
字段 | 数据类型 | 说明 |
---|---|---|
version | String | 不同维度下的调用关系,目前共有四个维度。
|
child_host | String | 被调用方的主机信息。 仅在version为service_name_host或service_name_host_resource时出现。 |
child_name | String | 被调用方的方法。 仅在version为service_name、service_name_host或service_name_host_resource时出现。 |
child_resource | JSON Object | 被调用方的资源信息。 仅在version为service_name_host_resource时出现。 |
child_service | String | 被调用方的服务名。 |
child_type | JSON Object | 被调用方的补充信息。 |
inner_percentile | String | 百分位,系统通过inner_percentile函数解析百分位。 |
max_latency | Double | 调用服务方法的最大延迟值。 |
min_latency | Double | 调用服务方法的最小延迟值。 |
n_status_fail | Double | 调用服务方法失败的次数。 |
n_status_succ | Double | 调用服务方法成功的次数。 |
parent_host | JSON Array | 调用方的主机信息。 仅在version为service_name_host或service_name_host_resource时出现。 |
parent_name | JSON Array | 调用方的方法。 仅在version为service_name、service_name_host或service_name_host_resource时出现。 |
parent_resource | JSON Object | 调用方的资源信息。 仅在version为service_name_host_resource时出现。 |
parent_service | INT | 调用方服务名。 仅在version为service、service_name或service_name_host_resource时出现。 |
parent_type | INT | 调用方的补充信息。 |
sum_latency | INT | 调用服务方法的延迟累加值。 |
聚合指标中间结果数据
Trace数据经计算生成的聚合指标中间结果将被存储在名为{instance}-traces-metrics的Logstore中,对应的字段说明如下所示。
字段 | 数据类型 | 说明 |
---|---|---|
host | STRING | Span的Host值。 |
inner_percentile | STRING | 百分位,系统通过inner_percentile函数解析百分位。 |
max_latency | Double | 调用服务方法的最大延迟值。 |
min_latency | Double | 调用服务方法的最小延迟值。 |
n_status_fail | INT | 服务方法执行失败的次数。 |
name | STRING | Span名称。 |
resource | JSON Object | Span资源信息。 |
service | STRING | Span服务名称。 |
sum_latency | Double | 调用服务方法的延迟总和,通常和total一起使用,计算平均延迟。 |
total | INT | 调用服务方法的次数。 |
type | JSON Object | Span的补充信息,通常包含以下信息。
|
version | String | 指标类型,目前固定为metric_info。 |