Skip to content

Metrics

The management port serves /metrics alongside /healthz and /readyz. Beyond the Go runtime, every series is prefixed kritika_ and labelled by account, connection or model, never by pull request or commit:

Series Labels What it counts
kritika_webhooks_total connection, outcome deliveries: enqueued, recorded, skipped, ignored, ping, unsigned (the App has no webhook secret), unauthorized, unparsable, too_large, unreadable, unknown_connection (with no connection), undeclared_account, error
kritika_polls_total, kritika_polled_pull_requests_total connection, outcome backstop polls and the open pull requests they handed to ingest
kritika_reviews_total, kritika_review_duration_seconds account, status reviews by terminal status and wall time
kritika_findings_total account, severity findings posted
kritika_followups_total account, outcome mentions handled: answered, limited, ignored, failed
kritika_index_runs_total, kritika_index_chunks_total account, mode, status index runs and chunks embedded
kritika_context_chunks_total account, stage context chunks a review's prompt was given, by stage: overlay, definition, caller, similar (the index)
kritika_runner_runs_total, kritika_runner_duration_seconds account, kind, outcome runner Jobs: success, failed, deadline
kritika_lease_wait_seconds account, model time waiting for a model concurrency slot
kritika_review_snoozes_total account, model reviews put back on the queue because every model slot was held
kritika_jobs_rescued_total kind, state jobs a replica died working, handed back to the queue by the leader: retryable, discarded (no attempts left), cancelled (a cancel was asked)
kritika_model_calls_total, kritika_model_tokens_total, kritika_model_cost_usd_total account, model, role calls; tokens by direction (input, cached, output); provider-reported cost; model is the one that answered, so OpenRouter's fallback shows under its own
kritika_forge_rate_limits_total connection, outcome responses GitHub refused for a rate limit: waited (the request waited the limit out and was sent again) or refused (the wait was over a minute, or the request could not be resent)
kritika_egress_requests_total kind, outcome requests runner pods made through the gateway: connect or http; allowed, refused, error
kritika_transcript_writes_total kind, outcome model calls recorded for the transcript view: agent_step or followup; ok, error
kritika_config_drift 1 while this replica's file differs from the applied one
kritika_leader 1 while this replica holds the leader lock