Skip to content
Korrel8r Metrics

Korrel8r Metrics

Korrel8r automatically exposes a metrics scrape endpoint for Prometheus at /metrics. Alternatively, run with the --otel-collector flag to push metrics via OTLP.

korrel8r/mcp

Metric Type Unit Description
mcp.tool.calls counter Total MCP tool calls
mcp.tool.duration histogram s MCP tool call duration in seconds

korrel8r/engine

Metric Type Unit Description
engine.store.get counter Total store get calls
engine.store.get.duration histogram s Store get duration in seconds

korrel8r/traverse

Metric Type Unit Description
traverse.rules counter Number of rule applications
traverse.queries counter Number of query executions
traverse.duplicate_queries counter Number of duplicate queries ignored

korrel8r/rest

Metric Type Unit Description
rest.requests counter Total HTTP requests
rest.request.duration histogram s HTTP request duration in seconds
rest.active.requests gauge In-flight HTTP requests

Prometheus metric names

OTel metric names are converted for Prometheus export: dots become underscores, counters get a _total suffix, and histogram units are appended (e.g. _seconds for unit s).

For example engine.store.get becomes engine_store_get_total, and engine.store.get.duration becomes engine_store_get_duration_seconds.

Example PromQL queries

Store get rate per second by domain:

rate(engine_store_get_total[5m])

Store get error ratio by domain:

  rate(engine_store_get_total{status="error"}[5m])
/ rate(engine_store_get_total[5m])

Average store get latency by domain:

  rate(engine_store_get_duration_seconds_sum[5m])
/ rate(engine_store_get_duration_seconds_count[5m])

P99 store get latency:

histogram_quantile(0.99, rate(engine_store_get_duration_seconds_bucket[5m]))

REST request rate by method and status:

rate(rest_requests_total[5m])

Average REST request latency:

  rate(rest_request_duration_seconds_sum[5m])
/ rate(rest_request_duration_seconds_count[5m])

MCP tool call rate:

rate(mcp_tool_calls_total[5m])

Top 10 most-applied rules:

topk(10, increase(traverse_rules_total[1h]))

Graph traversal efficiency (duplicate queries as a fraction of total):

  rate(traverse_duplicate_queries_total[5m])
/ rate(traverse_queries_total[5m])