llm-runtime-metrics (Python)
Python bindings for request metrics and Prometheus export.
Install from PyPI as llm-runtime-metrics.
Import in Python as:
import llm_runtime_metrics
The supported package root focuses on the request-metrics workflow.
S3 request-log proxy
Set s3_proxy_url to route S3 requests through an HTTP forward proxy, such as
a sidecar listening on http://127.0.0.1:3128:
factory = RequestMetricsFactory(
request_log_enabled=True,
s3=True,
s3_bucket="request-logs",
s3_region="us-east-1",
s3_proxy_url="http://127.0.0.1:3128",
)
The S3 bucket, region, signing, and endpoint remain unchanged. For HTTPS S3
endpoints, the proxy must support HTTP CONNECT. Omit s3_proxy_url for a
direct connection. compact_s3_parquet_to_local accepts the same option for
downloads. Use s3_endpoint only for an S3-compatible endpoint override.
In request-log records, model_name is stored as supplied. org_id is hashed
without a salt. provided_session_id is hashed without a salt so the same ID
has the same digest across deployments. request_log_hash_salt applies only to
the token-block hashes in total_hashes; without it, those hashes are unkeyed.
Timing, token counts, flags, and other metadata are stored as plain values.
Add LLM Metrics To An Existing Prometheus Server
from prometheus_client import CollectorRegistry, start_http_server
from llm_runtime_metrics import (
REQUEST_FEATURE_IMAGE,
REQUEST_FEATURE_TOOLS,
RequestMetricsCollector,
RequestMetricsFactory,
)
# Reuse your existing registry if you already have one.
registry = CollectorRegistry()
factory = RequestMetricsFactory(
request_log_enabled=False,
metric_prefix="llm_runtime",
metrics_window_seconds=60.0,
metrics_quantiles=[0.5, 0.9, 0.99],
)
# Registers a custom collector that pulls fresh samples from `factory` at scrape time.
RequestMetricsCollector(
factory,
base_labels={"service": "text-generation", "engine": "vllm"},
registry=registry,
)
# If your app already exposes /metrics, wire this into that server instead.
start_http_server(8000, registry=registry)
# Example lifecycle hooks in your inference code:
def on_request_start(prompt_token_ids: list[int]):
features = REQUEST_FEATURE_TOOLS | REQUEST_FEATURE_IMAGE
return factory.new_request(prompt_token_ids, features=features)
def on_stream_step(req_metrics, full_output_token_ids: list[int], cached_tokens: int | None):
# Use `is_diff=False` when passing cumulative token ids.
req_metrics.record_tokens(full_output_token_ids, cached_tokens=cached_tokens, is_diff=False)
def on_request_success(req_metrics):
req_metrics.success()
def on_request_cancel(req_metrics):
req_metrics.cancel()
The exported request latency distributions include request_metrics_ttft_ms,
request_metrics_time_to_fifth_token_ms,
request_metrics_first_to_fifth_token_itl_ms, and request_metrics_itl_ms.
request_metrics_time_to_fifth_token_ms is the elapsed time from request start
until the fifth output token is observed by record_tokens.
request_metrics_first_to_fifth_token_itl_ms is the elapsed time between
observing the first and fifth output tokens.
The inflight gauges also include early-decode pressure between the first and
fifth output token:
current_inflight_first_to_fifth_token_requests,
mean_inflight_first_to_fifth_token_requests,
current_inflight_first_to_fifth_token_input_tokens, and
mean_inflight_first_to_fifth_token_input_tokens. The input-token gauges count
prompt tokens attached to requests that have emitted at least one output token
but have not emitted their fifth token yet.
Available request feature bits:
REQUEST_FEATURE_NONEREQUEST_FEATURE_XGRAMMARREQUEST_FEATURE_TOOLSREQUEST_FEATURE_IMAGE
If you need plain text output instead of a collector, call:
text = factory.prometheus_strfmt({"service": "text-generation", "engine": "vllm"})
Release files for llm-runtime-metrics 0.0.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llm_runtime_metrics-0.0.17.tar.gz | 103.2 kB | Details |
Built distributions (wheels)
Total release size: 144.0 MB
Release files / llm_runtime_metrics-0.0.17.tar.gz
| Download URL | llm_runtime_metrics-0.0.17.tar.gz |
|---|---|
| Size | 103.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc9e6071c668cd55780e50d4e9a4dc9e53dc93f0462f7ac66b286e3a4f53db37
|
|
BLAKE2b-256 checksum How to use checksums |
dec01ee9cc8112502a29257c4d9d49a6540acbd3246bdcb379d87cf6a4dd01e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
d21d9869cdd474891a473fee7699028c067a59807a92f816748b1c5fd8ce7a48
|
|
BLAKE2b-256 checksum How to use checksums |
97f48766be8bb6a8c2c5efeda7db99a16e5b2cfd9c9df8f4627f6eb8945de289
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_i686.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_i686.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32 |
|
SHA-256 checksum How to use checksums |
1ff8d78836d5a43a2c8b77d15625c4203312db9ae420ce919ad7cabe3be5bf4e
|
|
BLAKE2b-256 checksum How to use checksums |
ce7ebe7b788b24f485ade5b4db8bd5ae668709581459a479bc1fd4f586a5ce49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_armv7l.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l |
|
SHA-256 checksum How to use checksums |
ab68384b90430f2e71b349f41f206093d31af6e4f170dc07c3e37af720a2cc1c
|
|
BLAKE2b-256 checksum How to use checksums |
56fe3afc9301f04d35231150b5bbd3ce322a524c129aeb4cd2c6373be6aa3cd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_aarch64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
d12ccba340f2929c207964cf3a6198dea50eeaf519ea9167fefcbafa3434f7c5
|
|
BLAKE2b-256 checksum How to use checksums |
ea47915fa25d6a462edf6a2d230dd053680b1540b6d1ae24360f33faec6007f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 6.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
612f77c1fb7d1ea82e98adb17893978389243ecafb3aa0bf0950481710577001
|
|
BLAKE2b-256 checksum How to use checksums |
71c4045db7b57ff3285a8fca8ad579ccba1d3c01f58741ff651c6f2fbcc9fae9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ PowerPC 64-le |
|
SHA-256 checksum How to use checksums |
8a94d6c66e7377b5a721ec11ab9f217e69eae1f42a82e76cc539284b70c4032c
|
|
BLAKE2b-256 checksum How to use checksums |
dd2140b4cff84c9e8933ba071e580f3c8608670a91bd2aac5af4af2ae24e0547
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 7.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
fc465d0d12448f0952d9290166296c6c37f77a778acbd99c395501e85df29017
|
|
BLAKE2b-256 checksum How to use checksums |
7cfcb914b1d287444709321313874b84978d6f926471fae232b47fd38771a845
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7fd4df5b303c6ae383c09e249a3e8d9852ba8c8c4f1cc54a3b8313e8e21fca17
|
|
BLAKE2b-256 checksum How to use checksums |
c9024c14d79b568173dfd84c5a13c2f79ee8a267e9fabacf242084adf95f98fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.1 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
d47c0f2bea74674b22d0082b19e482dfc5f55956a2ad359e220eaf47b5961e1f
|
|
BLAKE2b-256 checksum How to use checksums |
e0bdac6ad9d1db2b30ef74bf466d283b3b617d1a6bc21433dd50815530088782
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-win_amd64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
461065cc8de367fb8550f4dd545d7fef737bd0d186f7c97b5c92918ad9eb6445
|
|
BLAKE2b-256 checksum How to use checksums |
5aaab5c87e54e6c342f856b3bcad7ff2f2a2743d199de51ba6bcf851e5806614
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c6c029945cbd0ac780e187ef44893bd81634cb74bf64f3f8e78283775755c81e
|
|
BLAKE2b-256 checksum How to use checksums |
809147cfadb758f0e56f908ecbb46e5a038753cebbf305955b3b65e9f101101d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_i686.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_i686.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
1e7722ae8c2292968806a648b9fe6dfbc85e2a6437ac818addfc3763a49cca2f
|
|
BLAKE2b-256 checksum How to use checksums |
99843fac6f357170ca0f07008805efa88e40fc6bdb2505e81dfc165be19a1e76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_armv7l.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
bc50ea332c572be641b88551e0477b118197adc12c0b7d73069c755d0ca94218
|
|
BLAKE2b-256 checksum How to use checksums |
a3bad6ff33ea9b1d34e457666966c82ed32a54caa30103cfb568276eeee421a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_aarch64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
3ce22137abb7f7883a2f3e14077856bd7a0f0917da7ececd790c86d0b61ab3f9
|
|
BLAKE2b-256 checksum How to use checksums |
d8b1e974c936fd6bfb0d7c1cc058a5351cd59ec85b3b11acb5640633d0f21d47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_28_ppc64le.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_28_ppc64le.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ PowerPC 64-le abi3 |
|
SHA-256 checksum How to use checksums |
e9023f9f00fbafb0f141af6346fe00cdc23cbf1fccee8512f5cb2d065f6a1828
|
|
BLAKE2b-256 checksum How to use checksums |
6b6e82ed2835a5e96d199de9146a977208897836a12e65efdb5786a633f38321
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_28_armv7l.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_28_armv7l.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
49ddd552bf52d15f608495907734bd9e66ed151c1b2f88af4f651693c9218460
|
|
BLAKE2b-256 checksum How to use checksums |
245b0f24fe4fcdd93ddf5d63216768fcfc506c0494d1bd70df690075aa960abe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
57490b64544e7bf42b52ed817d3f91dda10abafc5caf2dcc83228cd88225ee75
|
|
BLAKE2b-256 checksum How to use checksums |
e5a1025161b7f7677f4b8271186d8f71608f46165d6f66e5d55bb8fcd935f41a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
8e34862072e79e7e9e7486dbd956a6df48db94b8ae52fee4023daa7f5370580b
|
|
BLAKE2b-256 checksum How to use checksums |
0a7c6f22c0ba2de6d799f2212c6ef729fb89cdba9506fea7d65c58dc53cdfe02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
9c4c1b1f98e9ec9e2293bb91bef22ca0761271b94d42686b4472484d72a93302
|
|
BLAKE2b-256 checksum How to use checksums |
0f7b7d39ece11f5d7168ed8fc236554d89c0fdd6c435ad56c8e2e4a49a004bce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bff045c7c126eeeb9c0c8a3d5c4ed7b028a5928a4771220b03b3931f0173c1f0
|
|
BLAKE2b-256 checksum How to use checksums |
ab731f67b715ca70bea107725aeb6b166a2dffa4969b6a4fba935e74bbd1f9d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.17-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.17-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.1 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
1a610ed73e46cc44e487469c7c36b637f4d00cef4716689e9ef3847327dc9e56
|
|
BLAKE2b-256 checksum How to use checksums |
0ea6b696c424b762f5bb04280e755ad2c382df9f53f952ec957932915c7a01c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|