全部產品
Search
文件中心

Simple Log Service:Trace資料格式

更新時間:Jun 30, 2024

本文介紹Log ServiceTrace資料的格式。

Log ServiceTrace資料格式完全相容OpenTelemetry Trace 1.0格式,通過OpenTelemetry、Jaeger、Zipkin、OpenCensus、SkyWalking等協議寫入的Trace資料可自動對應成OpenTelemetry的Trace資料格式。其他類型的Trace資料可通過資料加工轉換為Log ServiceTrace格式。

原始Trace資料

原始Trace資料會被採集到名為{instance}-traces的Logstore中,採集時所定義的欄位如下所示。

欄位類型是否必選說明樣本
hostString資源所在主機的主機名稱。提取自resource欄位中的host.name欄位。test-host
serviceString資源的服務名。提取自resource欄位中的service.name欄位。test-service
resourceJSON Objecthostservice之外的其他資源欄位,例如進程ID、進程名、Pod名等。更多資訊,請參見Resource Semantic Conventions{"k8s.pod.name":"xxxx", "k8s.pod.namespace":"kube-system"}
otlp.nameStringTrace SDK名稱。go-sdk
otlp.versionStringTrace SDK版本號碼。v1.0.0
nameStringSpan名稱。/get/314159
kindStringSpan類型,例如CLIENT、SERVER等。更多資訊,請參見SpanKindSERVER
traceIDStringTrace ID。使用十六進位表示。0123456789abcde0123456789abcde
spanIDStringSpan ID。使用十六進位表示。0123456789abcde
parentSpanIDStringParentSpan ID。使用十六進位表示。0123456789abcde
linksJSON Array相關聯的其他的Span。更多資訊,請參見Specifying links[{"TraceID" : "abc", "SpanId" : "abc", "TraceState" : "", "Attributes" : { "k" : "v" } }]
logsJSON Array相關聯的日誌、事件資訊。更多資訊,請參見Add Events
traceStateStringW3C定義的Trace State資訊。更多資訊,請參見W3C Trace Context Specification
startINT開始時間。Unix時間戳記類型,單位:納秒。1686294916826000000
endINT結束時間。Unix時間戳記類型,單位:納秒。1686294924827000000
durationINT延遲時間,start參數與end參數之間的差值。單位:納秒。8001000
attributeJSON ObjectSpan相關的屬性資訊,例如HTTP請求的URL、狀態代碼等。更多資訊,請參見Attribute Naming{"custom":"custom","host.hostname":"myhost","my-label":"myapp-type","null-value":"","service.name":"myapp"}
statusCodeString狀態代碼。取值為OK、ERROR、UNSET。其中,UNSET與OK同義。ERROR
statusMessageString狀態資訊。stack overflow

維度調用關係資料

Trace資料經計算產生的維度調用關係資料將被儲存在名為{instance}-traces-deps的Logstore中,對應的欄位說明如下所示。

欄位資料類型說明
versionString不同維度下的調用關係,目前共有四個維度。
  • service:服務維度,展示服務間調用關係。
  • service_name:服務方法維度。
  • service_name_host:服務方法、主機維度。
  • service_name_host_resource:服務方法、主機、資源維度。
child_hostString被呼叫者的主機資訊。

僅在version為service_name_host或service_name_host_resource時出現。

child_nameString被呼叫者的方法。

僅在version為service_name、service_name_host或service_name_host_resource時出現。

child_resourceJSON Object被呼叫者的資源資訊。

僅在version為service_name_host_resource時出現。

child_serviceString被呼叫者的服務名。
child_typeJSON Object被呼叫者的補充資訊。
inner_percentileString百分位,系統通過inner_percentile函數解析百分位。
max_latencyDouble調用服務方法的最大延遲值。
min_latencyDouble調用服務方法的最小延遲值。
n_status_failDouble調用服務方法失敗的次數。
n_status_succDouble調用服務方法成功的次數。
parent_hostJSON Array調用方的主機資訊。

僅在version為service_name_host或service_name_host_resource時出現。

parent_nameJSON Array調用方的方法。

僅在version為service_name、service_name_host或service_name_host_resource時出現。

parent_resourceJSON Object調用方的資源資訊。

僅在version為service_name_host_resource時出現。

parent_serviceINT調用方服務名。

僅在version為service、service_name或service_name_host_resource時出現。

parent_typeINT調用方的補充資訊。
sum_latencyINT調用服務方法的延遲累加值。

彙總指標中間結果資料

Trace資料經計算產生的彙總指標中間結果將被儲存在名為{instance}-traces-metrics的Logstore中,對應的欄位說明如下所示。

欄位資料類型說明
hostSTRINGSpan的Host值。
inner_percentileSTRING百分位,系統通過inner_percentile函數解析百分位。
max_latencyDouble調用服務方法的最大延遲值。
min_latencyDouble調用服務方法的最小延遲值。
n_status_failINT服務方法執行失敗的次數。
nameSTRINGSpan名稱。
resourceJSON ObjectSpan資源資訊。
serviceSTRINGSpan服務名稱。
sum_latencyDouble調用服務方法的延遲總和,通常和total一起使用,計算平均延遲。
totalINT調用服務方法的次數。
typeJSON ObjectSpan的補充資訊,通常包含以下資訊。
  • parent:根節點資訊。
  • mq:MQ調用相關資訊。如果為空白,則不是MQ調用。
  • kind:Span類型。
  • env:Span環境資訊,從resource.deployment.environment欄位中提取。
  • version:Span版本,從resource.service.version欄位中提取。
  • db:Database調用資訊。如果為空白,則不是Database調用。
versionString指標類型,目前固定為metric_info。