llama.cpp average generation throughput gauge
llama-cpp · gauge
Fields
id
metric-exposures/w3m-llama-cpp-llamacpp-predicted-tokens-secondsMetric name
llamacpp:predicted_tokens_seconds
Metric type
gauge
Unit
tokens/s
Exposure
prometheus
Endpoint
/metrics (--metrics; router mode requires ?model={model_id})
Enabled by default
no
notes
llama.cpp master, server_task_result_metrics::to_metrics() in tools/server/server-task.cpp, read 2026-10-04. Off by default: '--metrics enable prometheus compatible metrics endpoint (default: disabled)' (env LLAMA_ARG_ENDPOINT_METRICS), and 'This endpoint is only accessible if --metrics is set'. The body is assembled by string concatenation with no Prometheus client library, so there are NO labels at all and no multiprocess mode - every series is a bare name-plus-value line. In router mode /metrics requires ?model={model_id} or returns HTTP 400. Same token-bucket average, same naming oddity. This is llama.cpp's closest thing to a token-throughput metric and it is a rolling lifetime average, not a windowed rate.
Notes
llama.cpp master, server_task_result_metrics::to_metrics() in tools/server/server-task.cpp, read 2026-10-04. Off by default: '--metrics enable prometheus compatible metrics endpoint (default: disabled)' (env LLAMA_ARG_ENDPOINT_METRICS), and 'This endpoint is only accessible if --metrics is set'. The body is assembled by string concatenation with no Prometheus client library, so there are NO labels at all and no multiprocess mode - every series is a bare name-plus-value line. In router mode /metrics requires ?model={model_id} or returns HTTP 400. Same token-bucket average, same naming oddity. This is llama.cpp's closest thing to a token-throughput metric and it is a rolling lifetime average, not a windowed rate.