!!! note "Generated page"
scripts/docs/gen_metrics.py builds this page from the code. Text that needs a person lives in scripts/docs/descriptions.yml. Edit that file, not this page.
All metrics go through the helpers in common/lib/metrics.py. They publish only when OTEL_EXPORTER_OTLP_ENDPOINT is set, and always through the OTLP gRPC exporter. OTEL_METRIC_EXPORT_INTERVAL sets the export interval. Metrics from OpenTelemetry auto-instrumentation are not listed.
The code emits 58 metric names.
| Metric | Type | Emitted in | Description |
|---|---|---|---|
conserver.api.count_vcons_enqueued |
counter | api/api.py |
vCons the API added to an ingress list. Attributes are ingress_list and source, which is new, external, reingress or dlq_reprocess. |
conserver.dlq.count |
counter | common/lib/queue.py |
vCons moved to a dead letter queue, ingress or storage. Attribute is queue_name. |
conserver.ingress_list.length |
observable gauge | common/lib/queue_metrics.py |
Current LLEN of each configured ingress list and its dead letter queue. Attributes are ingress_list and kind, which is ingress or dlq. |
conserver.lib.vcon_redis.get_vcon_not_found |
counter | common/lib/vcon_redis.py |
A VconRedis.get_vcon call found the vCon in neither Redis nor storage. |
conserver.lib.vcon_redis.get_vcon_redis_miss |
counter | common/lib/vcon_redis.py |
A VconRedis.get_vcon call missed Redis. |
conserver.lib.vcon_redis.get_vcon_storage_hit |
counter | common/lib/vcon_redis.py |
A VconRedis.get_vcon call missed Redis and found the vCon in storage. |
conserver.link.count |
counter | conserver/main.py |
Link runs. Attributes are link_name and outcome, which is success, halt or error. |
conserver.link.datatrails.event_creation_failures |
counter | conserver/links/datatrails/__init__.py |
Failed DataTrails event creation. |
conserver.link.deepgram.confidence |
histogram | conserver/links/deepgram_link/__init__.py |
Deepgram transcript confidence. Not recorded when the link goes through a LiteLLM proxy. |
conserver.link.deepgram.transcription_failures |
counter | conserver/links/deepgram_link/__init__.py |
Failed Deepgram transcriptions, including results below minimum_confidence. |
conserver.link.deepgram.transcription_time |
histogram | conserver/links/deepgram_link/__init__.py |
Deepgram transcription time in seconds. |
conserver.link.diet.media_post_failures |
counter | conserver/links/diet/__init__.py |
Failed media posts from the diet link. |
conserver.link.execution_time |
histogram | conserver/main.py |
Link execution time in seconds. Attributes are link.name and chain.name. |
conserver.link.groq_whisper.transcription_failures |
counter | conserver/links/groq_whisper/__init__.py |
Failed Groq Whisper transcriptions. |
conserver.link.groq_whisper.transcription_time |
histogram | conserver/links/groq_whisper/__init__.py |
Groq Whisper transcription time in seconds. |
conserver.link.hugging_face_whisper.transcription_failures |
counter | conserver/links/hugging_face_whisper/__init__.py |
Failed Hugging Face Whisper transcriptions. |
conserver.link.hugging_face_whisper.transcription_time |
histogram | conserver/links/hugging_face_whisper/__init__.py |
Hugging Face Whisper transcription time in seconds. |
conserver.link.huggingface.llm_failures |
counter | conserver/links/hugging_llm_link/__init__.py |
Failed Hugging Face LLM calls. |
conserver.link.huggingface.llm_time |
histogram | conserver/links/hugging_llm_link/__init__.py |
Hugging Face LLM call time in seconds. |
conserver.link.jq.filter_errors |
counter | conserver/links/jq_link/__init__.py |
Errors applying the jq_link filter. |
conserver.link.jq.string_body_array_retries |
counter | conserver/links/jq_link/__init__.py |
Filter retries with string-only body arrays after a type error. |
conserver.link.jq.vcon_filtered_out |
counter | conserver/links/jq_link/__init__.py |
vCons the jq_link filter stopped. |
conserver.link.openai.analysis_failures |
counter | conserver/links/analyze/__init__.pyconserver/links/analyze_and_label/__init__.pyconserver/links/analyze_vcon/__init__.py |
Failed analysis calls in the analyze, analyze_and_label and analyze_vcon links. |
conserver.link.openai.analysis_time |
histogram | conserver/links/analyze/__init__.pyconserver/links/analyze_and_label/__init__.pyconserver/links/analyze_vcon/__init__.py |
Analysis call time in seconds in the analyze, analyze_and_label and analyze_vcon links. |
conserver.link.openai.engagement_analysis_failures |
counter | conserver/links/detect_engagement/__init__.py |
Failed detect_engagement analysis calls. |
conserver.link.openai.engagement_analysis_time |
histogram | conserver/links/detect_engagement/__init__.py |
detect_engagement analysis time in seconds. |
conserver.link.openai.engagement_detected |
counter | conserver/links/detect_engagement/__init__.py |
Conversations detect_engagement found engaged. Other results add 0. |
conserver.link.openai.evaluation_failures |
counter | conserver/links/check_and_tag/__init__.py |
Failed check_and_tag evaluations. |
conserver.link.openai.evaluation_time |
histogram | conserver/links/check_and_tag/__init__.py |
check_and_tag evaluation time in seconds. |
conserver.link.openai.invalid_json |
counter | conserver/links/analyze_vcon/__init__.py |
Invalid JSON responses in analyze_vcon. |
conserver.link.openai.json_parse_failures |
counter | conserver/links/analyze_and_label/__init__.py |
Responses analyze_and_label could not parse as JSON. |
conserver.link.openai.labels_added |
counter | conserver/links/analyze_and_label/__init__.py |
Labels analyze_and_label added as tags. |
conserver.link.openai.tags_applied |
counter | conserver/links/check_and_tag/__init__.py |
Tags check_and_tag applied. |
conserver.link.openai.transcription_failures |
counter | conserver/links/openai_transcribe/__init__.py |
Failed openai_transcribe transcriptions. |
conserver.link.openai.transcription_time |
histogram | conserver/links/openai_transcribe/__init__.py |
openai_transcribe transcription time in seconds. |
conserver.link.sampler.sampled_in |
counter | conserver/links/sampler/__init__.py |
vCons the sampler link kept. |
conserver.link.sampler.sampled_out |
counter | conserver/links/sampler/__init__.py |
vCons the sampler link dropped. |
conserver.link.scitt.registration_failures |
counter | conserver/links/scitt/__init__.py |
Failed SCITT statement registrations. |
conserver.link.scitt.statement_creation_failures |
counter | conserver/links/scitt/__init__.py |
Failed SCITT signed statement creation. |
conserver.link.slack.fallback_channel_used |
counter | conserver/links/post_analysis_to_slack/__init__.py |
Posts that failed on the target channel. The link then sends a notice to default_channel_name and raises. |
conserver.link.slack.post_failures |
counter | conserver/links/post_analysis_to_slack/__init__.py |
Failed Slack posts. |
conserver.link.tag_router.routed_count |
counter | conserver/links/tag_router/__init__.py |
vCons routed to at least one list. |
conserver.link.tag_router.routes_matched |
counter | conserver/links/tag_router/__init__.py |
Tag matches, one per target list. The route attribute names the list. |
conserver.link.webhook.no_urls_configured |
counter | conserver/links/webhook/__init__.py |
Webhook link runs with no URLs configured. |
conserver.link.webhook.post_failures |
counter | conserver/links/webhook/__init__.py |
Webhook link posts that raised an exception. |
conserver.main_loop.count_vcons_processed |
counter | conserver/main.py |
vCons that left a chain without an exception, including those a link halted. Attribute is chain.name. |
conserver.main_loop.count_vcons_received |
counter | conserver/main.py |
vCons popped from an ingress list. Attribute is ingress_list. |
conserver.main_loop.vcon_processing_time |
histogram | conserver/main.py |
Chain processing time in seconds, per vCon that left a chain without an exception, including those a link halted. Attribute is chain.name. |
conserver.redis.memory_used_bytes |
observable gauge | common/lib/queue_metrics.py |
Redis used_memory from INFO memory, in bytes. |
conserver.storage.count |
counter | conserver/main.py |
Storage writes. Attributes are backend and outcome, which is success or error. |
conserver.storage.duration_ms |
histogram | conserver/main.py |
Storage write time in milliseconds. Attributes are backend and outcome. |
conserver.storage.milvus.embedding_failures |
counter | common/storage/milvus/__init__.py |
Failed embedding calls in the milvus adapter. |
conserver.storage.milvus.embedding_time |
histogram | common/storage/milvus/__init__.py |
Embedding call time in seconds in the milvus adapter. |
conserver.storage.milvus.storage_failures |
counter | common/storage/milvus/__init__.py |
Failed milvus writes. |
conserver.storage.milvus.text_extraction_time |
histogram | common/storage/milvus/__init__.py |
Text extraction time in seconds in the milvus adapter. |
conserver.storage.milvus.vcons_stored |
counter | common/storage/milvus/__init__.py |
vCons written to Milvus. |
conserver.vcons.inflight |
up-down counter | conserver/main.py |
vCons in progress. Attribute is chain.name. |
conserver.webhook.duration |
histogram | common/storage/webhook/__init__.py |
Webhook storage adapter post time in seconds. Attribute is status_code. |