Documentation
¶
Overview ¶
Package rpchttp provides request-scoped HTTP server timing that both the RPC executor path and hand-written handlers can feed, emitted once as a Server-Timing response header by TimingMiddleware.
The package deliberately imports only the standard library (not its parent rpc package) so business logic can call AddTiming without pulling in rpc's cobra/openapi dependencies and without creating an import cycle.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddTiming ¶
AddTiming adds d to the named phase of the current request's accumulator. It is a no-op when no accumulator is present (the CLI path has no HTTP response to attach a header to).
func TimingMiddleware ¶
TimingMiddleware installs a request-scoped Timings accumulator into the request context and stamps a Server-Timing response header. The header is written on the first WriteHeader/Write, or — for handlers that return without writing anything — once the handler returns. It carries a `total` metric plus any phase metrics business logic contributed via AddTiming/Track.
Types ¶
type Timings ¶
type Timings struct {
// contains filtered or unexported fields
}
Timings is a request-scoped, insertion-ordered accumulator of named phase durations. Durations for the same name sum, so AddTiming may be called once per file in a loop and still report a single total for that phase.
func TimingsFromContext ¶
TimingsFromContext returns the accumulator installed by WithTimings, if any.
func WithTimings ¶
WithTimings returns a context carrying a fresh accumulator and the accumulator itself, so a middleware can read it back after the handler returns.