Log数据上报
Log数据用于记录智能体运行过程中产生的日志信息,便于排查异常、追踪运行状态。日志最终写入华为云的LTS(云日志服务)。
AgentArts支持通过API方式接入日志采集:
| 接入方式 | 适用场景 | 说明 |
|---|---|---|
| API接入 | 通用场景,需主动调用LTS接口手动上报日志。 | 在智能体代码中直接调用LTS提供的REST API,主动将日志数据推送至LTS。需要修改业务代码添加上报逻辑,但对智能体的部署环境没有限制。
|
上报的日志数据将写入华为云LTS(云日志服务),LTS会根据日志数量按需计费,详细计费规则请参考LTS计费说明。
API接入
通过调用LTS REST API,在代码中主动上报日志数据。
接入地址
POST {lts_exporter_endpoint}/v2/{project_id}/lts/groups/{lts_group_id}/streams/{lts_stream_id}/tenant/contents URI中的四个路径参数,取值可在平台页面获取,详细获取方法可参考后续步骤:
| 参数 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
| lts_exporter_endpoint | 是 | String | LTS的接入地址。 |
| project_id | 是 | String | 华为云项目ID。 |
| log_group_id | 是 | String | 日志组ID。 |
| log_stream_id | 是 | String | 日志流ID。 每个日志流写入速率最大不能超过100MB/s,超过此规格可能会导致日志丢失。 |
请求头
Content-Type: application/json;charset=UTF-8
X-Auth-Token: {从IAM获取的用户Token} 注意:与Trace/Metric上报使用OTel SDK + 专用Token不同,Log上报使用的是IAM用户Token(X-Auth-Token)进行鉴权,获取方法请参考附录:获取Token。
请求体结构
{
"log_time_ns": 1586850540000000000,
"contents": [
"Fri Feb 1 07:48:04 UTC 2019 0",
"Sat April 18 16:04:04 UTC 2019"
],
"labels": {
"__label__.task_name": "{{agent_id}}",
"__label__.task_type": "{{agent_type}}"
}
} | 参数 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| log_time_ns | Long | 是 | 日志上报时间,UTC时间(纳秒)。上报时间距当前时间不可超过2天,否则日志将被LTS自动删除。 |
| contents | Array of String | 是 | 日志内容,字符串数组,每个元素为一条日志记录,支持一次上报多条。 |
| labels | Object | 是 | 自定义标签,用于日志分类与过滤。 __label__.task_name为必填字段(填写智能体ID),__label__.task_type为必填字段(填写智能体类型,如agent、multiagents、workflow,分别表示单智能体、多智能体、工作流)。 请勿使用LTS内置保留字段作为标签名称,否则可能造成字段名称重复、查询不精确等问题。 |
上报Log数据示例代码
本示例使用手动构造的静态模拟数据,用于首次接入AgentArts时,验证接入地址、鉴权Token、日志组ID及日志流ID是否配置正确,并确认平台能否正常接收日志数据。此阶段使用手动构造的静态数据,不涉及真实的智能体调用。
- 获取上报参数。
- 在AgentArts平台左侧导航栏中选择“运营运维 > 观测”,并进入“智能体列表”页面。
- 单击“智能体接入”,填写智能体名称,并选择类型。类型按实际选择。 图2 智能体接入
- 填写完成后,单击“创建”等待平台自动创建接入信息,记录接入地址、鉴权信息、智能体ID等信息。请妥善保管该信息。
表4 接入信息说明 参数
说明
lts_exporter_endpoint
project_id
log_group_id
log_stream_id
选择“Log上报 > API接入”,平台会提供完整的接入地址,各参数取值地址中均有包含。

__label__.task_name
__label__.task_type
分别表示智能体ID、智能体类型。

- 安装依赖库。
pip install requests==2.31.0 pip install python-dotenv==1.0.0
- 编写日志上报脚本。
import time import requests # 1. 替换为您的真实接入凭证 AGENT_ID = "您的智能体ID" AGENT_TYPE = "您的智能体类型" LTS_ENDPOINT = "从平台复制的完整Log接入地址" X_AUTH_TOKEN = "您的IAM用户Token" # 2. 请求头 HEADERS = { "Content-Type": "application/json;charset=UTF-8", "X-Auth-Token": X_AUTH_TOKEN, } def test_connection(): # 【注意】此处为模拟数据,仅供测试连通性,实际场景需在智能体交互流程中动态上报 payload = { "log_time_ns": int(time.time() * 1e9), "contents": [ "[INFO] 连通性测试日志 - 智能体启动", "[INFO] 连通性测试日志 - 模型调用成功", ], "labels": { "__label__.task_name": AGENT_ID, "__label__.task_type": AGENT_TYPE } } response = requests.post(LTS_ENDPOINT, headers=HEADERS, json=payload) if response.status_code in (200, 201, 204): print("连通性测试成功,请前往AgentArts控制台查看日志数据。") else: print(f"连通性测试失败,状态码:{response.status_code},响应:{response.text}") if __name__ == "__main__": test_connection() - 运行Python脚本,执行测试,验证上报数据。
附录:获取Token
Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。
Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。
Token可通过调用“获取用户Token”接口获取,请求示例如下所示。
username、domainname、project name可登录控制台“我的凭证 > API凭证”页面获取。password为用户密码。
- 伪码
POST https://iam.cn-southwest-2.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //密码 "domain": { "name": "domainname" //账号名 } } } }, "scope": { "project": { "name": "project name" //替换为实际的project name,如cn-southwest-2 } } } } - Python
import requests import json url = "https://iam.cn-southwest-2.myhuaweicloud.com/v3/auth/tokens" payload = json.dumps({ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "cn-southwest-2" } } } }) headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.headers["X-Subject-Token"])
常见问题
- 检查接入参数:确认lts_group_id、lts_stream_id、project_id、lts_exporter_endpoint与接入指南中获取的信息一致。
- 检查鉴权Token:确认X-Auth-Token为有效的IAM用户Token,Token存在24小时有效期,过期后需重新获取。
- 检查labels取值:该字段为必填项,必须填写智能体ID、智能体类型,缺失或填写错误将导致平台无法关联日志至对应智能体。
- 检查时间戳:log_time_ns必须为纳秒级UTC时间戳,且与当前时间相差不超过2天,超出时间范围的日志会被LTS自动删除。
- 等待数据同步:数据上报后通常需要1~2分钟才能在观测页面展示,请稍后刷新查看。