Documentation
¶
Index ¶
- Constants
- func DialControl(endpoint string) (*grpc.ClientConn, ateapipb.ControlClient, error)
- func ElapsedFromHeader(h http.Header, key string, fallback time.Duration) (time.Duration, string)
- func ElapsedFromMD(tr metadata.MD, key string, fallback time.Duration) (time.Duration, string)
- func GoroutineID() int64
- func LogSampledTrace(span trace.Span, name string, latency time.Duration, source string, err error)
- func MsFloat(d time.Duration) float64
Constants ¶
const ( SourceClient = "client" SourceServer = "server" )
Variables ¶
This section is empty.
Functions ¶
func DialControl ¶
func DialControl(endpoint string) (*grpc.ClientConn, ateapipb.ControlClient, error)
DialControl opens an authenticated gRPC connection to ateapi.
ateapi rejects calls that carry no credential, so present the pod certificate — the same client auth the base install gives ate-controller and atenet-router. ClientCredBundle re-reads the bundle on every handshake, so rotations are picked up without a restart.
func ElapsedFromHeader ¶
ElapsedFromHeader extracts the server elapsed time from HTTP headers, falling back to client latency.
func ElapsedFromMD ¶
ElapsedFromMD extracts the server elapsed time from gRPC metadata, falling back to client latency.
func GoroutineID ¶
func GoroutineID() int64
goroutineID extracts the runtime's per-goroutine ID via the standard runtime.Stack trick. Used to key per-VU state because boomer's Task model has no built-in per-VU hook — see the runtime.shutdown comment for the limitation this implies on user-count rescale.
func LogSampledTrace ¶
LogSampledTrace emits a single structured line per sampled span. Operators parse these lines (e.g. via fluentbit) to rebuild the trace stream.
Types ¶
This section is empty.