CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/UModel/Query Service 指南
文档目录
UModel 中文文档
模型编写指南Query Service 指南实体与关系写入指南SDK 与客户端指南Web UI 指南
GraphStore Providers文档国际化规则Web UI 架构Web UI API 对照UModel SDK 规范

UModel

Query Service 指南

Query Service 是 UModel 定义、实体、关系和拓扑的唯一公共读取路径。它接受以 .umodel、.entity 或 .topo 开头的 SPL 字符串。 UModel 不暴露分散的公共读取 API,例如 entity lookup、relation lookup、graph traversal 或 model search endpoint。统一读取面让 CLI、Web...

Query Service 是 UModel 定义、实体、关系和拓扑的唯一公共读取路径。它接受以 .umodel、.entity 或 .topo 开头的 SPL 字符串。

为什么读取统一走 Query Service

UModel 不暴露分散的公共读取 API,例如 entity lookup、relation lookup、graph traversal 或 model search endpoint。统一读取面让 CLI、Web UI、REST API、MCP tools 和 SDK 保持一致。

入口

REST:

POST /api/v1/query/{workspace}/execute
POST /api/v1/query/{workspace}/explain

CLI:

go run ./cmd/umctl --addr http://localhost:8080 query run demo ".umodel | limit 5"
go run ./cmd/umctl --addr http://localhost:8080 query explain demo ".umodel | limit 5"

Agent tool:

go run ./cmd/umctl --addr http://localhost:8080 agent tool demo query_spl_execute '{"query":".umodel | limit 5"}'

`.umodel`

读取 UModel 定义:

go run ./cmd/umctl --addr http://localhost:8080 query run demo ".umodel with(kind='entity_set') | sort name | limit 20"

常见读取:

  • 列出 EntitySet。
  • 查看 metric、log、trace、event、storage、link 定义。
  • 支撑 Web UI Explorer 的图/表视图。

`.entity`

读取运行时实体:

go run ./cmd/umctl --addr http://localhost:8080 query run demo ".entity with(domain='devops', name='devops.service', query='checkout') | project __entity_id__,display_name | limit 20"

`.topo`

读取运行时拓扑关系:

go run ./cmd/umctl --addr http://localhost:8080 query run demo ".topo | graph-call getDirectRelations([(:\"devops@devops.service\" {__entity_id__: '10000000000000000000000000000101'})]) | project src,relation,dest | limit 20"

常用管道操作

  • with(...):source-specific 过滤。
  • project:选择字段。
  • sort:排序。
  • limit:限制输出。
  • graph-call:拓扑函数。

查看内置示例:

go run ./cmd/umctl --addr http://localhost:8080 query examples

Explain

go run ./cmd/umctl --addr http://localhost:8080 query explain demo ".entity with(domain='devops', name='devops.service') | limit 5"

Explain 输出包含 source、provider、storage provider、filters 和 limits。

边界规则

  • 不新增 Query Service 之外的公共 entity/relation/topology 读取 endpoint。
  • CLI 领域读取保持在 query run 和 query explain 后面。
  • AgentGateway resources 保持 metadata-only,运行时 rows 通过 tools 返回。

文章大纲