API container health
The API container serves/health on port 8000:
apiStatus: "ok" and modelReachable: true:
licenseStatus reads expired-or-not-set until the first authenticated request initializes the license, then valid. This does not affect the health endpoint’s status code.
Model container health
The model container serves/livez and /readyz on port 8080. Use /livez to confirm that the process is running and /readyz to confirm that it can accept inference requests.
ok.
OpenTelemetry metrics
The Rime engine exposes these metrics:rime.engine.concurrent_pipelinerime.engine.generated_audio_durationrime.engine.gpu_loadrime.engine.initial_latencyrime.engine.invocation_requestrime.engine.unicode_scalar_value_countrime.engine.stage.items_inrime.engine.stage.items_outrime.engine.stage.first_output_latency
rime.engine.stage.* series carry a stage attribute.
Set OTEL_COLLECTOR_PROTOCOL to grpc (recommended), http/protobuf, or http/json, and set OTEL_COLLECTOR_ENDPOINT to your collector endpoint:
OTEL_RESOURCE_ATTRIBUTES to add them. The model also does not implement OpenTelemetry authentication, so run a collector sidecar when the upstream endpoint requires credentials.
To expose the OpenTelemetry series for Prometheus, follow the Prometheus integration guide.
Logs
The model container writes one plain-text line per event to its standard output. Request text is not included by default: lines that describe a request carrytext_chars, the length of the input, instead of the input itself.
Set RIME_LOG_REQUEST_TEXT=true to include request text in those lines. Do this only where the container log stays inside a boundary that may hold end-user text; anything reading the log, including a log forwarder, receives the text verbatim.
OTEL_LOGS_EXPORTER=otlp to have the model also send every log line to the collector named by OTEL_COLLECTOR_ENDPOINT, over OTEL_COLLECTOR_PROTOCOL; both variables must be set as for metrics, or the switch exports nothing. The model sends each line as one OTLP log record: the line is the body, the log level is the severity, and request_id is an attribute on lines that belong to a request. The model sends logs nowhere else, and never to Rime.
OTEL_LOGS_EXPORTER unset to keep logs on standard output only; the collector endpoint then carries metrics alone.
Histogram tuning
Metrics that emit histogram data use preconfigured bucket boundaries. Override them with the correspondingHISTOGRAM_BUCKETS_* environment variable. Add a separate suffix with HISTOGRAM_SUFFIX_* when you need to distinguish differently tuned series.
Initial latency
rime.engine.initial_latency is measured in milliseconds.
Default bounds:
rime.engine.initial_latency.tuned_120ms.
Generated audio duration
rime.engine.generated_audio_duration is measured in seconds.
Default bounds:
rime.engine.generated_audio_duration.tuned_3s.
