Skip to content

Platform metrics

Metric names include the Prometheus _total and _seconds suffixes. For the memory services, see Memory metrics.

ComponentPortDiscovery
Facade container8081, named metricsPod container port named metrics
Runtime container9001, named metricsPod container port named metrics
Policy broker sidecar (Enterprise)8091, named metricsPod container port named metrics
Eval worker9090Pod annotations prometheus.io/scrape, prometheus.io/port, prometheus.io/path
Arena worker (Enterprise)9090Pod annotations prometheus.io/scrape, prometheus.io/port, prometheus.io/path
Session API9090Pod annotations prometheus.io/scrape, prometheus.io/port, prometheus.io/path

Agent pods carry no prometheus.io/* annotations. The bundled Prometheus discovers them with the omnia-agents job, which keeps pods labelled omnia.altairalabs.ai/component=agent and their container ports named metrics. An external Prometheus Operator discovers them with the PodMonitor that podMonitor.enabled: true renders.

Every series from the facade, runtime and policy broker carries the agent and namespace labels. The runtime’s PromptKit SDK series also carry promptpack_name; omnia_runtime_info does not.

MetricTypeLabelsMeaning
omnia_agent_connections_activeGaugenoneActive WebSocket connections
omnia_agent_connections_totalCounternoneWebSocket connections since startup
omnia_agent_sessions_activeGaugenoneActive sessions
omnia_agent_session_storeGaugemode1 for the session store in use (httpclient or none). none means no session-api archive is configured, so the facade records no session, token or cost data.
omnia_agent_requests_inflightGaugenoneRequests being processed (pending LLM calls)
omnia_agent_requests_totalCounterstatus, variantRequests processed. status is success or error.
omnia_agent_request_duration_secondsHistogramhandler, variantRequest processing time
omnia_agent_messages_received_totalCounternoneWebSocket messages received
omnia_agent_messages_sent_totalCounternoneWebSocket messages sent

variant is stable or candidate and distinguishes the two sides of a rollout.

The runtime registers the PromptKit SDK collector under the omnia prefix.

MetricTypeLabelsMeaning
omnia_pipeline_duration_secondsHistogramstatusPipeline execution time
omnia_provider_requests_totalCounterprovider, model, source, statusLLM provider calls
omnia_provider_request_duration_secondsHistogramprovider, model, sourceLLM provider call time
omnia_provider_input_tokens_totalCounterprovider, model, sourceInput tokens sent
omnia_provider_output_tokens_totalCounterprovider, model, sourceOutput tokens received
omnia_provider_cached_tokens_totalCounterprovider, model, sourceCached tokens
omnia_provider_cost_totalCounterprovider, model, sourceCost in USD
omnia_tool_calls_totalCountertool, statusTool calls. status is success or error; a call whose backend failed, timed out or was refused by the circuit breaker is an error.
omnia_tool_call_duration_secondsHistogramtoolTool call time
omnia_validations_totalCountervalidator, validator_type, statusValidation checks. status is passed or failed.
omnia_validation_duration_secondsHistogramvalidator, validator_typeValidation time
omnia_runtime_infoGaugenoneAlways 1; confirms the runtime is scraped

The collector also emits omnia_tts_*, omnia_stt_*, omnia_embedding_*, omnia_image_gen_* and omnia_inference_* families with the same provider, model and source labels.

The operator deploys one eval worker per service group when a non-PromptKit, eval-enabled AgentRuntime exists in the workspace. It also deploys one for a PromptKit agent whose service group sets evalWorker.enabled.

MetricTypeLabelsMeaning
omnia_eval_worker_events_received_totalCounterevent_typeSession events consumed from Redis Streams
omnia_eval_worker_event_processing_duration_secondsHistogramevent_typeTime to process one stream event
omnia_eval_worker_stream_lagGaugestreamPending messages per Redis stream
omnia_eval_worker_evals_executed_totalCountereval_type, trigger, statusEval executions. status is success or error.
omnia_eval_worker_eval_duration_secondsHistogrameval_type, triggerEval execution time
omnia_eval_worker_evals_sampled_totalCountereval_type, decisionSampling decisions: sampled or skipped
omnia_eval_worker_evals_skipped_suppressed_totalCountertriggerEvals skipped because the session content was suppressed for an opted-out subject
omnia_eval_worker_results_written_totalCounterstatusEval results written to session-api

Enterprise. Each ArenaRun’s worker pods serve these on /metrics. The job_name label holds the ArenaRun name.

MetricTypeLabelsMeaning
omnia_arena_work_items_totalCounterjob_name, statusWork items processed. status is pass or fail.
omnia_arena_work_item_duration_secondsHistogramjob_nameWork item duration (0.1 s to 600 s buckets)
omnia_arena_turn_latency_secondsHistogramjob_name, scenario, providerThe work item’s duration, per scenario and provider
omnia_arena_ttft_secondsHistogramjob_name, scenario, providerTime to first token, when the item reports one
omnia_arena_trials_totalCounterjob_name, scenario, provider, statusTrials by outcome. status is pass or fail.
omnia_arena_errors_totalCounterjob_name, provider, error_typeErrors by type
omnia_arena_tokens_totalCounterjob_name, provider, directionTokens. direction is input or output.
omnia_arena_active_vusGaugenoneActive virtual users
omnia_arena_queue_itemsGaugestatusQueue items by status: pending, processing, completed or failed
omnia_arena_queue_operations_totalCounteroperation, statusQueue operations. operation is push, pop, ack, nack, complete_item or fail_item. status is success or error.
omnia_arena_queue_operation_duration_secondsHistogramoperationQueue operation time
omnia_arena_queue_jobs_activeGaugenoneActive jobs
omnia_arena_queue_retries_totalCounternoneItem retry attempts

For queries and an alert on failing work items, see Monitor Arena jobs.

MetricTypeLabelsMeaning
omnia_session_api_requests_totalCountermethod, route, status_codeHTTP requests
omnia_session_api_request_duration_secondsHistogrammethod, route, status_codeHTTP request time
omnia_session_api_events_published_totalCounterstatusRedis stream publish attempts. status is success or error.
omnia_session_api_event_publish_duration_secondsHistogramnoneTime to publish one event to Redis Streams

Enterprise. The broker sidecar serves these on /metrics.

MetricTypeLabelsMeaning
omnia_toolpolicy_decisions_totalCounteroutcome, tool_registry, policyToolPolicy decisions. outcome is allowed, denied, would_deny or error. policy is the ToolPolicy that produced the decision: the one that granted an allow or refused a deny. It is empty when no ToolPolicy matched the call, when no policy granted it (no-matching-permit), and when only audit-mode policies matched and none would deny.
omnia_toolpolicy_decision_duration_secondsHistogramnoneBroker decision time (0.5 ms to 0.5 s buckets)
omnia_toolpolicy_active_policiesGaugenoneToolPolicies compiled and loaded by the broker

The metrics carry no per-rule detail. The rule that fired is in the broker’s policy_decision log line. See Policy engine.

Runtime spans use the tracer omnia-runtime and the service name omnia-runtime-<agent>.

SpanAttributes
omnia.runtime.conversation.turnsession.id, omnia.turn.index, omnia.promptpack.name, omnia.promptpack.version, gen_ai.usage.input_tokens, gen_ai.usage.output_tokens, gen_ai.usage.cost, gen_ai.prompt.length, gen_ai.response.length
omnia.runtime.function.invoke (function mode)omnia.invocation.id, omnia.mode, omnia.promptpack.name, omnia.promptpack.version
genai.chatgen_ai.system, gen_ai.operation.name, gen_ai.request.model, gen_ai.usage.input_tokens, gen_ai.usage.output_tokens, gen_ai.usage.cost
omnia.tool.calltool.name, tool.registry.name, tool.registry.namespace, tool.handler.name, tool.handler.type, tool.duration_ms, tool.request.bytes, tool.response.bytes

A failed tool call sets the span status to error and records an exception event. The facade emits omnia.facade.message and omnia.facade.a2a.message; SERVICES.md in the repository root lists the full inventory.

VariableMeaningDefault
OMNIA_TRACING_ENABLEDEnables OpenTelemetry exportfalse
OMNIA_TRACING_ENDPOINTOTLP gRPC endpoint (host:port)empty
OMNIA_TRACING_SAMPLE_RATERoot sampling rate, 0.0 to 1.0. 0 samples no root spans.1.0
OMNIA_TRACING_INSECUREDisables TLS for the OTLP connectionfalse

The operator sets OMNIA_TRACING_ENABLED, OMNIA_TRACING_ENDPOINT and OMNIA_TRACING_INSECURE on the facade and runtime containers when the chart value tracing.enabled is true and an endpoint resolves.