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.
Set component_name on RequestMetricsFactory to identify the type of
component that wrote each request log, for example "frontend" or "worker".
The library generates component_id once per process and shares it among all
factories in that process. Both fields are stored as plain text in JSON and
Parquet records; component_name is optional.
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.18
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.18.tar.gz | 104.0 kB | Details |
Built distributions (wheels)
Total release size: 144.0 MB
Release files / llm_runtime_metrics-0.0.18.tar.gz
| Download URL | llm_runtime_metrics-0.0.18.tar.gz |
|---|---|
| Size | 104.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ddd607f026774397410d7b3ac68b5fabd150f953c8044e028c2e0d1cc5e9315d
|
|
BLAKE2b-256 checksum How to use checksums |
6d66627615db200c721532dc74ed979f592172d4922032daaadd88315b5dc3d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
cf2c5cd6cffa3dc82e6d6ba6e5475c2ff7cab386d4ab72cd89e6d6e66936b861
|
|
BLAKE2b-256 checksum How to use checksums |
98b5a43758571a2708872892bd7c3e2f0f0416e8baf6e3f4a056d6f82b6cad20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-musllinux_1_2_i686.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
a1b17aefa32cb1202180cf908487b0fa46b4c2b01e87550bf26977a409482db5
|
|
BLAKE2b-256 checksum How to use checksums |
7635659e59e597c510132fd705dfa57cffe97724b93ae74f14c483657fdfda39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-musllinux_1_2_armv7l.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
9fbd7c50a1c4db71c7254e3858b1322d5e30d4d6167454dfb90185fca033b892
|
|
BLAKE2b-256 checksum How to use checksums |
bb51d1eeb1b184182e95c082a90a36b60e26d7fbde4eeb88ba67315a80cdd10f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-musllinux_1_2_aarch64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
f0a94b7ca797cdea24a24d83409288bf1b609a85ef354cb2dd9fbde3d415706f
|
|
BLAKE2b-256 checksum How to use checksums |
ffeb394c665b1ff3ba0605866ac297eb6ef31f3f23bf47adbfc0f68d558d0082
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
96787ad1b4035d32e4d9d4f154ad4e384f44bc806d1f6db83d3bf4c0851fed88
|
|
BLAKE2b-256 checksum How to use checksums |
7d4748383da434ff8d8c304bfea668a623b1b56c32d86b3ced137306f8f489ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
06c767c8a78c62f74c3b466ede4d01226c9dbb16734d3f4e170b3ed86b7c7953
|
|
BLAKE2b-256 checksum How to use checksums |
a99b00868045e0a348c0623ebb62c2d6027edb5505f7e9111c33ab09d520f6f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | llm_runtime_metrics-0.0.18-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
73f97c3f64c67bad21ae25ccc78fda30477aefe976adbb7d8dd908df62ada06f
|
|
BLAKE2b-256 checksum How to use checksums |
163057f4e91cedf8cffc6685d5d10cb6a28e3cc78a639ddb2473b2e7abdcf9e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
e3af4aa1b056c7e6af78b8c650746c73bfb0d73246c19722265acfc3e16315cc
|
|
BLAKE2b-256 checksum How to use checksums |
f6349011dc2c52463981a33d48afb1a52ff46dfacb9235eebba3b0603113773e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
a719a779ec6d75bdb0c14f042cdb8c0986b767d947f3a8b480f59de75e309b17
|
|
BLAKE2b-256 checksum How to use checksums |
d7c787a585fb60231d631fb06f9abe50d2af662a0d15b8f6c3377b27b1775357
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-win_amd64.whl
| Download URL | llm_runtime_metrics-0.0.18-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
865308c329675ff9636a49654d20ca6c31f1f114e3e4d40d2c6b86db44d73800
|
|
BLAKE2b-256 checksum How to use checksums |
de0488262a96d7bc1e51eeaa7f06c99a558a171865fa6556a9eed30814a984b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-musllinux_1_2_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
c27d711fba4eea58c38240730df0a183a2c8620633af6e9fcfdef0c29ca16eb0
|
|
BLAKE2b-256 checksum How to use checksums |
161b36e5c84607da7168155af392d8da2a0e8ca0fe147ac39138a7a023daf16c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-musllinux_1_2_i686.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
71eb8933279a5d3e09b03c2e1563ce68b1d20bfd9fd4667e2a0665c1e9411406
|
|
BLAKE2b-256 checksum How to use checksums |
75b0cfea6bc7ad96c0842fa4dca9ba2fac48adc1f82cb3eb18297b9ebdae08e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-musllinux_1_2_armv7l.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
10e358cfc2cc18a9635400c696d2ef215c3ca2b5f24b6918874cdf53ee549aeb
|
|
BLAKE2b-256 checksum How to use checksums |
3ab311d21ff480b5e83e1b635823fc5c6727465716e614692b5465cbef4d4837
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-musllinux_1_2_aarch64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
1f7f0e4c3951243c46945706852828ef1f15f76eace0208f7518e1ef78e21d7c
|
|
BLAKE2b-256 checksum How to use checksums |
d324db10b7b1a1a4ca119e5e0422c0da8faa03cde755c4632de1d2283173a292
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-manylinux_2_28_ppc64le.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
9aa12428055c78ac1ea4ab604f91326085273d4e5574e388824ae5d11aaf49cd
|
|
BLAKE2b-256 checksum How to use checksums |
5ada29470c7380d9c60d78e0ee52b5963cd551309ec1fedc75c57066a97dd40a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-manylinux_2_28_armv7l.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
32ee21e5d008f0ceddaeaa8aa01715abb1868cd6250cab7a4a276aecf9e62c97
|
|
BLAKE2b-256 checksum How to use checksums |
ade23fd5590a5e0eb54811be04114dca5f8d21068ecc9be1d787f601c59448c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
e3a6d54e708cf472a94a4f108f4feb8b26784a204be7421889c8b9e96f8c6ef7
|
|
BLAKE2b-256 checksum How to use checksums |
9b468d9bf17939396266428960d0a459299b15506cdffd61ea25cc6e1a84834d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.18-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 6.6 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
ac012f2572f1021a3c52564825c65f20b5c1a5239465cd28b63a2376407d0880
|
|
BLAKE2b-256 checksum How to use checksums |
b89ba0c8898a77006c73d2da324084cd15e3fb72ca11d7e516f12e8a74b60302
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
7d58fc8f253662b7a0c05a2f8f16e850e4f81129de407304e60b62e7651d6246
|
|
BLAKE2b-256 checksum How to use checksums |
e3db3bf96c7545031f00f9182b3355b80217f2e6b241498a7d77d9ed993da0df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
faab9ac94ee06a6b837ae92e0dc3d34e2ea4432afa4f2998366dcafed2b8dc9c
|
|
BLAKE2b-256 checksum How to use checksums |
7120c3873dfb03d35519f71623a545e1b0d5af5ad615263c5be871befec00a70
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / llm_runtime_metrics-0.0.18-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | llm_runtime_metrics-0.0.18-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 |
c518f162b2d273fa5b80e98a511e3ba05c8e990bcb227ba1b3b162928dec43c0
|
|
BLAKE2b-256 checksum How to use checksums |
420c7ef8980d1381f4b0ef23fbe366fcc8aedfc8aea13062dc42893290064e2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|