更新时间:2026-11-02 GMT+08:00
分享

OpenTelemetry协议字段映射

在AgentArts观测看板中,您看到的每一个图表(如用户数趋势、Token消耗排行、平均耗时等),底层均依赖于您通过OpenTelemetry(OTel) SDK上报的数据。

为了方便您快速对照,下表将AgentArts观测看板上的业务指标与您在代码探针中需要上报的底层字段进行了统一映射。

当您了解了字段的映射关系后,如需在代码中进行具体集成,请直接参考以下操作指南:

当智能体运行过程中涉及Skill(技能)调用时,Skill信息通过在工具执行Span(如skill_tool、skill_complete)上设置gen_ai.skill.*属性进行链路追踪,不创建独立Span;Skill的调用次数、平均耗时、成功率等统计趋势通过gen_ai.skill.*指标上报,平台基于上报的指标与维度进行聚合计算与展示。示例如下:

<root span>
├── <model/chat span>                         ← LLM决策调用skill_tool
├── <tool execute span: skill_tool>           ← gen_ai.operation.name="load_skill"
│   └── event: skill.loaded {skill.name, skill.path}
├── <model/chat span>                         ← Skill步骤推理
├── <tool execute span: skill_complete>       ← gen_ai.operation.name="release_skill"
│   └── event: skill.released {skill.name}
└── <model/chat span>                         ← 最终回答

Trace调用链属性

本节文档定义上报到华为云AgentArts平台可观测中Trace数据的字段规范,包括每个字段的含义、数据类型和取值示例。

文中所有定义的Trace字段是华为云参考OpenTelemetry标准以及大语言模型应用领域概念制定的,能够反映Agent调用时的输入输出请求、Token消耗、调用时延等关键操作。Agent 可观测控制台中的会话分析、调用链、Token 用量与工具分析统计等功能,均基于这些字段计算和展示。此语义字段将随着社区的发展而不断更新和优化。

Span类型

Span类型参考OpenTelemetry开源标准(https://opentelemetry.io/docs/specs/semconv/gen-ai/)和OpenInference(https://arize-ai.github.io/openinference/spec/)定义。下表列举Span类型 gen_ai.span.kind 的所有取值及其对应的 gen_ai.operation.name。其中WORKFLOW, MEMORY,RETRIEVER,RERANKER ,EMBEDDING为可选类型,仅在接入支持记忆,支持编排管道或RAG的框架时出现。

查阅字段时,请先确认Span类型,再参见对应章节。

表1 Span类型与操作名称说明

gen_ai.span.kind

gen_ai.operation.name

说明

AGENT

invoke_agent;create_agent

Agent应用入口

STEP

react_step;react

ReAct 推理与行动轮次

LLM

chat;text_completion;generate_content

大模型调用

TOOL

execute_tool

工具调用

WORKFLOW

workflow;task

工作流/链路编排环节

MEMORY

memory.create_memory_session;memory.add_messages等

记忆调用

公共属性

所有span都应该上报的属性内容,主要内容为用户和智能体信息,用于做用户分析和会话分析等。

表2 公共属性说明

属性名

类型

是否必填

说明

示例值

gen_ai.span.kind

string

必须

Span类型,(AGENT,LLM,TOOL,STEP,MEMORY)

LLM

gen_ai.resource.id

string

必须

智能体 ID,华为云可观测界面的智能体ID

9e880ba442564a3db017bac9944f9a07

gen_ai.resource.type

string

必须

资源类型:agent / multiagents / workflow

agent

gen_ai.conversation.id

string

推荐

会话 ID(Session ID)

session-20261026_105132

gen_ai.user.id

string

推荐

用户 ID,智能体应用的C端用户标识

user_20261026_13530c8a

gen_ai.agent.name

string

推荐

智能体名称

myAgent

gen_ai.agent.type

string

否

智能体类型

hermes,codex

domain.id

string

否

账号 ID,用于租户之间的数据安全隔离

07f3037b29e645a5adf662d70a4155fd

resource_version

string

否

智能体版本

0.1.1

AGENT

AGENT类型Span描述一次Agent问答的完整生命周期(Agent应用入口,Trace根节点),例如可能涉及到LLM以及Tool的多次调用,一步步决策得出最终答案。当Agent通过delegate派发子Agent时,子Agent的AGENT Span显式挂接在派发回合之下,汇总回合也会挂接回根节点。

表3 AGENT类型说明

属性名

类型

是否必填

说明

示例值

gen_ai.span.kind

string

必须

span类型

AGENT

gen_ai.operation.name

string

否

操作名称,Agent 应用入口调用

invoke_agent;create_agent

gen_ai.agent.name

string

必须

智能体名称

myAgent

gen_ai.input.messages

string

推荐

用户输入内容

[{"role":"user","parts":[{"type":"text","content":"今天天气怎么样?"}]}]

今天天气怎么样?

gen_ai.output.messages

string

推荐

Agent 最终回复内容

[{"role":"assistant","parts":[{"type":"text","content":"北京今天晴,25°C"}]}]

gen_ai.usage.input_tokens

int

必须

该回合累计输入 Token 数

1280

gen_ai.usage.output_tokens

int

必须

该回合累计输出 Token 数

356

gen_ai.usage.total_tokens

int

必须

该回合累计 Token 总数(输入 + 输出)

1636

LLM

LLM类型Span描述一次大模型推理调用,覆盖请求、响应与Token用量。LLM Span通常作为AGENT或STEP Span的子节点。

表4 LLM类型说明

属性名

类型

是否必填

说明

示例值

gen_ai.span.kind

string

必须

span类型

LLM

gen_ai.operation.name

string

推荐

大模型调用操作名

chat;text_completion;generate_content

gen_ai.request.model

string

必须

请求使用的模型标识

maas-DeepSeek-V4.1-Flash

gen_ai.request.temperature

number

否

采样温度

0.7

gen_ai.request.max_tokens

int

否

最大输出 Token 上限

4096

gen_ai.request.is_stream

bool

否

是否流式返回

true

gen_ai.request.top_k

int

否

Top-K 采样参数

50

gen_ai.request.frequency_penalty

number

否

频率惩罚系数

0.1

gen_ai.request.presence_penalty

number

否

存在惩罚系数

0.1

gen_ai.request.seed

int

否

随机采样种子

42

gen_ai.request.stop_sequences

string[]

推荐

停止序列

["stop"]

gen_ai.input.messages

string

推荐

请求消息列表 JSON

[{"role":"user","parts":[{"type":"text","content":"1+1=?"}]}]

server.address

string

否

模型服务地址

api.example.com

server.port

int

否

模型服务端口

443

http.request.method

string

否

HTTP 请求方法

POST

gen_ai.response.model

string

推荐

实际响应模型标识

maas-DeepSeek-V4.1-Flash

gen_ai.response.finish_reasons

string[]

推荐

模型返回的结束原因

["stop"]; ["stop", "length"]; ["stop", "length", "error"]

gen_ai.response.time_to_first_token

int

推荐

流式响应场景下的首 Token 时延(ms)

128

gen_ai.output.messages

string

推荐

响应消息列表 JSON

[{"role":"assistant","parts":[{"type":"text","content":"2"}]}]

gen_ai.usage.input_tokens

int

必须

本次调用输入 Token 数

145

gen_ai.usage.output_tokens

int

必须

本次调用输出 Token 数

23

gen_ai.usage.total_tokens

int

必须

本次调用 Token 总数(输入 + 输出)

168

gen_ai.usage.cache_read.input_tokens

int

否

缓存命中的输入 Token 数

100

gen_ai.usage.cache_creation.input_tokens

int

否

缓存写入的输入 Token 数

45

TOOL

TOOL类型Span描述一次工具调用,例如可能调用计算器或者请求天气API获取最新的天气情况。TOOL Span通常挂接在请求该工具调用的STEP Span之下;无STEP时直接挂接AGENT Span。当工具执行表示将Skill加载到上下文中时,应设置gen_ai.skill.*相关字段。

表5 TOOL类型说明

属性名

类型

是否必填

说明

示例值

gen_ai.span.kind

string

必须

span类型

TOOL

gen_ai.operation.name

string

推荐

工具调用操作名

execute_tool

gen_ai.tool.name

string

必须

工具名称

calculator

gen_ai.tool.call.arguments

string

必须

工具调用参数

{"expression": "1+1"}

gen_ai.tool.call.result

string

必须

工具返回结果

"2"

gen_ai.tool.call.id

string

否

工具 id

call_t0lnn230sdzti4pps48qz6yw

gen_ai.tool.type

string

否

工具类型

function

gen_ai.skill.id

string

否

skill 的唯一标识ID(调用skill时上报)

skill_d45462

gen_ai.skill.name

string

推荐

skill名称(调用skill时必须上报)

code_review

gen_ai.skill.version

string

否

skill版本(调用skill时上报)

0.2.1

STEP

STEP类型Span描述ReAct(推理-行动)循环中的一轮推理决策步,作为AGENT与TOOL/LLM之间的中间层。

表6 STEP类型说明

属性名

类型

是否必填

说明

示例值

gen_ai.span.kind

string

必须

span类型

STEP

gen_ai.operation.name

string

否

ReAct推理步操作名

react_step;react

gen_ai.react.finish_reason

string

否

该推理步的结束原因

tool_calls;stop

gen_ai.react.round

int

否

ReAct迭代轮次,通常从1开始递增

9

WORKFLOW

WORKFLOW类型Span描述一次工作流/链路编排层的调度节点,位于Agent问答链路中除AGENT、STEP、LLM、TOOL之外的编排环节,通常作为AGENT Span的子节点挂接(其下可再挂LLM、STEP、TOOL子节点)。

说明:OpenTelemetry社区尚未具备该类型Span的语义规范。当前WORKFLOW Span仅用于涉及工作流编排,RAG等场景。

表7 WORKFLOW类型说明

属性名

类型

是否必填

说明

示例值

gen_ai.span.kind

string

必须

span类型

WORKFLOW

gen_ai.operation.name

string

否

编排节点操作名(链/图/工作流节点统一标识)

workflow;task

input.value

string

否

输入内容

你好

output.value

string

否

输出内容

下午好呀!今天过得怎么样?\n\n有什么我可以帮您的吗?无论是计算一些数据、查看文件内容,还是聊聊天,我都很乐意奉陪!

MEMORY

MEMORY类型Span描述一次记忆服务调用,覆盖记忆会话管理、消息写入与语义检索。

表8 MEMORY类型说明

属性名

类型

是否必填

说明

示例值

gen_ai.span.kind

string

必须

span类型

MEMORY

gen_ai.operation.name

string

否

记忆操作名称

memory.create_memory_session;memory.add_messages;memory.search_memories

gen_ai.memory.type

string

必须

记忆类型

short_term;long_term

gen_ai.memory.operation

string

否

记忆调用方法名

add_messages;search_memories;get_last_k_messages

gen_ai.memory.session.id

string

否

记忆会话 ID

sess-8f3a5d2c

gen_ai.memory.space.id

string

否

记忆空间 ID

spc-7e2b9c41

gen_ai.memory.endpoint

string

否

记忆服务端点

memory.cn-southwest-301.myhuaweicloud.com

gen_ai.memory.input.messages

string

否

请求正文

{"session_id": "11c7d27d-4519-4dd9-bb1b-574150cdecc9", "k": 10, "space_id": "4c35aeb5-8223-4002-931f-44346c2fdad4"}

gen_ai.memory.output.messages

string

否

响应正文

{"items": [{"id": "b608376f-87a1-4116-9b57-60ad608af3ca", "session_id": "11c7d27d-4519-4dd9-bb1b-574150cdecc9", "seq": 1, "actor_id": null, "assistant_id": null, "role": "user", "parts": [{"type": "text", "text": "你好"}], "idempotency_key": null, "meta": null, "message_time": 1792983098355, "created_at": "2026-10-26T10:51:38.355063531+08:00"}]}

gen_ai.memory.operation.latency_ms

int

否

单次记忆调用耗时(ms)

24

Metric监控指标

如果您在第三方智能体代码中手动上报指标数据,您必须首先在代码中注册以下标准的指标名称(Metric Name),并在指标累加上报(.add())时,在属性字典中强制附带关联的维度(Attributes)。

表9 注册指标名称与类型说明表

注册的指标名

数据类型

说明

gen_ai.usage.status

Gauge

用于统计和计算当前智能体的“用户数”。

gen_ai.session.count

Gauge

用于统计和计算当前智能体的“会话数”。

total.requests

Counter

智能体累计被调用的总请求次数,用于计算系统的QPS/QPM和响应成功率。

gen_ai.total.requests

Counter

大语言模型累计被调用的总请求次数,用于单独统计大模型调用情况。

client.operation.duration

Histogram

智能体应用单次端到端调用的完整响应耗时时延。

gen_ai.client.operation.duration

Histogram

大语言模型单次调用的网络请求真实耗时时延。

gen_ai.response.time_to_first_token

Histogram

大模型流式输出时,首次响应首个Token的时延。

gen_ai.usage.input_tokens

Counter

大语言模型累计消耗的输入Token数量,用于计算算力成本趋势。

gen_ai.usage.output_tokens

Counter

大语言模型累计生成的输出Token数量。

gen_ai.skill.call.count

Counter

Skill调用次数,在skill_tool调用时累加;同时作为Skill调用成功率的计算基础,需通过gen_ai.call.status维度区分成功与失败。

gen_ai.skill.duration

Histogram

Skill调用耗时分布(单位秒),在skill_complete时记录从激活到完成的时长,平台据此计算Skill调用平均耗时。

gen_ai.skill.error.count

Counter

Skill错误次数,Skill执行结果含错误时累加,用于辅助成功率与稳定性分析。

gen_ai.skill.token.usage

Counter

Skill内容Token消耗。每次LLM调用前记录Skill内容消耗的Token数,用于成本治理与优化。

上报上述表9中对应的指标时,必须在代码的Attributes里,上报以下字段:

表10 必须携带的指标维度说明表(Attributes)

字段名称

是否必填

说明

gen_ai.resource.id

是

您在AgentArts创建接入时平台自动分配的智能体ID。

gen_ai.resource.type

是

资源类型,固定填写"agent"。

domain.id

是

账号ID,用于租户之间的数据安全隔离。

gen_ai.project.id

是

华为云项目ID(Project ID)。

gen_ai.user.id

是

IAM用户ID(对应环境变量USER_ID),用于在概览中去重统计活跃用户。

gen_ai.conversation.id

是

用户当前对话的会话ID(Session ID),用于在会话看板中聚合分析。

gen_ai.model.id

是

大模型实际标识(如“deepseek-v4.1-flash”),用于模型排行分析。

gen_ai.call.status

是

请求执行是否成功(True/False),平台以此计算应用及Skill的调用成功率趋势。上报gen_ai.skill.call.count时必须携带此维度,否则平台无法计算Skill调用成功率。

gen_ai.skill.name

是

Skill名称,上报gen_ai.skill.*指标时必填,用于按Skill聚合、排行与计算Skill数。

gen_ai.skill.version

否

Skill版本号,上报gen_ai.skill.call.count/duration/error.count时如可获取则携带。

gen_ai.system

否

系统/框架来源标识,上报gen_ai.skill.call.count/duration/error.count时如可获取则携带。

gen_ai.request.model

否

调用的模型名称,上报gen_ai.skill.token.usage时建议携带,用于按模型对比Skill Token成本。

观测看板与底层探针映射说明

在AgentArts观测看板中,您看到的每一个业务统计指标,其底层的数据解析和过滤依赖于您在探针端上报的底层数据名称。

表11 字段映射表

观测看板指标明细

指标业务说明

探针需上报的底层字段/指标名称

数据类型/上报方式

必须携带的维度/属性 (Attributes)

用户数

用户数趋势

用户数今日新增

统计所选时间区间内使用当前应用的用户总和(去重)、趋势及新增。

gen_ai.usage.status

注:后端Prom对应gen_ai_usage_status、gen_ai_usage_status_ratio及gen_ai.user.usage

Metric (Gauge)

gen_ai.resource.id

gen_ai.resource.type

domain.id

user.id

在线应用数

所选时间区间内所有被调用的应用总数(仅选择全部应用时生效)。

gen_ai.usage.status

注:后端Prom对应gen_ai_usage_status_ratio

Metric (Gauge)

gen_ai.resource.id

gen_ai.resource.type

domain.id

user.id

会话数

所选时间区间内应用的会话总数。

gen_ai.usage.status或gen_ai.session.count

注:后端Prom对应gen_ai_session_count_ratio

Metric (Gauge)

gen_ai.resource.id

gen_ai.resource.type

domain.id

gen_ai.conversation.id

应用调用次数

服务QPS/QPM趋势

服务响应成功率趋势

统计智能体(应用)被调用的总次数、并发率及整体成功率。

requests_total

Metric (Counter)

gen_ai.resource.id

gen_ai.resource.type

domain.id

gen_ai.conversation.id

gen_ai.call.status

应用调用平均耗时趋势

所选时间范围内,智能体每次调用的整体平均耗时。

client.operation.duration

注:后端Prom对应client_operation_duration_seconds

Metric (Histogram)

gen_ai.resource.id

gen_ai.resource.type

domain.id

gen_ai.conversation.id

gen_ai.call.status

模型调用次数

模型请求成功率趋势

统计大模型被调用的次数及稳定性(成功数量占比)。

gen_ai.total.requests

Metric (Counter)

gen_ai.resource.id

gen_ai.resource.type

gen_ai.model.id

domain.id

user.id

gen_ai.call.status

模型调用平均耗时趋势

模型调用的平均耗时(Model Span总耗时 / 总数量)。

gen_ai.client.operation.duration

Metric (Histogram)

gen_ai.resource.id

gen_ai.resource.type

gen_ai.model.id

domain.id

user.id

gen_ai.call.status

模型首Token耗时

模型流式输出时,首次调用消耗的首个Token时延。

gen_ai.response.time_to_first_token

Metric (Histogram)

gen_ai.resource.id

gen_ai.resource.type

gen_ai.model.id

domain.id

模型数

所选时间范围内,智能体关联的模型数量。

gen_ai.requests_total

Metric (Counter)

gen_ai.resource.id

gen_ai.resource.type

gen_ai.model.id

domain.id

Tokens消耗今日总数/总数/趋势

大模型调用过程中,输入 (Input) 与输出 (Output) 消耗的Token数量及趋势。

gen_ai.usage.input_tokens

gen_ai.usage.output_tokens

Metric (Counter)

gen_ai.resource.id

gen_ai.resource.type

gen_ai.model.id

domain.id<br>user.id

首次请求平均Token消耗

智能体初始化/首次调用时的平均Token消耗。

application_init_avg_tokens

Metric (Counter)

gen_ai.resource.id

gen_ai.resource.type

domain.id

模型调用平均Token消耗

模型每次调用的平均Token消耗。

需同时上报:

gen_ai.requests_total

gen_ai.usage.input_tokens

gen_ai.usage.output_tokens

Metric (Counter)

gen_ai.resource.id

gen_ai.resource.type

gen_ai.model.id

domain.id

user.id

TOP N消耗/调用量排行

(含单智能体/工作流/多智能体/大模型)

各类型智能体及大模型的Token消耗、调用次数、耗时排行榜。

依赖基础指标:gen_ai.usage.input_tokens

gen_ai.usage.output_tokens

requests_total

gen_ai.client.operation.duration

综合指标

必须确保上述基础指标的维度填写完整,上报基础指标时,attributes字典中必须包含gen_ai.model.id、gen_ai.resource.id等用于排行的分类字段。

Tokens消耗会话/Trace排行

基于会话 (Session) 和链路 (Trace) 维度的Token消耗排行。

session_token_total

trace_token_total

Metric (Counter)

在代码上报时,attributes字典中必须显式包含gen_ai.conversation.id字段。

Trace数/Span数/Span成功率

产生的调用链 (Trace) 和节点 (Span) 的数量及成功率。

探针需上报完整的Trace Span结构及状态。

注:后端Prom对应trace_count_total、span_count_total、span_success_rate

Trace Span属性

gen_ai.resource.id

gen_ai.resource.type

链路平均耗时

完整链路消耗的平均时间。

gen_ai.client.operation.duration

注:后端Prom对应client_operation_duration_seconds

Trace Span属性

gen_ai.resource.id

Skill数 / Skill调用次数 / Skill调用数排行(Top5)

Skill数:当前应用关联的Skill数量;Skill调用次数:所选时间段内Skill被调用的次数;Top5排行:按调用次数的排行。

gen_ai.skill.call.count

Metric(Counter)

gen_ai.resource.id, gen_ai.skill.name, domain.id

Skill调用成功率 / Skill调用成功率排行(Top5)

Skill调用成功率:成功调用数占总调用数的比例(成功率=成功数/调用数);Top5排行:按成功率的排行。

gen_ai.skill.call.count

Metric(Counter)

gen_ai.resource.id, gen_ai.skill.name, domain.id, gen_ai.call.status

Skill调用平均耗时 / Skill调用平均耗时排行(Top5)

Skill调用平均耗时:调用总耗时/调用总数;Top5排行:按平均耗时的排行。

gen_ai.skill.duration

Metric(Histogram)

gen_ai.resource.id, gen_ai.skill.name, domain.id

工具调用次数 / 调用数排行 (Top5)

工具被调用的总次数;Top5:按调用次数排行

gen_ai.client.tool_call.total

Metric (Counter)

gen_ai.resource.id, gen_ai.tool.name, tool.type, gen_ai.call.status

工具调用平均耗时 / 耗时排行 (Top5)

工具调用的平均耗时;Top5:按平均耗时排行

gen_ai.client.tool_call.duration

Metric (Histogram)

gen_ai.resource.id, tool.name, tool.type, gen_ai.call.status

工具调用成功率 / 成功率排行 (Top5)

工具调用成功率:成功调用数占总调用数的比例(成功率 = 成功数 / 调用数);Top5:按成功率排行

gen_ai.client.tool_call.total

Metric (Counter)

gen_ai.resource.id, tool.name, tool.type, gen_ai.call.status

相关文档