UModel(Universal Observability Model)是一种基于图模型的可观测数据建模方法,旨在解决企业级环境中可观测数据采集、组织和利用的核心挑战。UModel 采用 Node(节点)和 Link(边)组成的图结构来描述 IT 世界,通过标准化的数据建模方式,实现可观测数据的统一表示、存储解耦和智能分析。作为阿里云可观测体系的数据建模基础,UModel 为企业提供了一套通用的可观测"交互语言",让人、程序和AI都能够理解和分析可观测数据,从而构建真正的全栈可观测能力。
核心概念
图模型基础
UModel 采用图论的基本概念,使用 Node(节点)和 Link(边)组成有向图来描述 IT 系统:
Node(节点):核心部分为 Set(数据集),表示同类型实体或数据的集合,如 EntitySet(实体集)、MetricSet(指标集)、LogSet(日志集)等;此外还包含数据集的存储类型(Storage),如 SLS、Prometheus、MySQL 等。
Link(关联):表示 Node 之间的关系,如 EntitySetLink(实体关联)、DataLink(数据关联)、StorageLink(存储关联)等。
Field(字段):用于约束和描述 Set 和 Link 的属性,包含名称、类型、约束规则、分析特性等20多种配置项。
信息学本体论
UModel 的设计理念源于信息学的本体论(Ontology),通过明确定义可观测领域内概念及其相互关系,形成形式化的知识表示。UModel 将传统本体论概念映射为具体的技术实现:
EntitySet(实体集):定义同类概念的集合,如 "apm.service"、“k8s.pod”、"infrastructure.host" 等实体类型。
Entity(实体实例):EntitySet 的具体化,如具体的服务实例 "order-service"、Pod 实例 "web-pod-001"。
Field(字段属性):描述 Entity 和 Set 的特征,如服务的 "service_name"、“version”、"status" 等字段。
EntitySetLink(实体关联):描述 EntitySet 间的相互关系,如 "calls"、“contains”、"runs_on" 等关系类型。
约束规则(Constraints):通过 Field 的数据类型、取值范围、验证规则等限定属性表现,确保数据一致性和完整性。
数据融合理念
UModel 实现了从"存储统一"到"数据融合"的理念转变:
存储抽象:通过 Storage 和 StorageLink 将数据建模与具体存储解耦,支持 SLS、Prometheus、MySQL 等多种存储。
语义统一:通过 Field 定义统一字段语义,CommonSchema 标准化通用字段定义,实现跨数据源的语义一致性。
关联分析:通过 EntitySetLink 构建跨域实体关系,实现数据间的智能关联。
动态映射:支持字段映射和动态转换,兼容现有数据格式。
实体关系模型
UModel 将 IT 世界数字化为实体关系模型:
实体建模:将系统组件抽象为 EntitySet,如服务、数据库、主机、容器等。
关系定义:通过 EntitySetLink 定义实体间关系,如 "calls"、“contains”、"runs_on" 等。
数据关联:通过 DataLink 将可观测数据(日志、指标、链路等)关联到对应实体。
图谱构建:自动生成实体拓扑图和数据关系图,支持图查询和图分析。