Metrics stability

August 18, 2026 ยท View on GitHub

Last modified: 2026-08-18

Generated from the executable metric registry. Do not hand-edit; run cargo run -q -p sbproxy-observe --bin generate-metrics-stability > docs/metrics-stability.md.

Every metric SBproxy emits, what writes it, and what we promise about its name.

Prefixes

Two name prefixes are sanctioned. sbproxy_ covers the proxy and its gateway surfaces. mesh_ covers the clustering substrate (membership, replication, and cross-node transport); every mesh_ family carries beta name compatibility while that subsystem is young.

Support

stable means production code increments the metric, proven by a drift guard that resolves the writer against the source tree and requires a call site outside tests.

config_only means the family is declared and scraped but nothing increments it. It reads zero, always. No dashboard or alert rule may read one.

Compatibility

stable names will not be renamed or removed without a deprecation period: the replacement ships alongside the original in a minor release, and the original is removed no earlier than the next major. Label sets on stable metrics may gain labels in a minor release; losing one follows the same deprecation path.

beta names are functional and may still be renamed or relabeled in a minor release, with a changelog entry.

alpha names may be renamed, relabeled, or removed in any release.

Deprecation schedule

The tiers above say what may change. This says when, so a cost report built on a stable name can be planned around rather than hoped for.

A stable metric name, or a label on one, is retired in four steps, and every step is visible from outside this repository:

  1. The replacement family ships in a minor release and writes alongside the original. Both carry the same values for the whole window.
  2. That same release marks the original deprecated here and in its changelog entry, naming the replacement and the earliest release that may remove it.
  3. The window stays open for at least two further minor releases and at least 90 days, whichever ends later.
  4. Removal lands in a major release. Never a minor, never a patch.

Gaining a label is not a deprecation and opens no window: new labels go on the end of the set, every existing query keeps matching, and the release notes it. Removing or reordering one renames every series in the family, so it takes all four steps above.

beta and alpha names get no window at all. A beta name changes with a changelog entry in the release that changes it; an alpha name changes without one.

The set of stable names, and the label prefix each one carried at promotion, is frozen in a build guard, so a rename, a removal, or a label reorder fails the build rather than waiting on review to notice.

Catalog

MetricTypeSupportCompatLabelsDescription
mesh_addr_map_updates_totalCounterstablebetakindPeer address map updates driven by gossip learnings, by kind (learned or rewritten).
mesh_anti_entropy_keys_totalCounterstablebetadirectionRecords reconciled by replicated-substrate anti-entropy, by push or pull direction.
mesh_anti_entropy_rounds_totalCounterstablebetanoneCompleted replicated-substrate maintenance rounds (handoff, anti-entropy, tombstone GC).
mesh_cold_start_snapshots_totalCounterstablebetaoutcomeSnapshots encountered during cold-start hydration, by outcome (merged, stale, corrupt).
mesh_compression_coordination_totalCounterstablebetaeventMesh compression session coordination contention and rejected updates, by closed event (contention, lease_expiry, stale_version, fence_rejection).
mesh_crypto_decrypt_failed_totalCounterstablebetakindMesh messages dropped because AEAD decryption failed, by crypto boundary (gossip or transport).
mesh_dead_peers_gc_totalCounterstablebetanoneDead peers removed from the peer table by the garbage collector.
mesh_dissemination_updates_applied_totalCounterstablebetatransitionInbound gossip peer updates that changed local peer state, by transition.
mesh_dissemination_updates_ignored_totalCounterstablebetareasonInbound gossip peer updates dropped without a local state change, by reason.
mesh_dissemination_updates_sent_totalCounterstablebetakindPeer updates piggybacked onto outgoing gossip messages, by carrier (ping or ack).
mesh_enrollment_totalCounterstablebetaoutcome, reasonOne-time cluster enrollment attempts as seen by the enrollment authority, by outcome and bounded failure reason.
mesh_federation_peersGaugestablebetastateKnown federation peer clusters, by state.
mesh_federation_pull_totalCounterstablebetaoutcomeFederation peer pull attempts, by outcome.
mesh_federation_push_totalCounterstablebetaoutcomeFederation leader summary and heartbeat pushes, by outcome.
mesh_gossip_probe_duration_secondsHistogramstablebetatargetGossip probe round-trip time to a peer, in seconds.
mesh_gossip_retry_totalCounterstablebetatargetGossip probe retries against a peer (indirect PING-REQ fan-outs after a direct timeout).
mesh_handoff_keys_totalCounterstablebetaoutcomeReplicated records handed off after ring changes, by outcome (moved or retained).
mesh_node_isolatedGaugestablebetanode_id1 while this node is in split-brain quarantine, 0 when healthy.
mesh_owner_route_totalCounterstablebetaoutcomeOwner-routed typed-state operations, by routing outcome (local, remote, or unreachable).
mesh_peer_countGaugestablebetastatePeer count by membership state, refreshed each SWIM sweep tick.
mesh_peer_evicted_totalCounterstablebetareasonPeers evicted from the membership list and hash ring, by reason.
mesh_peer_state_transitions_totalCounterstablebetafrom, toSWIM peer state transitions observed locally, by prior and new state.
mesh_persistence_bytes_totalCounterstablebetanoneBytes of mesh state written in successful Redis snapshots.
mesh_persistence_snapshots_totalCounterstablebetaoutcomeRedis snapshot writes of mesh state, by outcome.
mesh_probe_direct_success_totalCounterstablebetatargetDirect SWIM pings whose ACK arrived inside the timeout window.
mesh_probe_direct_timeout_totalCounterstablebetatargetDirect SWIM pings that timed out and triggered the indirect fallback.
mesh_probe_indirect_success_totalCounterstablebetatargetIndirect PING-REQ probes that resolved the target alive.
mesh_replica_shard_entriesGaugestablebetanoneRecords held by the local replicated-substrate shard, refreshed each maintenance round.
mesh_replication_read_repairs_totalCounterstablebetanoneStale replicas repaired in line by quorum reads.
mesh_replication_writes_totalCounterstablebetaoutcomeReplicated substrate writes, by coordinator outcome (acked or quorum_failed).
mesh_tombstone_gc_totalCounterstablebetaoutcomeAck-aware tombstone garbage collection decisions (collected or deferred).
mesh_transport_rpc_duration_secondsHistogramstablebetaopSuccessful cross-node cache RPC duration, by operation. Healthy same-zone means sit well under 5ms; a mean near 40ms is the delayed-ACK/Nagle transport stall signature and warrants an alert.
mesh_transport_rpc_errors_totalCounterstablebetakindCross-node cache RPC failures, by transport phase.
sbproxy_a2a_chain_depthHistogramstablebetaroute, specDistribution of A2A chain depth observed at the proxy.
sbproxy_a2a_denied_totalCounterstablebetaroute, reasonA2A hops denied by the a2a policy, labeled by route and reason.
sbproxy_a2a_hops_totalCounterstablebetaroute, spec, decisionA2A hops observed by the proxy, labeled by route, spec, and policy decision.
sbproxy_a2a_methods_totalCounterstablebetaroute, methodA2A 1.0 JSON-RPC methods observed by the proxy, labeled by route and method.
sbproxy_acme_renewal_duration_secondsHistogramstablebetaresultACME renewal full-flow duration, by outcome.
sbproxy_acme_renewals_totalCounterstablebetaresultACME certificate renewal attempts, by outcome.
sbproxy_active_connectionsGaugestablestablenoneCurrent active connections.
sbproxy_agent_budget_decisions_totalCounterstablebetaagent_id, outcomeagent_budget policy verdicts, labeled by agent and outcome.
sbproxy_agent_detect_inference_secondsHistogramstablestablenoneAgent-detect scorer inference latency in seconds.
sbproxy_agent_detect_scoreHistogramstablestablenoneAgent-detect scorer output score, scaled 0-100.
sbproxy_agent_detect_totalCounterstablestableagent_id, provenanceAgent-detect scorer verdicts by agent id and provenance.
sbproxy_agent_skill_digest_mismatch_totalCounterstablebetaskillAgent Skills artifact digest mismatches detected at serve time.
sbproxy_ai_audio_seconds_attributed_totalCounterstablebetaprovider, model, surface, project, feature, team, agent_type, environment, tenant_id, api_key_idAI audio seconds consumed (realtime + audio surfaces), partitioned by attribution tag.
sbproxy_ai_budget_utilization_ratioGaugestablestablescopeBudget utilization as a fraction of the limit; above 1 is over budget.
sbproxy_ai_cache_results_totalCounterstablestableprovider, cache_type, resultAI response cache results.
sbproxy_ai_cascade_tier_outcomes_totalCounterstablebetatier, outcomeCascade routing tier outcomes (accepted
sbproxy_ai_compression_duration_secondsHistogramstablebetatenant_id, api_key_id, lever, outcome, backendAI context compression lever duration in seconds.
sbproxy_ai_compression_lever_totalCounterstablebetatenant_id, api_key_id, lever, outcome, reason, backendAI context compression lever invocations by closed outcome.
sbproxy_ai_compression_ratioHistogramstablebetatenant_id, api_key_id, leverFinal-to-initial SBproxy token-estimate ratio for applied AI context compression levers.
sbproxy_ai_compression_redis_coordination_totalCounterstablebetaeventRedis compression coordination contention and rejected updates.
sbproxy_ai_compression_request_levers_runHistogramstablebetatenant_id, api_key_id, outcome, backendNumber of context compression levers executed per request.
sbproxy_ai_compression_request_tokens_savedHistogramstablebetatenant_id, api_key_id, outcome, backendInitial-to-final reduction in SBproxy's model-aware token estimate once per compression request.
sbproxy_ai_compression_requests_totalCounterstablebetatenant_id, api_key_id, outcome, backend, cache_bypassRequests that executed a non-empty AI context compression pipeline.
sbproxy_ai_compression_selection_totalCounterstablebetatenant_id, source, outcomeAI request compression policy resolutions by closed source and outcome.
sbproxy_ai_compression_state_operation_duration_secondsHistogramstablebetabackend, operation, outcomeExternal AI compression state operation duration in seconds.
sbproxy_ai_compression_state_operations_totalCounterstablebetabackend, operation, outcomeExternal AI compression state operations by backend and closed outcome.
sbproxy_ai_compression_tokens_saved_totalCounterstablebetatenant_id, api_key_id, leverReduction in SBproxy's model-aware token estimate from applied AI context compression levers.
sbproxy_ai_compression_tokens_totalCounterstablebetatenant_id, api_key_id, lever, directionSBproxy model-aware token estimates before and after an applied AI context compression lever.
sbproxy_ai_compression_value_cost_saved_micros_totalCounterstablebetatenant_id, origin, model, lever, token_count_precisionGross known-price target-model input cost avoided by successful AI context compression, in micro-USD.
sbproxy_ai_compression_value_tokens_saved_totalCounterstablebetatenant_id, origin, model, lever, token_count_precisionEstimated target-model input tokens avoided by successful AI context compression.
sbproxy_ai_context_poisoning_findings_totalCounterstablebetarule_id, actionContext-poisoning guardrail findings.
sbproxy_ai_context_poisoning_blocked_totalCounterstablebetanoneRequests blocked by the context-poisoning guardrail (a finding whose configured action is deny).
sbproxy_ai_cost_dollars_attributed_totalCounterstablestableorigin, provider, model, surface, project, feature, team, agent_type, environment, tenant_id, api_key_id, agent_idAI cost in USD, partitioned by attribution tag.
sbproxy_ai_cost_saved_micros_totalCounterstablebetatenant, origin, modelMicro-USD avoided by a semantic-cache hit.
sbproxy_ai_cost_usd_micros_totalCounterstablebetaprovider, model, tenant_idDerived AI request cost in micro-USD.
sbproxy_ai_failovers_totalCounterstablebetafrom_provider, to_provider, reasonProvider failover events.
sbproxy_ai_gateway_decisions_totalCounterstablebetadecision, reasonAI gateway admission decisions, including pre-provider rejections.
sbproxy_ai_guardrail_blocks_totalCounterstablestablecategoryGuardrail block events.
sbproxy_ai_safety_guardrail_verdicts_totalCounterstablebetaguardrail, class, backend, verdictBuilt-in safety guardrail evaluations by class, backend, and verdict.
sbproxy_ai_external_guardrail_verdicts_totalCounterstablebetaprovider, phase, outcomeExternal guardrail evaluations by provider, phase, and outcome.
sbproxy_ai_inter_token_latency_secondsHistogramstablebetaprovider, modelAI streaming average inter-token latency (TPOT).
sbproxy_ai_lb_decisions_totalCounterstablebetastrategy, providerAI router provider selections by strategy.
sbproxy_ai_prefix_affinity_decisions_totalCounterstablebetaoutcomePrefix-affinity selections by cache-location outcome.
sbproxy_ai_prefix_affinity_evictions_totalCounterstablebetareasonEntries evicted from the bounded prefix-affinity table.
sbproxy_ai_quota_pool_fail_open_totalCounterstablebetapoolQuota-pool admissions allowed while the shared backend was unavailable.
sbproxy_ai_quota_pool_overshare_totalCounterstablebetapoolSoft quota-pool admissions beyond a member entitlement.
sbproxy_ai_routing_fallbacks_totalCounterstablebetastrategy, reasonAI routing selections that used an explicit fallback path.
sbproxy_ai_routing_policy_decisions_totalCounterstablebetaoutcome, reason_codeOperator AI routing-policy decisions by outcome and reason code.
sbproxy_ai_model_directory_exclusions_totalCounterstablealphaexclusion_reasonDirectory nodes excluded from model routing, by exclusion reason.
sbproxy_ai_multipart_inspection_skipped_totalCounterstablebetacheck, surfaceRequest-body inspection skipped because the AI request body was multipart, by inspection kind and classified surface.
sbproxy_ai_native_bypass_totalCounterstablebetainbound_format, provider_formatAI requests that bypassed the hub format round-trip when client format matched provider format.
sbproxy_ai_output_throughput_tokens_per_secondHistogramstablebetaprovider, modelAI streaming output throughput (completion tokens / generation duration).
sbproxy_ai_price_source_totalCounterstablealphasourceCost estimates by the price-table layer that produced the price.
sbproxy_ai_provider_attempts_totalCounterstablebetaprovider, outcomeAI provider attempts during failover/selection, by provider and outcome.
sbproxy_ai_provider_errors_totalCounterstablestableprovider, error_kindPer-provider AI error events.
sbproxy_ai_rag_context_bytesHistogramstablebetanoneBytes of rendered RAG context injected into the request body.
sbproxy_ai_rag_latency_secondsHistogramstablebetastage, providerRAG retrieval latency in seconds, by stage (embedding, search, total) and provider.
sbproxy_ai_rag_requests_totalCounterstablebetaembedding, vector_store, outcomeAI requests that ran RAG retrieval, by embedding provider, vector store, and closed outcome (retrieved, no_match, stale, continued, error).
sbproxy_ai_ratelimit_rejected_totalCounterstablebetaaxis, key_hash, tenant, modelAI gateway rate-limit rejections, partitioned by axis.
sbproxy_ai_reasoning_policy_attempts_totalCounterstablebetaprovider, outcomeAI provider attempts by concise-reasoning policy outcome.
sbproxy_ai_realtime_audio_seconds_totalCounterconfig_only (nothing emits this yet)alphaprovider, directionCumulative audio seconds forwarded over Realtime sessions.
sbproxy_ai_realtime_frames_forwarded_totalCounterconfig_only (nothing emits this yet)alphaprovider, direction, kindCumulative frames forwarded over Realtime sessions.
sbproxy_ai_realtime_session_duration_secondsHistogramstablestableprovider, close_reasonWall-clock duration of a Realtime WebSocket session, recorded on close.
sbproxy_ai_realtime_sessions_activeGaugestablestablenoneCurrently open OpenAI Realtime API WebSocket sessions.
sbproxy_ai_replica_selection_excluded_totalCounterstablealphastageManaged-replica candidates excluded before rendezvous ranking, by stage.
sbproxy_ai_request_duration_attributed_secondsHistogramstablebetaprovider, model, surface, tenant_id, api_key_idAI upstream request latency, partitioned by surface + tenant + credential.
sbproxy_ai_request_duration_secondsHistogramstablebetaprovider, modelAI request latency.
sbproxy_ai_requests_attributed_totalCounterstablebetaorigin, provider, model, surface, tenant_id, api_key_id, outcomeAI requests partitioned by attribution + outcome.
sbproxy_ai_reversible_redaction_miss_totalCounterstablebetaruleReversible PII placeholders that appeared in the upstream response but did not match a request-side capture entry.
sbproxy_ai_semantic_cache_similarityHistogramstablebetaproviderCosine similarity of semantic-cache hits.
sbproxy_ai_shadow_dropped_totalCounterstablebetareasonConfigured shadow requests skipped or dropped before dispatch, by closed reason.
sbproxy_ai_shadow_inflightGaugestablebetanoneCurrently in-flight shadow request tasks supervised by the AI client.
sbproxy_ai_shadow_timeout_totalCounterstablebetanoneShadow tasks canceled after their wall-clock supervisor timeout.
sbproxy_ai_stream_guardrail_skipped_totalCounterstablebetaguardrailOutput guardrails skipped on streaming responses via stream_policy: off.
sbproxy_ai_stream_guardrail_violations_totalCounterstablebetaguardrailStreaming output guardrail violations, by guardrail type.
sbproxy_ai_stream_guardrail_decode_fallback_totalCounterstablebetanoneStreaming chunks where guardrails fell back to raw-frame matching because delta decoding failed.
sbproxy_ai_surface_request_duration_secondsHistogramstablestablesurface, methodAI request latency partitioned by classified surface.
sbproxy_ai_surface_requests_totalCounterstablestablesurface, methodAI gateway requests partitioned by classified surface.
sbproxy_ai_token_estimate_error_ratioHistogramstablebetamodelRelative error of pre-request token estimate vs upstream usage.prompt_tokens.
sbproxy_ai_tokens_attributed_totalCounterstablestableorigin, provider, model, surface, direction, project, feature, team, agent_type, environment, tenant_id, api_key_id, agent_idAI tokens consumed, partitioned by attribution tag.
sbproxy_ai_tokens_saved_totalCounterstablebetatenant, origin, model, kindTokens avoided by a semantic-cache hit.
sbproxy_ai_ttft_secondsHistogramstablestableprovider, modelAI streaming time to first token.
sbproxy_ai_usage_parse_miss_totalCounterstablebetaprovider, surface2xx AI responses on a token surface that carried no parseable usage block (budget debited from an estimate).
sbproxy_ai_wasted_cost_dollars_totalCounterstablebetakind, provider, model, surface, project, feature, team, agent_type, environmentEstimated USD cost of AI spend classified as wasted.
sbproxy_ai_wasted_tokens_totalCounterstablebetakind, provider, model, surface, project, feature, team, agent_type, environmentAI tokens classified as wasted, by waste class.
sbproxy_audit_emit_duration_secondsHistogramstablebetachannel, outcomeWall-clock latency of one audit-channel emission.
sbproxy_auth_results_totalCounterstablestableorigin, auth_type, resultAuth check results.
sbproxy_boilerplate_stripped_bytes_totalCounterstablebetahostnameBytes removed by the boilerplate transform, by hostname.
sbproxy_bot_auth_directory_fetch_failures_totalCounterstablebetaurlBot-auth hosted key-directory fetches that failed (the verifier serves stale or fails per nonce_policy).
sbproxy_bot_auth_nonce_replay_totalCounterstablebetapolicyWeb Bot Auth signatures rejected (or logged) because the nonce was already observed.
sbproxy_budget_share_fail_open_totalCounterstablebetaopShared budget store operations that failed and fell open to per-instance enforcement, by operation.
sbproxy_budget_share_unavailableGaugestablebetanone1 while shared budget enforcement is degraded to per-instance tracking, 0 when the shared store answered.
sbproxy_bytes_totalCounterstablestableorigin, directionBytes transferred.
sbproxy_cache_reserve_evictions_totalCounterstablestableoriginCache Reserve explicit deletions.
sbproxy_cache_reserve_hits_totalCounterstablestableoriginCache Reserve hits served after a hot-cache miss.
sbproxy_cache_reserve_misses_totalCounterstablestableoriginCache Reserve misses (hot + reserve both empty).
sbproxy_cache_reserve_writes_totalCounterstablestableoriginCache Reserve writes (admitted entries).
sbproxy_cache_results_totalCounterstablebetaorigin, resultHTTP response cache outcomes (hit or miss), by origin.
sbproxy_capture_budget_dropped_totalCounterstablebetaworkspace, dimensionCapture envelope dimensions dropped because the per-workspace budget was exhausted.
sbproxy_capture_dropped_totalCounterstablebetaworkspace, dimension, reasonCapture envelope dimensions dropped during capture, by reason.
sbproxy_cert_expiry_secondsGaugestablebetanoneSeconds until the active certificate for the host expires; negative when expired.
sbproxy_circuit_breaker_transitions_totalCounterstablebetaorigin, from_state, to_stateCircuit breaker state transitions, by origin and from/to state.
sbproxy_clock_skew_secondsGaugeconfig_only (nothing emits this yet)alphanoneLocal clock offset from the SNTP reference, in seconds.
sbproxy_compression_decisions_totalCounterstablebetacodec, resultCompression middleware decisions, by codec and outcome.
sbproxy_compression_ratioHistogramstablebetacodecAchieved compression ratio (post_size / pre_size) when compression was applied.
sbproxy_config_authority_announce_totalCounterstablebetaresultConfig revision announcements published to the cluster, by result.
sbproxy_config_bundle_age_secondsGaugestablebetanoneSeconds since this node received the config bundle it currently serves.
sbproxy_config_bundle_applied_degraded_totalCounterstablebetanoneConfig bundles applied while at least one subsystem stayed on prior state.
sbproxy_config_bundle_applied_totalCounterstablebetanoneConfig bundles applied with every subsystem reloaded cleanly.
sbproxy_config_bundle_fetch_totalCounterstablebetaresultConfig bundle fetch cycles, by result.
sbproxy_config_bundle_gossip_totalCounterstablebetaoutcomeCluster config-revision announcement probes, by outcome.
sbproxy_config_bundle_revisionGaugestablebetanoneAuthority revision of the config bundle this node currently serves.
sbproxy_config_history_entriesGaugestablebetanoneEntries currently held in the config revision ring.
sbproxy_config_reload_totalCounterstablebetaresultConfig reload attempts, by result.
sbproxy_config_revision_infoGaugestablebetarevision, digest, provenanceCurrent entry in the config revision ring; always 1, the revision/digest/provenance are the labels.
sbproxy_config_source_fetch_totalCounterstablebetakind, resultConfig source resolutions, by source kind and result.
sbproxy_config_source_revision_infoGaugestablebetashaCommit the config source resolved to; always 1, the commit is the label.
sbproxy_egress_refused_totalCounterstablebetapurpose, reason, tenant, originOutbound dials refused by purpose-scoped egress authorization, by purpose, closed reason, tenant, and origin.
sbproxy_errors_totalCounterstablebetahostname, error_typeTotal errors.
sbproxy_events_dropped_totalCounterstablebetasink, reasonProxy events the events: egress did not deliver, by sink (file or webhook) and closed reason.
sbproxy_evidence_seq_tenant_cap_totalCounterstablebetanoneEvidence sequence lookups for a tenant past the tracked-tenant cap, sharing the overflow counter.
sbproxy_gateway_reconcile_duration_secondsHistogramstablebetakindGateway API reconcile latency in seconds, by the Kubernetes resource kind that triggered the pass. Answers whether a reconcile is outrunning the resync interval.
sbproxy_gateway_reconcile_totalCounterstablebetakind, resultGateway API reconcile attempts, by triggering resource kind and outcome. kind is one of GatewayClass, Gateway, HTTPRoute, GRPCRoute, or periodic, so cardinality is bounded by a closed set.
sbproxy_gateway_status_writes_totalCounterstablebetakind, resultPatches to the /status subresource, by resource kind and outcome. A rising error count here is usually RBAC missing the status subresource rather than anything wrong with the reconcile.
sbproxy_gateway_watch_errors_totalCounterstablebetakindWatch stream errors, by Kubernetes resource kind. Distinct from a reconcile error: these come from the API server connection itself, so a rising count against a flat reconcile count means the controller has gone blind rather than broken.
sbproxy_governance_fail_open_totalCounterstablebetakey_idGoverned admissions that bypassed reservation because the governance backend was unavailable and failure_mode is allow_unreserved.
sbproxy_grpc_status_totalCounterstablebetacodeObserved gRPC status codes, by canonical name.
sbproxy_hooks_channel_dropped_totalCounterstablebetareasonBounded channel sends dropped on the hot path, labeled by drop reason.
sbproxy_http_framing_blocks_totalCounterstablebetareason, tenantRequests rejected by the http_framing policy (request smuggling defense).
sbproxy_idempotency_cache_duration_secondsHistogramstablebetabackendIdempotency cache lookup duration, by backend.
sbproxy_idempotency_cache_results_totalCounterstablebetabackend, resultIdempotency cache outcomes, by backend and result.
sbproxy_inbound_key_requests_totalCounterstablebetaprovider, key_mode, tenant_id, api_key_idRequests partitioned by caller credential mode and recognized provider.
sbproxy_inference_duration_secondsHistogramstablebetakind, backend, modelLocal inference latency in seconds.
sbproxy_inference_requests_totalCounterstablebetakind, backend, model, resultLocal inference call counts.
sbproxy_judge_budget_exhausted_totalCounterstablebetatenantJudge calls denied because the per-tenant budget was empty.
sbproxy_judge_calls_totalCounterstablebetaprovider, verdict, cachedJudge backend invocations.
sbproxy_judge_cost_usdCounterstablebetaproviderJudge backend cost per decision in USD.
sbproxy_judge_latency_secondsHistogramstablebetaprovider, cachedJudge backend round-trip latency.
sbproxy_jwks_unknown_kid_refetch_totalCounterstablebetaresultJWKS refreshes triggered by tokens whose kid was absent from the local cache.
sbproxy_key_policy_stored_rejections_totalCounterstablealphareasonStored key records rejected while lowering to an effective policy, by reason.
sbproxy_key_store_outage_totalCounterstablebetaentrypoint, posture, outcomeInbound-key resolutions that could not reach the virtual key store, by entrypoint, configured failure posture, and what the posture decided.
sbproxy_key_store_unavailableGaugestablebetaposture1 while the last inbound-key resolution could not reach the virtual key store; the posture label is what that costs.
sbproxy_label_cardinality_budgetGaugestablebetalabelCap the accepted unique values for a label name are counted against. Denominator for sbproxy_label_cardinality_unique_values.
sbproxy_label_cardinality_overflow_per_tenant_totalCounterstablebetametric, label, tenant_idPer-tenant overflow demotions (sbproxy_label_cardinality_overflow_total with the tenant_id label).
sbproxy_label_cardinality_overflow_totalCounterstablebetametric, labelNumber of label values demoted to other because the per-label budget was exhausted.
sbproxy_label_cardinality_unique_valuesGaugestablebetalabelUnique values a label name has accepted so far. Divided by sbproxy_label_cardinality_budget it gives how close the label is to collapsing new values into other, which is a warning the overflow counter can only give after the fact.
sbproxy_ledger_redeem_duration_secondsHistogramstablebetahost, outcomeWall-clock latency of a single ledger token redemption.
sbproxy_managed_replica_attempts_totalCounterstablebetaprovider, deployment, route_class, outcomeManaged model replica attempts by provider, deployment, route class, and bounded outcome.
sbproxy_managed_replica_failovers_totalCounterstablebetaprovider, deployment, reasonSafe pre-output managed replica handovers by provider, deployment, and bounded reason.
sbproxy_mcp_federation_peers_upGaugestablebetanoneLive MCP federation peers as of the last refresh.
sbproxy_mcp_policy_hook_invocations_totalCounterstablebetaverdict, mcp_server, tool_nameMCP pre-tool-call policy hook invocations by verdict, upstream MCP server, and tool.
sbproxy_mcp_resource_fetch_totalCounterstablebetaresultMCP resource-fetch attempts, by outcome.
sbproxy_mcp_poison_indicators_totalCounterstablebetafield, indicator, kindStatic tool-poisoning indicators in advertised MCP tool text, by field and indicator.
sbproxy_mcp_concealed_text_findings_totalCounterstablebetafield, class, kindAdvertised MCP tool text carrying characters hidden from a reader, by field and class.
sbproxy_mcp_tool_compat_verdicts_totalCounterstablebetagrade, outcomeTool-versioning oracle verdicts, by computed grade and outcome.
sbproxy_mcp_evidence_fail_closed_totalCounterstablebetatenantMCP tool calls refused because fail-closed evidence delivery failed, by tenant.
sbproxy_mcp_argument_policy_totalCounterstablebetatenant, rule, verdictMCP argument-policy rule triggers, by tenant, rule name, and verdict.
sbproxy_mcp_flow_totalCounterstablebetatenant, rule, verdictMCP session-flow enforcement triggers, by tenant, rule id, and verdict.
sbproxy_mcp_session_registry_saturated_totalCounterstablebetanoneMCP session mints refused because the session registry was at capacity, globally or for the caller's tenant.
sbproxy_mcp_peer_registry_saturated_totalCounterstablebetanoneMCP peer-profile observations that could not be tracked because the peer registry was at capacity, globally or for the caller's tenant.
sbproxy_mcp_content_filter_totalCounterstablebetatenant, category, verdictMCP content-filter (secrets/pii) triggers, by tenant, category, and verdict.
sbproxy_mcp_result_policy_totalCounterstablebetatenant, rule, verdictMCP result-policy rule triggers, by tenant, rule name, and verdict.
sbproxy_mcp_tool_cost_usd_totalCounterstablebetatool, serverMCP tool-call cost in USD, by tool and owning server.
sbproxy_mcp_tool_dispatch_duration_secondsHistogramstablebetatoolMCP tool dispatch duration, by tool name.
sbproxy_mcp_tool_dispatch_totalCounterstablebetatool, resultMCP tool dispatch attempts, by tool name and outcome.
sbproxy_mcp_tool_version_calls_totalCounterstablebetatool, version, via, deprecatedRollout-plane tool calls, by tool, served version, resolution rung, and deprecation.
sbproxy_mcp_upstream_io_failures_totalCounterstablebetakindMCP upstream IO failures absorbed by deadlines and byte caps, by kind.
sbproxy_meter_append_duration_secondsHistogramstablebetanoneTime to append one entry to the meter's signed chain, including lock wait.
sbproxy_meter_chain_gap_totalCounterstablebetatenant_id, failure_modeRecords the meter owed and could not write, by tenant and the posture in force.
sbproxy_meter_chain_seqGaugestablebetanoneHead sequence number of the meter's signed chain.
sbproxy_meter_divergence_totalCounterstablebetatenant_idWindows in which counted units and chained units disagreed, by tenant.
sbproxy_meter_incoherent_receipts_totalCounterstablebetatenant_id, failure_modeReceipts refused on decode because a unit's declared provenance contradicts its evidence, by tenant and the posture in force.
sbproxy_meter_receipts_totalCounterstablebetatenant_id, outcome, billableMetered attempts, by tenant, outcome, and the operator's billing answer for it.
sbproxy_meter_units_totalCounterstablebetatenant_id, unit, sourceUnits the meter counted, by tenant, operator-chosen unit name, and provenance.
sbproxy_metrics_render_failures_totalCounterstablebetareasonFailures to encode the Prometheus scrape body.
sbproxy_mirror_state_drift_totalCounterstablebetanoneTimes the mirror_pending slot was unexpectedly empty when the pipeline tried to fire a shadow request.
sbproxy_model_host_active_requestsGaugestablebetadeploymentRequests holding an active managed-model permit.
sbproxy_model_host_admission_rejections_totalCounterstablebetadeployment, priority, reasonManaged-model admission rejections by deployment, priority, and reason.
sbproxy_model_host_artifact_errors_totalCounterstablealphaartifact_error_kindModel artifact acquisition failures by ArtifactError kind.
sbproxy_model_host_deployment_stateGaugestablebetadeployment, engine, stateOne-hot managed-model deployment lifecycle state.
sbproxy_model_host_ensure_failures_totalCounterstablealphareasonModel ensure-ready failures by reason.
sbproxy_model_host_evictions_totalCounterstablealphareasonModel evictions by reason.
sbproxy_model_host_gpu_memory_occupancyGaugestablebetadeviceGPU occupied-memory fraction (0.0-1.0), by device.
sbproxy_model_host_gpu_utilizationGaugestablealphadeviceGPU compute utilization fraction (0.0-1.0), by device.
sbproxy_model_host_gpu_vram_bytesGaugestablealphadevice, kindGPU memory in bytes, by device and kind (total/free).
sbproxy_model_host_launches_totalCounterstablealphaengine, model, outcomeEngine launch attempts by engine, model, and outcome.
sbproxy_model_host_load_queue_depthGaugestablealphamodelRequests queued while a model loads, by model.
sbproxy_model_host_lora_evictions_totalCounterstablealphanoneLoRA adapters evicted from a base engine's cache to make room.
sbproxy_model_host_lora_loads_totalCounterstablealphanoneLoRA adapters loaded onto a base engine (dynamic-paging cache misses).
sbproxy_model_host_placement_rejections_totalCounterstablealphadeployment, placement_reasonPlacement plan node rejections by deployment and reason.
sbproxy_model_host_queued_requestsGaugestablebetadeploymentRequests waiting in a managed-model admission queue.
sbproxy_model_host_resident_adaptersGaugestablealphanoneLoRA adapters currently loaded across all base engines.
sbproxy_model_host_resident_modelsGaugestablealphanoneLocal models currently loaded and Ready.
sbproxy_model_host_time_to_ready_secondsHistogramstablealphaengine, modelTime from engine launch to Ready, by engine and model.
sbproxy_model_host_weight_download_bytes_totalCounterstablealphanoneBytes downloaded by model-host weight pre-fetches.
sbproxy_model_host_weight_download_failures_totalCounterstablealphanoneModel-host weight pre-fetches that failed.
sbproxy_model_host_weight_download_secondsHistogramstablealphanoneModel-host weight pre-fetch duration in seconds.
sbproxy_model_plane_peer_dispatch_secondsHistogramstablebetaoutcomePrivate model-plane peer dispatch duration to response headers by outcome.
sbproxy_model_plane_rejections_totalCounterstablebetacode, retry_classPrivate model-plane request refusals by bounded code and retry class.
sbproxy_model_plane_stream_cancellations_totalCounterstablebetaroute_classManaged response streams dropped before completion by route class.
sbproxy_mtls_cert_cache_evictions_totalCounterstablebetanoneNumber of mTLS client cert metadata entries evicted by the LRU bound.
sbproxy_mtls_handshake_totalCounterstablebetaresultmTLS client-certificate verification outcomes.
sbproxy_object_authz_enumeration_tracker_saturated_totalCounterstablebetanoneEnumeration observations the object_authz policy could not track because the per-principal tracker was at capacity with live windows.
sbproxy_object_authz_violations_totalCounterstablebetaorigin, kind, enforcedObject/function-level authorization violations, by kind (bola, bfla, enumeration) and enforcement disposition (enforced=true refused the request; enforced=false was audited only).
sbproxy_ocsp_fetch_totalCounterstablebetaresultOCSP fetch attempts, by outcome.
sbproxy_ocsp_staple_age_secondsGaugestablebetahostAge of the cached OCSP staple for the host, in seconds. Published once a minute by the refresh task; absent until the first successful fetch, so never-stapled is distinguishable from stale.
sbproxy_operator_leader_is_leaderGaugestablebetanone1 when this operator replica currently holds the leader lease.
sbproxy_operator_leader_transitions_totalCounterstablebetaresultLeader-election lifecycle events on this replica.
sbproxy_operator_reconcile_duration_secondsHistogramstablebetakindOperator reconcile duration, by CRD kind.
sbproxy_operator_reconcile_totalCounterstablebetakind, resultOperator reconcile attempts, by CRD kind and outcome.
sbproxy_origin_active_connectionsGaugestablebetaoriginIn-flight requests per origin.
sbproxy_origin_request_duration_secondsHistogramstablebetaorigin, method, statusRequest latency per origin.
sbproxy_origin_requests_totalCounterstablebetaorigin, method, statusTotal HTTP requests per origin.
sbproxy_outbound_request_duration_secondsHistogramstablebetahost, method, statusWall-clock latency of one outbound upstream request.
sbproxy_payment_provider_calls_totalCounterstablebetarail, operation, provider_classPayment provider calls that left the process, by rail, operation, and provider class.
sbproxy_payment_rail_enabledGaugestablebetarail1 for each settlement rail this build compiled and this configuration registered, 0 otherwise.
sbproxy_payment_recovery_totalCounterstablebetaoperation, outcomeDurable rows the settlement recovery worker moved, by recovery operation and committed outcome.
sbproxy_payment_settlement_totalCounterstablebetarail, operation, outcomePayment settlement transitions, by rail, deciding step, and outcome. The request-path gate reports challenge and redeem; the recovery sweep reports the reconciled attempt's own operation.
sbproxy_payment_worker_drain_cleanGaugestablebetanone1 when the settlement worker drained inside its shutdown deadline, 0 when it was abandoned mid tick.
sbproxy_payment_worker_ticks_totalCounterstablebetanoneCompleted settlement recovery worker ticks.
sbproxy_phase_duration_secondsHistogramstablestablephase, originIntra-request phase duration, partitioned by phase + origin.
sbproxy_plugin_init_duration_secondsHistogramstablebetakind, plugin, resultPlugin factory init duration, by kind, plugin name, and outcome.
sbproxy_plugin_init_totalCounterstablebetakind, plugin, resultPlugin factory init attempts, by kind, plugin name, and outcome.
sbproxy_plugin_registered_totalCounterstablebetakind, pluginKnown plugin registrations, by kind and plugin name.
sbproxy_policy_audit_events_dropped_totalCounterstablebetatenantPolicy verdict audit events dropped because the bus queue was full.
sbproxy_policy_audit_events_totalCounterstablebetaverdict, surface, policy_idPolicy decisions emitted on the audit event bus, labeled by verdict, surface, and policy_id.
sbproxy_decision_audit_events_dropped_totalCounterstablealphaevent, tenantDecision audit records dropped before publication, by decision event and tenant.
sbproxy_decision_audit_events_totalCounterstablealphaevent, outcomeDecision audit records published on the audit bus, by decision event and outcome.
sbproxy_policy_decision_duration_secondsHistogramstablebetasurfaceWall-clock latency of policy decisions.
sbproxy_policy_evaluation_duration_secondsHistogramstablebetaorigin, verdictWall-clock latency of one full policy-chain evaluation.
sbproxy_policy_panic_totalCounterstablebetapolicyPolicy enforcer panics contained on the serving path, by policy type.
sbproxy_policy_triggers_totalCounterstablestableorigin, policy_type, action, agent_id, agent_classPolicy enforcement results.
sbproxy_projection_render_failures_totalCounterstablealphaprojectionWell-known projection render failures, by projection.
sbproxy_rate_limit_cluster_peer_denials_totalCounterstablealphanoneMesh rate-limit denials that needed peer counts, so the approximation is observable.
sbproxy_rate_limit_decisions_totalCounterstablealphapolicy, resultRate-limit middleware decisions, by policy and outcome.
sbproxy_rate_limit_suspend_totalCounterstablebetaworkspaceWorkspace auto-suspend transitions.
sbproxy_rate_limit_totalCounterstablebetaworkspace, resultWorkspace rate-limit budget outcomes by workspace and result (soft/throttle).
sbproxy_redis_kv_connections_totalCounterstablebetaresultRedis KV connection attempts by result.
sbproxy_redis_kv_operation_duration_secondsHistogramstablebetaoperationRedis KV operation duration in seconds.
sbproxy_redis_kv_operation_errors_totalCounterstablebetaoperation, reasonRedis KV operation failures by operation and reason.
sbproxy_request_duration_secondsHistogramstablestablehostnameRequest latency.
sbproxy_requests_totalCounterstablestablehostname, method, status, agent_id, agent_class, agent_vendor, payment_rail, content_shapeTotal HTTP requests.
sbproxy_response_body_bytesHistogramstablebetadirectionResponse body size, by compression direction.
sbproxy_script_compile_totalCounterstablebetaengine, resultScript-engine compile attempts, by engine and outcome.
sbproxy_script_duration_secondsHistogramstablebetaengineScript-engine invocation duration, by engine.
sbproxy_script_invocations_totalCounterstablebetaengine, resultScript-engine invocations, by engine and outcome.
sbproxy_script_reloads_totalCounterconfig_only (nothing emits this yet)alphaengine, resultScript-engine hot-reload events, by engine and outcome.
sbproxy_decision_event_totalCounterstablealphaevent, engine, outcome, origin, tenantDecision events by pipeline point, engine, and outcome.
sbproxy_decision_event_duration_secondsHistogramstablealphaevent, engine, originDecision event evaluation latency.
sbproxy_decision_event_fail_open_totalCounterstablealphaevent, engine, origin, tenantDecision events that proceeded without the decision being made.
sbproxy_semantic_cache_results_totalCounterstablebetatenant, origin, source, resultSemantic-cache hit/miss/error counts.
sbproxy_serve_lane_admissions_totalCounterconfig_only (nothing emits this yet)alphapriority, decisionServed-lane admission gate decisions by priority lane.
sbproxy_silent_degradations_totalCounterconfig_only (nothing emits this yet)alphaopBest-effort operations that failed and were previously dropped silently, by op.
sbproxy_sink_install_failures_totalCounterstablebetanoneFailed installs of the process-wide telemetry sink dispatcher.
sbproxy_synthetic_probe_failures_totalCounterstablebetareasonSynthetic readiness probe failures by reason.
sbproxy_telemetry_dropped_totalCounterstablebetakind, reasonTelemetry records dropped or sinks that failed to set up, by kind and reason.
sbproxy_tokens_attributed_totalCounterstablebetaproject, user, tag, directionAI token usage attributed to a credential's project / user / tag.
sbproxy_transport_duration_secondsHistogramconfig_only (nothing emits this yet)alphaprotocol, resultTransport-layer request duration, by protocol and outcome.
sbproxy_transport_requests_totalCounterconfig_only (nothing emits this yet)alphaprotocol, resultTransport-layer requests, by protocol and outcome.
sbproxy_trust_tier_requests_totalCounterstablebetatierRequests partitioned by the conservative trust-tier decision.
sbproxy_unrouted_requests_totalCounterstablebetareasonRequests rejected before origin resolution, by reason.
sbproxy_upstream_status_retries_totalCounterstablebetaorigin, statusUpstream retries triggered by a configured response status, by origin and matched status.
sbproxy_upstream_timeout_retries_totalCounterstablebetaorigin, phaseUpstream retries triggered by a timeout-classed failure, by origin and phase (connect or upstream).
sbproxy_vault_resolution_duration_secondsHistogramstablebetabackend, resultVault resolution duration, by backend and outcome.
sbproxy_vault_resolution_totalCounterstablebetabackend, resultVault resolution attempts, by backend and outcome.
sbproxy_usage_bridge_enqueued_totalCounterstablebetatenant_id, reporter, resource_type, resultBillable units the request path queued for a usage reporter, by tenant, reporter, resource type, and whether the row was new.
sbproxy_usage_bridge_gap_totalCounterstablebetatenant_id, failure_modeBillable units that could not be queued for a usage reporter, by tenant and the posture in force.
sbproxy_waf_persistent_blocks_totalCounterstablebetaorigin, tenant, event, key_kindWAF persistent (time-boxed) block actions, by lifecycle event and key kind.