- Counters: Monotonically increasing values (e.g., request counts, token usage)
- Histograms: Value distributions (e.g., latency, token counts)
- UpDownCounters: Values that can increase or decrease (e.g., active sessions)
- Console: Print metrics to console for debugging
- OTLP: Export to OpenTelemetry Protocol collectors (Jaeger, Grafana, etc.)
- Prometheus: Register metrics with prometheus_client registry for scraping
- MELLEA_METRICS_ENABLED: Enable/disable metrics collection (default: false)
- OTEL_SERVICE_NAME: Service name for metrics (default: mellea)
- MELLEA_METRICS_CONSOLE: Print metrics to console (default: false)
- MELLEA_METRICS_OTLP: Enable OTLP metrics exporter (default: false)
- OTEL_EXPORTER_OTLP_ENDPOINT: OTLP endpoint for all signals (optional)
- OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: Metrics-specific endpoint (optional, overrides general)
- OTEL_METRIC_EXPORT_INTERVAL: Export interval in milliseconds (default: 60000)
- MELLEA_METRICS_PROMETHEUS: Enable Prometheus metric reader (default: false)
Functions
FUNC create_counter
- Total number of requests
- Total tokens processed
- Total errors encountered
name: Metric name (e.g., “mellea.requests.total”)description: Human-readable description of what this metric measuresunit: Unit of measurement (e.g., “1” for count, “ms” for milliseconds)
- Counter instrument (or no-op if metrics disabled)
FUNC create_histogram
- Request latency
- Token counts per request
- Response sizes
name: Metric name (e.g., “mellea.request.duration”)description: Human-readable descriptionunit: Unit of measurement (e.g., “ms”, “tokens”, “bytes”)
- Histogram instrument (or no-op if metrics disabled)
FUNC create_up_down_counter
- Active sessions
- Items in a queue
- Memory usage
name: Metric name (e.g., “mellea.sessions.active”)description: Human-readable descriptionunit: Unit of measurement
- UpDownCounter instrument (or no-op if metrics disabled)
FUNC is_metrics_enabled
- True if metrics are enabled, False otherwise
FUNC record_token_usage_metrics
input_tokens: Number of input tokens (prompt tokens), or None if unavailableoutput_tokens: Number of output tokens (completion tokens), or None if unavailablemodel: Model identifier (e.g., “gpt-4”, “llama2:7b”)backend: Backend class name (e.g., “OpenAIBackend”, “OllamaBackend”)system: Gen-AI system name (e.g., “openai”, “ollama”, “watsonx”)