Documentation
¶
Overview ¶
Package internal provides shared middleware functionality for OpenTelemetry tracers.
Package internal provides shared utilities for OpenTelemetry middleware tracers.
Index ¶
- func Middleware(getMiddlewareTracer TracerRouter, log logger.Logger) func(*http.Request, NextMiddleware) (*http.Response, error)
- func SetJSONAttr(span trace.Span, key string, value any) error
- func ToInt64(v any) (bool, int64)
- type BufferedReader
- type MiddlewareTracer
- type NextMiddleware
- type TracerRouter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Middleware ¶
func Middleware(getMiddlewareTracer TracerRouter, log logger.Logger) func(*http.Request, NextMiddleware) (*http.Response, error)
Middleware creates a shared OpenTelemetry middleware that uses the provided router to determine which tracer to use for each endpoint. An optional logger can be provided for debug and error logging. If nil, logging is disabled.
func SetJSONAttr ¶
SetJSONAttr is a helper function to set JSON attributes on spans
Types ¶
type BufferedReader ¶
type BufferedReader struct {
// contains filtered or unexported fields
}
BufferedReader saves data read from the readCloser and triggers an action when fully read or closed.
func NewBufferedReader ¶
func NewBufferedReader(src io.ReadCloser, onDone func(io.Reader)) *BufferedReader
NewBufferedReader creates a new buffered reader that calls onDone when fully read or closed.
func (*BufferedReader) Close ¶
func (r *BufferedReader) Close() error
Close closes the underlying reader and triggers the onDone callback.
type MiddlewareTracer ¶
type MiddlewareTracer interface {
StartSpan(ctx context.Context, start time.Time, request io.Reader) (context.Context, trace.Span, error)
TagSpan(span trace.Span, response io.Reader) error
}
MiddlewareTracer adds tracing to API requests by parsing bodies of the request and response.
type NextMiddleware ¶
NextMiddleware represents the next middleware to run in the client middleware chain.
type TracerRouter ¶
type TracerRouter func(path string) MiddlewareTracer
TracerRouter maps URL paths to specific tracers for different endpoints.