数据集建模

概述

  • TelemetryDataSet(可观测数据集)是 UModel 中用于定义和管理可观测数据的核心概念。它提供了统一的数据建模框架,支持日志、指标、链路追踪、事件和性能剖析等多种可观测数据类型。

  • TelemetryDataSet 继承了图论中节点(Node)的基本特性,同时针对可观测数据的特点增加了时间维度和观测特性。所有具体的数据集类型(LogSet、TraceSet、EventSet、ProfileSet、MetricSet)都基于 TelemetryDataSet 扩展而来。

应用案例

当前应用案例相关素材,请参考:umodel.zip

核心特性

  • 时间维度支持:所有可观测数据都包含时间字段,支持时序分析。

  • 字段分类管理:支持显示字段、隐藏字段、标签字段的分类管理。

  • 灵活的排序机制:可定义默认排序字段和排序方向。

  • 统一的数据结构:提供一致的数据建模语法和规范。

  • 扩展性设计:支持通过继承机制扩展特定数据类型的能力。

通用配置结构

所有 TelemetryDataSet 类型都包含以下基础配置:

字段

类型

必填

说明

fields

Array

字段定义列表,定义数据集的所有字段

time_field

String

时间字段名,用于时序分析和排序

name_fields

Array

显示名称字段,按重要性排序

tag_fields

Array

标签字段,用于聚合显示和分析

hidden_fields

Array

隐藏字段,不在界面显示

ordered_fields

Array

排序字段列表

default_order

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 具有和链路追踪相关的额外字段要求:

字段

说明

约束

trace_id_field

链路ID字段名

必需,默认 “traceId”

span_id_field

跨度ID字段名

必需,默认 “spanId”

parent_span_id_field

父跨度ID字段名

可选,默认 “parentSpanId”

protocol

追踪协议

可选,默认 “opentelemetry”

注意:TraceSet 在可观测2.0中为固定结构(遵循 OpenTelemetry 规范),且必须存储在 LogStore 中,提供各类性能剖析数据可视化和分析能力。

EventSet 建模

  • EventSet 用于定义事件数据的结构,适用于告警事件、系统事件、业务事件等场景。它提供了灵活的事件类型定义和状态管理能力。

  • 注意: EventSet 相比 TelemetryDataSet 没有增加额外字段,在 UModel 系统中,默认会创建一个 EventSet 和 SLS LogStore,用于存储系统事件、告警事件等。格式遵循 CloudEvents 规范。

ProfileSet 建模

ProfileSet 用于定义性能剖析数据,支持 CPU、内存、网络等多种性能数据的建模。它主要用于应用性能分析和系统性能调优场景。

额外字段配置

ProfileSet 具有和链路追踪相关的额外字段要求:

字段

说明

约束

protocol

性能剖析协议

必需,默认 “pprof”,当前只支持该协议

注意:ProfileSet 在可观测2.0中为固定结构(遵循 pprof 规范),且必须存储在LogStore中,提供各类性能剖析数据可视化和分析能力。