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 將可觀測資料（日誌、指標、鏈路等）關聯到對應實體。

* **圖譜構建**：自動產生實體拓撲圖和資料關係圖，支援圖查詢和圖分析。