Skip to content

Token Tracking Telemetry

rUv edited this page Aug 13, 2025 · 1 revision

Token Tracking & Telemetry System

Overview

Claude Flow provides comprehensive token tracking and telemetry capabilities to monitor Claude API usage, cost analysis, and performance optimization. This system captures real token consumption data from Claude Code CLI operations.

Features

βœ… Working Features

  • Real Token Tracking: Captures actual Claude API token usage
  • Cost Analysis: Calculates costs based on Claude 3 pricing models
  • Session Monitoring: Real-time token usage monitoring
  • Performance Metrics: Tracks performance across different operation modes
  • Multi-Mode Support: Works with both interactive and non-interactive modes

πŸ”§ Setup Commands

  • analysis setup-telemetry - Configure token tracking
  • analysis token-usage - View comprehensive usage reports
  • analysis claude-monitor - Real-time session monitoring
  • analysis claude-cost - Current session cost analysis

Quick Start

1. Enable Telemetry

./claude-flow analysis setup-telemetry

This command:

  • Sets CLAUDE_CODE_ENABLE_TELEMETRY=1 environment variable
  • Creates .claude-flow/metrics/ directory
  • Initializes token tracking system
  • Creates .env file with telemetry settings

2. Run Commands with Telemetry

Interactive Mode (Standard Usage)

# Interactive mode - telemetry disabled to prevent console interference
./claude-flow swarm "analyze code" --claude

Non-Interactive Mode (Token Tracking Enabled)

# Non-interactive mode - full telemetry with JSON output
./claude-flow swarm "analyze code"

# Hybrid mode - shows API responses with token data
./claude-flow hive-mind spawn "test" --claude --non-interactive

3. View Token Usage

# Basic usage report
./claude-flow analysis token-usage

# Detailed breakdown with cost analysis
./claude-flow analysis token-usage --breakdown --cost-analysis

# Real-time monitoring
./claude-flow analysis claude-monitor

# Current session cost
./claude-flow analysis claude-cost

Implementation Details

Architecture

The token tracking system consists of several components:

  1. claude-telemetry.js: Core telemetry wrapper module
  2. claude-track.js: Background token tracking service
  3. token-tracker.js: Token data processing and storage
  4. analysis.js: Analysis commands and reporting

Token Data Sources

Token data is captured from:

  • Claude API response JSON (non-interactive mode)
  • OpenTelemetry output (when configured)
  • Claude session JSONL files (when accessible)
  • /cost command output

Mode Behavior

Mode Telemetry Status Token Tracking Use Case
Interactive (--claude) Disabled No Smooth CLI experience
Non-Interactive Enabled Yes Batch operations, automation
Hybrid (--claude --non-interactive) Enabled Yes API inspection

Confirmed Working Example

$ ./claude-flow hive-mind spawn "test" --claude --non-interactive

Output includes real token data:

"usage": {
  "input_tokens": 4,
  "cache_creation_input_tokens": 30310,
  "cache_read_input_tokens": 0,
  "output_tokens": 1
}

Cost Tracking

Claude 3 Pricing Models

Model Input (per 1M tokens) Output (per 1M tokens)
Opus $15.00 $75.00
Sonnet $3.00 $15.00
Haiku $0.25 $1.25

Cost Analysis Features

  • Real-time cost calculation
  • Model-specific pricing
  • Cache token differentiation
  • Session-based cost tracking
  • Optimization recommendations

Advanced Usage

Programmatic API

import { runClaudeWithTelemetry } from './claude-telemetry.js';

const result = await runClaudeWithTelemetry(
  ['chat', 'Hello, Claude!'],
  {
    sessionId: 'my-session-123',
    agentType: 'custom-agent'
  }
);

Session Monitoring

import { monitorClaudeSession } from './claude-telemetry.js';

const stopMonitor = await monitorClaudeSession('session-id', 5000);
// Stop monitoring when done
stopMonitor();

Environment Configuration

# Primary telemetry control
export CLAUDE_CODE_ENABLE_TELEMETRY=1

# OpenTelemetry configuration (optional)
export OTEL_METRICS_EXPORTER=console
export OTEL_LOGS_EXPORTER=console
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318

File Locations

Configuration Files

  • .env - Environment variables
  • .claude-flow/metrics/token-usage.json - Token usage data
  • .claude-flow/metrics/performance.json - Performance metrics
  • analysis-reports/token-usage-*.csv - Exported reports

Session Data

  • .claude-flow/metrics/sessions/ - Session-specific metrics
  • .hive-mind/sessions/ - Hive Mind session data

Troubleshooting

No Token Data Showing

  1. Verify telemetry is enabled:

    echo $CLAUDE_CODE_ENABLE_TELEMETRY  # Should output: 1
  2. Use non-interactive mode:

    # Token tracking works in non-interactive mode
    ./claude-flow swarm "test task"
  3. Check token usage file:

    cat .claude-flow/metrics/token-usage.json

Telemetry Interference

If telemetry causes console output issues:

  1. Use non-interactive mode for token tracking
  2. Interactive mode automatically disables telemetry to prevent interference
  3. Hybrid mode (--claude --non-interactive) shows API responses

Reset Token Data

# Clear existing token data
rm -rf .claude-flow/metrics/token-usage.json

# Re-enable telemetry
./claude-flow analysis setup-telemetry

Integration Examples

GitHub Actions

env:
  CLAUDE_CODE_ENABLE_TELEMETRY: '1'
  
steps:
  - name: Setup telemetry
    run: ./claude-flow analysis setup-telemetry
    
  - name: Run task with tracking
    run: ./claude-flow swarm "${{ inputs.task }}"
    
  - name: Report costs
    run: ./claude-flow analysis claude-cost

Automated Cost Monitoring

#!/bin/bash
# Monitor costs during batch operations
./claude-flow analysis claude-monitor &
MONITOR_PID=$!

# Run your Claude operations
./claude-flow swarm "batch task 1"
./claude-flow swarm "batch task 2"

# Stop monitoring
kill $MONITOR_PID

# Generate cost report
./claude-flow analysis token-usage --cost-analysis

Status: Alpha 89

βœ… Completed

  • Token tracking infrastructure implemented
  • Analysis commands functional
  • Telemetry configuration system working
  • Non-interactive mode token capture confirmed
  • Documentation complete

πŸ”„ In Progress

  • JSON output parsing for automatic token capture
  • Session file integration
  • OTLP collector setup for silent telemetry

πŸ“‹ Next Steps

  1. Implement automatic token parsing from JSON output
  2. Add session file monitoring
  3. Create OTLP collector configuration
  4. Add batch operation cost summaries

API Reference

Commands

Command Description Options
analysis setup-telemetry Configure token tracking None
analysis token-usage View token usage report --breakdown, --cost-analysis
analysis claude-monitor Monitor session in real-time --interval <ms>
analysis claude-cost Get current session cost None

Environment Variables

Variable Description Default
CLAUDE_CODE_ENABLE_TELEMETRY Enable token tracking 0
OTEL_METRICS_EXPORTER OpenTelemetry metrics exporter console
OTEL_LOGS_EXPORTER OpenTelemetry logs exporter console

Summary

The token tracking and telemetry system is functional and confirmed working in Claude Flow alpha-89. It successfully captures real Claude API token usage in non-interactive modes and provides comprehensive cost analysis and performance monitoring capabilities.

Key Achievement: Real token data confirmed with actual API usage statistics, including input tokens, output tokens, and cache utilization metrics.

Clone this wiki locally