OpenAI compatible API · Attested · Public status

Client Reliability Telemetry

See exactly what TrustedRouter SDKs measure for client-observed reliability, what they never send, how long metadata is retained, and how to opt out.

Verify gateway
Onebase URL to migrate
100sof models and routes
0prompt or output logs. Always.
Content-free reliability signals

Measure uptime as your process sees it.

TrustedRouter can measure requests that reach its infrastructure. An SDK can also see DNS, TLS, connection, timeout, and broken-stream failures that never arrive. Client reliability telemetry joins those views without sending prompt or response content.

Exact per-minute counters measure logical requests after retries. Sampled events provide bounded diagnostics. Client-observed availability has its own methodology and is never part of the 99.99 % Router Core SLO.

Attempt channel

x-tr-client

A compact header travels with each attempt to a known TrustedRouter inference host. It describes retry state, timing, streaming, and failover.

Beacon channel

trustedrouter.com/v1/client-events

A fire-and-forget batch reports exact counters and sampled diagnostics. It runs outside the request retry engine and never blocks your request.

The per-attempt x-tr-client header

Version 1 is at most 160 bytes. Keys are unique; every value comes from a closed vocabulary or bounded integer.

KeyMeaningAllowed value
vSchema version1
aAttempt index; zero is the first attemptInteger 0–99
poPrevious attempt outcomenone, http_error, transport_error, timeout, or stream_broken
pcPrevious error classA closed error class listed below, or none
phPrevious TrustedRouter host pathapex, ally, uptime, us_central1, us_east4, europe_west4, control, custom, or none
pmPrevious attempt elapsed timeMilliseconds, 0–3,600,000
smTime since the first attempt startedMilliseconds, 0–3,600,000
sStreaming request0 or 1
foCandidate index advanced during this logical request0 or 1

The batched beacon field list

Batch

One bounded process batch.

schema_version1
batch_id32 lowercase hex characters
instance_id16 lowercase hex characters
seqPer-process batch sequence
sdk.nametr-py, tr-js, tr-go, tr-rust, tr-java, or tr-swift
sdk.versionSDK semantic version
sdk.langpython, js, go, rust, java, or swift
sdk.runtimeBounded runtime family and version
sdk.oslinux, macos, windows, ios, android, freebsd, or other
sdk.archx64, x32, arm, arm64, wasm, or other
syntheticWhether requests carried TrustedRouter synthetic metadata
dropped_since_lastLocally dropped records since the prior batch
eventsUp to 100 sampled request events
countersUp to 200 exact minute counters
Request event

A sampled logical request.

age_msCompletion-to-flush age, up to 24 hours
planeinference or control
endpointClosed endpoint enum
methodGET, POST, PUT, PATCH, or DELETE
streamingBoolean
provider_pinnedWhether provider candidates were pinned
modelCatalog-safe model id or null
attemptsOne to 16 attempt objects
final_outcomeClosed final outcome enum
final_http_statusHTTP status 100–599 or null
total_msTotal logical request duration
ttft_msFirst event or first body byte, or null
failover_usedBoolean
timeout_phasenone, connect, first_byte, idle, or total
configured_timeout_msConfigured timeout or null
sample_rateSampling probability in (0, 1]
sample_reasonfailure, retried, slow, or random
Attempt

One network attempt.

indexAttempt index 0–99
hostClosed host enum
outcomeClosed attempt outcome enum
http_statusHTTP status or null
error_classClosed error class or null
error_sourcerouter, provider, unknown, or null
should_retryObserved retry hint: true, false, or absent
retry_after_msObserved retry delay or null
elapsed_msAttempt duration
ttfb_msHeaders received duration or null
request_idTrustedRouter rlog_… response id or null
movedWhether the candidate index advanced
Minute counter

Exact availability inputs.

window_start_age_msMinute start as an age before flush
levelattempt or request
endpointClosed endpoint enum
streamingBoolean
hostClosed host enum
outcomeClosed final outcome enum
error_classClosed error class or null
http_status_classnone, 2xx, 4xx, 429, or 5xx
timeout_phaseClosed timeout phase enum
timeout_floor_metWhether the disclosed timeout floor was met
provider_pinnedBoolean
requestsExact request count
attemptsExact attempt count
failover_usedExact failover count
first_attempt_successExact first-attempt success count
total_ms_histBounded latency histogram
first_event_ms_histBounded first-event histogram

Closed endpoint values: chat_completions, messages, responses, embeddings, images, videos, models, fusion, control_other, and inference_other. Error classes: dns, tls, connect_refused, connect_timeout, connect_error, read_timeout, write_timeout, pool_timeout, protocol_error, reset, io_error, proxy_error, stream_stalled, and unknown.

What is never sent

Content

No request or response text.

  • Prompts
  • Completions
  • Message text
  • Tool inputs or outputs
Identity

No application identity fields.

  • Workspace ids
  • Key ids
  • User ids
  • Session ids
  • IPs (IP addresses)
Infrastructure

No secret routing identifiers.

  • Hostnames of custom endpoints
  • Idempotency keys

Your API key identifies the batch; it is stored as a salted hash surrogate. Raw workspace and key ids do not enter the analytics store.

Your control

Default on for known TrustedRouter hosts. Easy to turn off.

Pass telemetry=False to the SDK, set TRUSTEDROUTER_TELEMETRY=0, or set DO_NOT_TRACK=1. Opting out disables both the x-tr-client header and beacon. Custom inference or control hosts default off.

Set TRUSTEDROUTER_TELEMETRY_DEBUG=1 to echo each batch JSON to stderr before it is sent.

Opt out or inspectenvironment
# Disable telemetry
TRUSTEDROUTER_TELEMETRY=0

# Universal opt-out
DO_NOT_TRACK=1

# Inspect each batch before send
TRUSTEDROUTER_TELEMETRY_DEBUG=1

Retention

Sampled events

90 days

Raw content-free diagnostic events expire after 90 days.

Exact counters

180 days

Per-minute counters expire after 180 days.

Reliability rollups

24 months

Aggregated client availability rollups expire after 24 months.

Client-observed availability methodology v1

One unit is one logical SDK call. Retries never count twice, and a request rescued by failover is a success.

TrustedRouter faults

Counted faults include DNS, TLS, connection refused, connection timeout, connection error, reset, I/O, and protocol errors on known hosts; HTTP 5xx unless the request is provider-pinned and the error source is the provider; connect timeouts configured for at least 10 seconds; first-byte timeouts configured for at least 60 seconds; broken streams; stalled streams meeting the 30-second idle floor; and unknown failures conservatively.

Disclosed exclusions

Caller aborts, HTTP 4xx and 429, pool and proxy errors, custom hosts, timeouts below the floor, total-phase timeouts, and provider 5xx responses for provider-pinned requests are counted separately and excluded from the denominator.

Publication gate

Availability is successes ÷ (successes + TrustedRouter faults). Fleet percentages require at least 1,000 requests from at least three distinct tenants and a 14-day clean calibration period. Live figures remain internal by default because they include upstream provider-caused failures; public disclosure can be explicitly enabled after per-provider attribution makes the number fair.

SDK rollout

Python 0.6.0 implements the full contract first.

TrustedRouter Python SDK 0.6.0 is the first release with default-on beacons for known TrustedRouter hosts. JavaScript, Go, Rust, Java, and Swift SDKs remain header-only until their release notes explicitly say they implement the beacon contract.

View public service status

Workspace access

Sign in

Choose a sign in method to access your TrustedRouter workspace.

By signing in you agree to the terms of service and privacy policy.