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 |