Files
proffesor-for-testing__agen…/docs/telemetry-cli-commands.md
Profa 108676e602 feat: Phase 2 complete - Instrumentation, evaluation, voting, and CLI
Phase 2 Implementation (95% complete):
- All 12 planned deliverables implemented
- 5/5 validation criteria passing (VC1-VC5)
- 0 TypeScript errors, 0 critical bugs
- Comprehensive documentation (14 files)

Core Infrastructure:
- Agent lifecycle instrumentation (agent.ts, task.ts)
- Memory operation instrumentation (memory.ts) with SwarmMemoryManager integration
- Token tracking and cost calculation (CostTracker)
- 4 clause evaluators (AST, metric, pattern, semantic)
- Multi-agent voting protocol with consensus algorithms
- Distributed trace propagation with OTEL

CLI Commands (Phase 3/4 completed early):
- Telemetry: status, metrics, trace, export-prometheus
- Constitution: validate, list, show, evaluate

Validation:
- VC1: Agent trace retrieval ✅
- VC2: Token tracking ✅
- VC3: Clause evaluation ✅
- VC4: Multi-agent voting ✅
- VC5: Memory operation instrumentation ✅

Tests:
- 5 validation scripts (790+ LOC)
- 13+ unit tests
- Integration tests for SwarmMemoryManager
- All tests passing

Documentation:
- MEMORY-TS-ANALYSIS.md (10+ pages deep analysis)
- PHASE2-FINAL-STATUS.md (comprehensive status)
- BRUTAL-HONESTY-REVIEW-PHASE2.md (technical review)
- SESSION-SUMMARY.md (achievements summary)
- CLI documentation (telemetry + constitution)
- Memory instrumentation guides (integration + examples)

Files Created (60+):
- Instrumentation: 4 files (agent, task, memory, index)
- Evaluators: 6 files (AST, metric, pattern, semantic, base, index)
- Voting: 6 files (protocol, panel, consensus, orchestrator, types, index)
- Validation: 5 scripts
- Documentation: 14+ files
- Tests: 10+ test files
- CLI: 2 command files

What's Left (5%):
- CLI integration testing against real OTEL collector
- Real-world validation with production agent workflows

Ready for Phase 3: ✅ Dashboards & Visualization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 07:52:51 +00:00

9.6 KiB

Telemetry CLI Commands

Overview

The telemetry CLI commands provide comprehensive monitoring and querying capabilities for the Agentic QE Fleet's OpenTelemetry instrumentation, including metrics, traces, token usage, and cost tracking.

Commands

aqe telemetry status

Show the current telemetry configuration and initialization status.

aqe telemetry status
aqe telemetry status --json

Output includes:

  • Initialization status
  • Service name and version
  • Environment configuration
  • OTLP endpoint configuration
  • Active exporters (console, gRPC, auto-instrumentation)
  • Trace sample rate and metric export interval

Example:

📊 Telemetry Status

✅ Initialized: Yes

🔧 Configuration:
  Service:     agentic-qe-fleet v1.8.4
  Environment: development
  OTLP:        http://localhost:4317
  Metrics:     http://localhost:4317

📤 Exporters:
  Console:     ❌ Disabled
  gRPC:        ✅ Enabled
  Auto-Instr:  ✅ Enabled

⚙️  Settings:
  Trace Sample Rate: 100%
  Metric Interval:   60s

aqe telemetry metrics [metric-name]

Query and display various metrics. If no metric name is provided, shows a summary of all metrics.

# Show all metrics
aqe telemetry metrics

# Show specific metric type
aqe telemetry metrics tokens
aqe telemetry metrics cost
aqe telemetry metrics system

# Filter by agent
aqe telemetry metrics --agent test-gen-001

# Output as JSON
aqe telemetry metrics --json

Metric Types:

tokens - Token Usage

Shows LLM token consumption including:

  • Input tokens
  • Output tokens
  • Cache write tokens (Anthropic)
  • Cache read tokens (Anthropic)
  • Total tokens

cost - Cost Breakdown

Shows cost analysis including:

  • Input cost ($)
  • Output cost ($)
  • Cache write cost ($)
  • Cache read cost ($)
  • Total cost ($)
  • Cache savings ($ and %)

system - System Metrics

Shows system resource usage including:

  • Memory usage (heap, RSS)
  • CPU usage (user, system)
  • Process information (PID, Node version, platform)
  • Uptime

Example:

📊 Fleet Metrics Summary

🌐 Fleet-Wide:
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ (index)      │ Input        │ Output       │ Total        │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ Total Tokens │ '245,892'    │ '52,134'     │ '298,026'    │
│ Total Cost   │ '$0.7377'    │ '$0.7820'    │ '$1.5197'    │
└──────────────┴──────────────┴──────────────┴──────────────┘
💰 Cache Savings: $0.2341

🤖 Per-Agent Breakdown:
┌───────────────┬──────────┬────────────┬────────────┬─────────────────────────────┐
│ (index)       │ Tokens   │ Cost       │ Provider   │ Model                       │
├───────────────┼──────────┼────────────┼────────────┼─────────────────────────────┤
│ test-gen-001  │ '145,892'│ '$0.8234'  │ 'anthropic'│ 'claude-sonnet-4-5-2025...' │
│ coverage-002  │ '98,134' │ '$0.4963'  │ 'anthropic'│ 'claude-sonnet-4-5-2025...' │
│ security-003  │ '54,000' │ '$0.2000'  │ 'anthropic'│ 'claude-3-5-haiku-20241...' │
└───────────────┴──────────┴────────────┴────────────┴─────────────────────────────┘

aqe telemetry trace [trace-id]

View distributed traces. Requires OTLP backend configuration (Jaeger, Zipkin, Grafana Tempo).

# View specific trace
aqe telemetry trace abc123def456

# View recent traces by agent
aqe telemetry trace --agent test-generator --limit 10

# Output as JSON
aqe telemetry trace --json

Note: Trace viewing requires:

  1. An OTLP collector or backend (Jaeger, Zipkin, Grafana Tempo)
  2. OTEL_EXPORTER_OTLP_ENDPOINT environment variable configured
  3. Fleet restarted with telemetry enabled

Example backends:


aqe telemetry export-prometheus

Export metrics in Prometheus format for integration with Prometheus monitoring.

aqe telemetry export-prometheus > metrics.txt

Output format:

# HELP aqe_fleet_tokens_total Total tokens consumed by fleet
# TYPE aqe_fleet_tokens_total counter
aqe_fleet_tokens_total{type="input"} 245892
aqe_fleet_tokens_total{type="output"} 52134

# HELP aqe_fleet_cost_total Total cost incurred by fleet
# TYPE aqe_fleet_cost_total counter
aqe_fleet_cost_total 1.5197

# HELP aqe_fleet_cache_savings_total Total cache savings
# TYPE aqe_fleet_cache_savings_total counter
aqe_fleet_cache_savings_total 0.2341

aqe_agent_tokens_total{agent_id="test-gen-001",provider="anthropic",model="claude-sonnet-4",type="input"} 145892
aqe_agent_tokens_total{agent_id="test-gen-001",provider="anthropic",model="claude-sonnet-4",type="output"} 24567
aqe_agent_cost_total{agent_id="test-gen-001",provider="anthropic",model="claude-sonnet-4"} 0.8234

Integration with OpenTelemetry

Environment Variables

Configure telemetry behavior with these environment variables:

# OTLP endpoint for traces and metrics
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# Separate metrics endpoint (optional)
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metrics

# Protocol: http/protobuf or grpc (default: grpc)
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf

# Enable console export for debugging
export OTEL_CONSOLE_EXPORT=true

# Trace sample rate (0.0 to 1.0)
export OTEL_TRACES_SAMPLER_ARG=1.0

# Metric export interval (milliseconds)
export OTEL_METRIC_EXPORT_INTERVAL=60000

# Enable debug logging
export OTEL_LOG_LEVEL=debug

Setting up OTLP Collector

Option 1: Jaeger All-in-One

docker run -d --name jaeger \
  -p 4317:4317 \
  -p 4318:4318 \
  -p 16686:16686 \
  jaegertracing/all-in-one:latest

Then access Jaeger UI at http://localhost:16686

Option 2: OpenTelemetry Collector + Jaeger

# otel-collector-config.yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  jaeger:
    endpoint: jaeger:14250
    tls:
      insecure: true
  prometheus:
    endpoint: "0.0.0.0:8889"

service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [jaeger]
    metrics:
      receivers: [otlp]
      exporters: [prometheus]
docker run -d -p 4317:4317 -p 4318:4318 -p 8889:8889 \
  -v $(pwd)/otel-collector-config.yaml:/etc/otel-collector-config.yaml \
  otel/opentelemetry-collector:latest \
  --config=/etc/otel-collector-config.yaml

Usage Examples

Monitor Token Usage During Test Generation

# Run test generation
aqe generate tests src/services/user.ts

# Check token usage
aqe telemetry metrics tokens

# Check costs
aqe telemetry metrics cost

Export Metrics to Prometheus

# Start Prometheus scraping
aqe telemetry export-prometheus | curl --data-binary @- http://localhost:9091/metrics/job/aqe-fleet

# Or save to file for manual inspection
aqe telemetry export-prometheus > /tmp/aqe-metrics.txt

Monitor System Resources

# Watch system metrics in real-time
watch -n 2 'aqe telemetry metrics system'

Query Specific Agent Performance

# Get metrics for specific agent
aqe telemetry metrics --agent test-gen-001 --json | jq '.cost'

# Export to CSV
aqe telemetry metrics --json | jq -r '.agents[] | [.id, .cost.totalCost] | @csv'

Performance Metrics

The telemetry system tracks:

  1. Token Metrics

    • Input/output token counts
    • Cache utilization (Anthropic models)
    • Per-agent and fleet-wide totals
  2. Cost Metrics

    • Real-time cost tracking per API call
    • Cache savings calculations
    • Multi-provider cost comparison
  3. System Metrics

    • Memory usage (heap, RSS)
    • CPU utilization
    • Process information
  4. Quality Metrics (via OpenTelemetry)

    • Test execution duration
    • Coverage percentages
    • Defect density
    • Quality gate pass rates

Troubleshooting

No Metrics Available

If metrics show zeros:

# Initialize telemetry
aqe init

# Run some agents
aqe generate tests src/

# Check metrics again
aqe telemetry metrics

Trace Viewing Not Working

# Check if OTLP endpoint is configured
aqe telemetry status

# Set OTLP endpoint
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# Restart fleet
aqe start

High Token Costs

# Check cost breakdown
aqe telemetry metrics cost

# Identify expensive agents
aqe telemetry metrics --json | jq '.agents | sort_by(.cost.totalCost) | reverse | .[0:5]'

# Consider using cheaper models via routing
aqe routing enable