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.
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.
