Inference telemetry
InferCrane records operational measurements for each request without storing prompts or generated content. Request bodies are used only to forward the OpenAI-compatible request, and response chunks are observed transiently to extract timing and usage metadata when the runtime supplies it. Persisted request dimensions are:- deployment and active revision
- provider, runtime, and compute mode
- GenAI operation name (
chat) - requested logical model and runtime-reported response model
- OpenTelemetry GenAI schema identity (
https://opentelemetry.io/schemas/gen-ai/1.42.0) - HTTP status, error type, and whether the response streamed
- response model, when returned by the runtime
gen_ai.response.time_to_first_chunk; InferCrane does not claim it is
the model server’s internal gen_ai.server.time_to_first_token. Missing token usage remains unknown;
InferCrane does not estimate it. Replica identity remains unset when the standalone router does not
provide a trustworthy selected-worker identity.
The corresponding OpenTelemetry GenAI concepts are gen_ai.operation.name,
gen_ai.provider.name, gen_ai.request.model, gen_ai.response.model,
gen_ai.request.stream, gen_ai.usage.input_tokens, gen_ai.usage.output_tokens,
gen_ai.server.request.duration, and gen_ai.response.time_to_first_chunk. InferCrane-specific
deployment, revision, provider/runtime, compute-mode, and operation dimensions are retained with
the durable request record so decisions can be reproduced later. runpod is a grounded custom
provider value because the convention permits provider-specific names outside its well-known list.
Aggregated deployment statistics expose request rate, error rate, latency p50/p95, TTFT p50/p95, and observed input/output tokens per second over the selected window. Token throughput is emitted only from runtime-reported usage.
The endpoint monitoring API returns the same content-free evidence as a bounded time series, plus
binding/deployment/revision attribution and persisted lifecycle overlays. The console uses this API;
it never queries PostgreSQL or an OpenTelemetry collector from the browser. Missing buckets and
unsupported runtime metrics stay null or explicitly unavailable rather than becoming zero.
client_cancelled and upstream_disconnect error types. GPU metrics
remain unavailable unless the provider/runtime exposes a trustworthy measurement.