-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
status:todoPlanned but not startedPlanned but not started
Description
🔍 发现的问题 / 原始需求描述
现有指标依赖日志打点(如 a2a_stream_requests_total),缺乏标准化的 Prometheus 抓取接口和 OpenTelemetry 链路追踪支持。
🛠️ 详细实施方案
- 涉及文件:
src/opencode_a2a_server/server/application.py - 核心逻辑:
- 引入
prometheus_client库,并在 A2A 服务器上暴露可选的/metrics接口。 - 支持 OpenTelemetry 的
TraceParent头部透传,关联 A2A 请求与 OpenCode 上游的内部追踪。
- 引入
- 示例代码:
from prometheus_client import Counter, generate_latest A2A_REQUESTS = Counter('a2a_requests_total', 'Total A2A requests', ['method']) @router.get("/metrics") async def metrics(): return Response(content=generate_latest(), media_type="text/plain")
🧪 回归测试建议
- 启动服务后使用
curl /metrics确认指标数据正确生成。 - 验证日志中的 trace_id 能正确在 A2A 层与 OpenCode 层对应上。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
status:todoPlanned but not startedPlanned but not started