Agent Skillsarchestra-ai/archestra › archestra-dev-observability

archestra-dev-observability

GitHub

用于规范 Archestra 可观测性配置,包括遵循 OTEL 标准命名追踪指标、管理本地监控栈及配置 LLM/MCP 链路追踪。

.claude/skills/archestra-dev-observability/SKILL.md archestra-ai/archestra

Trigger Scenarios

修改追踪或指标命名 设置本地可观测性环境 调整 OpenTelemetry 相关配置

Install

npx skills add archestra-ai/archestra --skill archestra-dev-observability -g -y
More Options

Non-standard path

npx skills add https://github.com/archestra-ai/archestra/tree/main/.claude/skills/archestra-dev-observability -g -y

Use without installing

npx skills use archestra-ai/archestra@archestra-dev-observability

指定 Agent (Claude Code)

npx skills add archestra-ai/archestra --skill archestra-dev-observability -a claude-code -g -y

安装 repo 全部 skill

npx skills add archestra-ai/archestra --all -g -y

预览 repo 内 skill

npx skills add archestra-ai/archestra --list

SKILL.md

Frontmatter
{
    "name": "archestra-dev-observability",
    "description": "Use when changing Archestra tracing, metrics, OpenTelemetry, Tempo, Grafana, Prometheus, LLM\/MCP spans, observability labels, or local observability setup."
}

Archestra Observability

Use this skill before changing tracing, metrics, span naming, metric labels, or local observability setup.

Run commands from platform/ unless specifically instructed otherwise.

Naming new attributes and metrics

Before introducing any new span attribute or metric name, look it up — do not coin a name from intuition.

  • Span attributes: search the OTEL semantic-convention registry and use the existing attribute verbatim if one fits. Registry: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/ (wider set: https://opentelemetry.io/docs/specs/semconv/registry/attributes/). Example: prompt-cache tokens are gen_ai.usage.cache_read.input_tokens and gen_ai.usage.cache_creation.input_tokens, not a custom archestra.usage.*. Only use an archestra.* name when nothing in the registry fits, and say why in a comment.
  • "Not yet stable" is not a reason to avoid a standard name. The whole gen_ai.* namespace is Development-stability, including the gen_ai.usage.* attributes already emitted here — match that bar, don't custom-namespace to dodge it.
  • Metrics: match the existing llm_* / prom-client family and label names in metrics/; don't introduce a new metric style. Add a label value to an existing metric only if it won't change what current aggregates mean — otherwise add a dedicated metric (cache tokens use a separate llm_cache_tokens_total, not new type values on llm_tokens_total).

Local setup

tilt trigger observability
docker compose -f dev/docker-compose.observability.yml up -d

Both commands are equivalent — the tilt resource wraps the same compose file — and start the full observability stack with pre-configured datasources: Tempo, Loki, OTEL Collector, Prometheus, and Grafana.

Local URLs

  • Tempo API: http://localhost:3200/.
  • Grafana: http://localhost:3002/.
  • Prometheus: http://localhost:9090/.
  • Backend metrics: http://localhost:9050/metrics.

Tracing

  • Follow OTEL GenAI Semantic Conventions (see "Naming new attributes and metrics" — check the registry before adding any attribute): https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/.
  • LLM spans use gen_ai.agent.id, gen_ai.agent.name, gen_ai.provider.name, gen_ai.request.model, gen_ai.operation.name, and archestra.agent.label.<key> for dynamic agent labels.
  • MCP spans use gen_ai.tool.name and mcp.server.name.
  • Team metadata uses the custom archestra.<scope>.team.* namespace (no OTEL registry equivalent), where scope is the principal the teams belong to — agent (the executing agent's teams) or user (the requesting user's teams). archestra.<scope>.team.ids / .names are array-valued (a principal can belong to multiple teams), and archestra.<scope>.team.label.<key> carries team labels merged per key across the principal's teams. Set via setTeamAttributes(span, teams, scope) in observability/tracing/attributes.ts; agent teams come from AgentTeamModel.getTeamLabelInfoForAgent and user teams from TeamModel.getTeamLabelInfoForUser, resolved once per request.
  • Session tracking uses gen_ai.conversation.id from the X-Archestra-Session-Id header.
  • Span names are chat {model}, generate_content {model}, and execute_tool {tool_name}.
  • Agent label keys are fetched from the database on startup and used as dynamic Prometheus metric label dimensions (see Metrics); the tracing SDK's resource carries only service.name/service.version. On spans, agent labels are set per-request via setAgentAttributes.
  • Traces are stored in Grafana Tempo.
  • User identity is tracked with archestra.user.id, archestra.user.email, and archestra.user.name when available.
  • LLM spans include archestra.cost in USD and gen_ai.usage.total_tokens.

Metrics

  • Prometheus metrics llm_request_duration_seconds and llm_tokens_total include provider, model, agent_id, agent_name, agent_type, source, and dynamic agent labels as dimensions — deliberately NOT external_agent_id, which is client-supplied and unbounded and would explode series cardinality. Do not add it back.
  • agent_id is internal.
  • external_agent_id comes from the client-provided X-Archestra-Agent-Id header and is a label only on agent_executions_total.
  • MCP metrics include agent_id, agent_name, and agent_type.
  • Metrics are reinitialized on startup with current label keys from the database.

Version History

  • 3053975 Current 2026-08-12 09:05

Same Skill Collection

.claude/skills/archestra-dev-backend-tests/SKILL.md
.claude/skills/archestra-dev-backend/SKILL.md
.claude/skills/archestra-dev-bench-analysis/SKILL.md
.claude/skills/archestra-dev-e2e/SKILL.md
.claude/skills/archestra-dev-frontend/SKILL.md
.claude/skills/archestra-dev-investigate/SKILL.md
.claude/skills/archestra-dev-llm-providers/SKILL.md
.claude/skills/archestra-dev-migrations/SKILL.md
.claude/skills/archestra-dev-override-sweep/SKILL.md
.claude/skills/archestra-dev-rust-napi/SKILL.md
.claude/skills/archestra-docs-writer/SKILL.md
.claude/skills/archestra-mcp-catalog-entry/SKILL.md
ai-labs/skills/access-request-intake/SKILL.md
ai-labs/skills/cipher-decoder/SKILL.md
ai-labs/skills/sales-ledger/SKILL.md
migration-kit/SKILL.md
.claude/skills/archestra-dev-interactions-migrations/SKILL.md

Metadata

Files
0
Version
3053975
Hash
7a3174ad
Indexed
2026-08-12 09:05

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-12 16:36
浙ICP备14020137号-1 $Гость$