Skip to main content
The Go runtime exposes credential- and payload-free diagnostics, a bounded lifecycle observer, and an optional OpenTelemetry module. Observer and telemetry failures are isolated from send results.

Diagnostics

Diagnostics returns one coherent snapshot of current resource use and saturating counters:
The snapshot contains no event payload, customer ID, idempotency key, URL, header value, or credential.

Lifecycle observers

Pass an Observer when constructing the generated client:
Events contain stable outcomes, error codes, delivery states, HTTP status classes, durations, attempt numbers, and bounded attempt summaries. They contain no request or response bodies, headers, credentials, customer IDs, idempotency keys, or URLs. The queue holds at most 1,024 events. Callbacks run serially on a dedicated goroutine outside send and transport paths. When the queue is full, new events are dropped and counted instead of blocking a send. A callback panic increments ObserverFailures without changing the operation result. Keep callbacks fast. Send events to your own bounded metrics or logging layer if processing needs more time.

OpenTelemetry

The OpenTelemetry bridge is a separate Go module so applications that do not use OpenTelemetry do not inherit its dependencies. Install it with:
Use global providers:
Or pass providers owned by your application:
The bridge borrows providers. Closing the Repost client does not shut them down.

Traces

The bridge creates one repost.send span and one repost.send.attempt child for each attempt. Passing an inbound request context to a generated send keeps the inbound span as the parent of repost.send. Attempt spans use http.request.method, repost.retry.attempt, network.protocol.name, http.response.status_code, and error.type. The bridge propagates only W3C traceparent and tracestate headers supplied by the tracing context.

Metrics

Metrics use only outcome, error.code, delivery.state, and http.status.class. The bridge does not accept arbitrary customer labels.

Continue

Testing

Record and await lifecycle events deterministically.

Frameworks

Preserve inbound tracing context and own provider shutdown.

Reliability

Interpret the codes and states in these signals.