Skip to content

[Priority: Low] [Feature/Ops] 增强结构化指标监控与链路追踪支持 #277

@liujuanjuan1984

Description

@liujuanjuan1984

🔍 发现的问题 / 原始需求描述

现有指标依赖日志打点(如 a2a_stream_requests_total),缺乏标准化的 Prometheus 抓取接口和 OpenTelemetry 链路追踪支持。

🛠️ 详细实施方案

  • 涉及文件: src/opencode_a2a_server/server/application.py
  • 核心逻辑:
    1. 引入 prometheus_client 库,并在 A2A 服务器上暴露可选的 /metrics 接口。
    2. 支持 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 层对应上。

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:todoPlanned but not started

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions