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 将可观测数据（日志、指标、链路等）关联到对应实体。

* **图谱构建**：自动生成实体拓扑图和数据关系图，支持图查询和图分析。