if metric.Value.IsSingleValue() {
value := metric.Value.GetSingleValue()
}
if metric.Value.IsMultiValues() {
values := metric.Value.GetMultiValues()
for field, value := range values.Iterator() {
// field 为 string 类型,表示多值的字段名
// value 为 float64 类型
}
}
type SpanLink struct {
TraceID string
SpanID string
TraceState string
Tags Tags
}
type SpanEvent struct {
Timestamp int64
Name string
}
type Span struct {
TraceID string
SpanID string
ParentSpanID string
Name string
TraceState string
StartTime uint64
EndTime uint64
ObservedTimestamp uint64
Kind SpanKind
Status StatusCode
Tags Tags
Links []*SpanLink
Events []*SpanEvent
}
Log 模型
Log 模型可以兼容非结构化和结构化日志,并且预留链路信息记录的字段。
其中 Offset 记录了日志文件采集时,日志在文件中的偏移量,可选
Name 对 Log 也是可选的
SpanID 、TraceID 在数据关联时使用,可选
Indices 在日志结构化的场景使用,存储从 Body 原始日志文本分析的KV,避免和 Tags 混淆
type Indices KeyValues[string]
type Log struct {
Name string
Level string
SpanID string
TraceID string
Tags Tags
Timestamp uint64
ObservedTimestamp uint64
Offset uint64
Body string
Indices Indices
}