概述
TelemetryDataSet(可观测数据集)是 UModel 中用于定义和管理可观测数据的核心概念。它提供了统一的数据建模框架,支持日志、指标、链路追踪、事件和性能剖析等多种可观测数据类型。
TelemetryDataSet 继承了图论中节点(Node)的基本特性,同时针对可观测数据的特点增加了时间维度和观测特性。所有具体的数据集类型(LogSet、TraceSet、EventSet、ProfileSet、MetricSet)都基于 TelemetryDataSet 扩展而来。
应用案例
当前应用案例相关素材,请参考:umodel.zip
核心特性
时间维度支持:所有可观测数据都包含时间字段,支持时序分析。
字段分类管理:支持显示字段、隐藏字段、标签字段的分类管理。
灵活的排序机制:可定义默认排序字段和排序方向。
统一的数据结构:提供一致的数据建模语法和规范。
扩展性设计:支持通过继承机制扩展特定数据类型的能力。
通用配置结构
所有 TelemetryDataSet 类型都包含以下基础配置:
字段 | 类型 | 必填 | 说明 |
| Array | 是 | 字段定义列表,定义数据集的所有字段 |
| String | 否 | 时间字段名,用于时序分析和排序 |
| Array | 否 | 显示名称字段,按重要性排序 |
| Array | 否 | 标签字段,用于聚合显示和分析 |
| Array | 否 | 隐藏字段,不在界面显示 |
| Array | 否 | 排序字段列表 |
| Enum | 否 | 默认排序方向(asc/desc) |
LogSet 建模
LogSet 用于定义日志数据的结构和特性,是最灵活的数据集类型之一。它继承了 TelemetryDataSet 的所有基础能力,适用于各种类型的日志数据建模。
注意: LogSet 相比 TelemetryDataSet 没有增加额外字段,其灵活性和泛化性最强,但相对不会提供对特定结构化数据的高级功能,例如时序预测、Trace摘要等。
TraceSet 建模
TraceSet 专门用于定义分布式链路追踪数据,包含了链路追踪特有的字段和协议支持。它是 OpenTelemetry 等追踪标准在 UModel 中的抽象表示。
协议支持
TraceSet 支持多种追踪协议的配置:
协议 | 说明 | 字段要求 |
opentelemetry | OpenTelemetry 标准(默认,建议使用) | traceId, spanId, parentSpanId |
jaeger | Jaeger 追踪格式 | traceID, spanID, parentSpanID |
zipkin | Zipkin 追踪格式 | traceId, spanId, parentSpanId |
额外字段配置
TraceSet 具有和链路追踪相关的额外字段要求:
字段 | 说明 | 约束 |
| 链路ID字段名 | 必需,默认 “traceId” |
| 跨度ID字段名 | 必需,默认 “spanId” |
| 父跨度ID字段名 | 可选,默认 “parentSpanId” |
| 追踪协议 | 可选,默认 “opentelemetry” |
注意:TraceSet 在可观测2.0中为固定结构(遵循 OpenTelemetry 规范),且必须存储在 LogStore 中,提供各类性能剖析数据可视化和分析能力。
EventSet 建模
EventSet 用于定义事件数据的结构,适用于告警事件、系统事件、业务事件等场景。它提供了灵活的事件类型定义和状态管理能力。
注意: EventSet 相比 TelemetryDataSet 没有增加额外字段,在 UModel 系统中,默认会创建一个 EventSet 和 SLS LogStore,用于存储系统事件、告警事件等。格式遵循 CloudEvents 规范。
ProfileSet 建模
ProfileSet 用于定义性能剖析数据,支持 CPU、内存、网络等多种性能数据的建模。它主要用于应用性能分析和系统性能调优场景。
额外字段配置
ProfileSet 具有和链路追踪相关的额外字段要求:
字段 | 说明 | 约束 |
| 性能剖析协议 | 必需,默认 “pprof”,当前只支持该协议 |
注意:ProfileSet 在可观测2.0中为固定结构(遵循 pprof 规范),且必须存储在LogStore中,提供各类性能剖析数据可视化和分析能力。