Documentation ¶
Index ¶
- Constants
- Variables
- func CoderExporter(ctx context.Context) (*otlptrace.Exporter, error)
- func DefaultExporter(ctx context.Context) (*otlptrace.Exporter, error)
- func EndHTTPSpan(r *http.Request, status int, span trace.Span)
- func FuncName() string
- func FuncNameSkip(skip int) string
- func GetTracerName(ctx context.Context) string
- func HoneycombExporter(ctx context.Context, apiKey string) (*otlptrace.Exporter, error)
- func Middleware(tracerProvider trace.TracerProvider) func(http.Handler) http.Handler
- func PostgresDriver(tp trace.TracerProvider, service string) (string, error)
- func RunWithoutSpan(ctx context.Context, fn func(ctx context.Context))
- func SetTracerName(ctx context.Context, tracerName string) context.Context
- func StartSpan(ctx context.Context, opts ...trace.SpanStartOption) (context.Context, trace.Span)
- func StartSpanWithName(ctx context.Context, name string, opts ...trace.SpanStartOption) (context.Context, trace.Span)
- func StatusWriterMiddleware(next http.Handler) http.Handler
- func TracerProvider(ctx context.Context, service string, opts TracerOpts) (*sdktrace.TracerProvider, func(context.Context) error, error)
- type SlogSink
- type StatusWriter
- type TracerOpts
Constants ¶
const TracerName = "coderd"
Variables ¶
var NoopSpan trace.Span
Functions ¶
func CoderExporter ¶ added in v0.9.0
func DefaultExporter ¶ added in v0.9.0
func EndHTTPSpan ¶ added in v0.8.7
EndHTTPSpan captures request and response data after the handler is done.
func FuncNameSkip ¶ added in v0.9.0
func GetTracerName ¶ added in v0.12.6
GetTracerName returns the tracer name from the context, or TracerName if none is set.
func HoneycombExporter ¶ added in v0.12.0
func Middleware ¶ added in v0.9.0
Middleware adds tracing to http routes.
func PostgresDriver ¶
func PostgresDriver(tp trace.TracerProvider, service string) (string, error)
Postgres driver will register a new tracing sql driver and return the driver name.
func RunWithoutSpan ¶ added in v0.13.0
RunWithoutSpan runs the given function with the span stripped from the context and replaced with a no-op span. This is useful for avoiding logs being added to span (to save money).
func SetTracerName ¶ added in v0.12.6
SetTracerName sets the tracer name that will be used by all spans created from the context.
func StartSpan ¶ added in v0.9.0
StartSpan calls StartSpanWithName with the name set to the caller's function name.
func StartSpanWithName ¶ added in v0.12.6
func StartSpanWithName(ctx context.Context, name string, opts ...trace.SpanStartOption) (context.Context, trace.Span)
StartSpanWithName starts a new span with the given name from the context. If a tracer name was set on the context (or one of its parents), it will be used as the tracer name instead of the default TracerName.
func StatusWriterMiddleware ¶ added in v0.13.0
func TracerProvider ¶
func TracerProvider(ctx context.Context, service string, opts TracerOpts) (*sdktrace.TracerProvider, func(context.Context) error, error)
TracerProvider creates a grpc otlp exporter and configures a trace provider. Caller is responsible for calling TracerProvider.Shutdown to ensure all data is flushed.
Types ¶
type SlogSink ¶ added in v0.12.6
type SlogSink struct{}
type StatusWriter ¶ added in v0.9.0
type StatusWriter struct { http.ResponseWriter Status int Hijacked bool // contains filtered or unexported fields }
StatusWriter intercepts the status of the request and the response body up to maxBodySize if Status >= 400. It is guaranteed to be the ResponseWriter directly downstream from Middleware.
func (*StatusWriter) Flush ¶ added in v0.9.0
func (w *StatusWriter) Flush()
func (*StatusWriter) Hijack ¶ added in v0.9.0
func (w *StatusWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)
func (*StatusWriter) ResponseBody ¶ added in v0.9.0
func (w *StatusWriter) ResponseBody() []byte
func (*StatusWriter) WriteHeader ¶ added in v0.9.0
func (w *StatusWriter) WriteHeader(status int)
type TracerOpts ¶ added in v0.9.0
type TracerOpts struct { // Default exports to a backend configured by environment variables. See: // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md Default bool // Coder exports traces to Coder's public tracing ingest service and is used // to improve the product. It is disabled when opting out of telemetry. Coder bool // Exports traces to Honeycomb.io with the provided API key. Honeycomb string }
TracerOpts specifies which telemetry exporters should be configured.