...

Package b3

import "go.opencensus.io/plugin/ochttp/propagation/b3"
Overview
Index

Overview ▾

Package b3 contains a propagation.HTTPFormat implementation for B3 propagation. See https://github.com/openzipkin/b3-propagation for more details.

Constants

B3 headers that OpenCensus understands.

const (
    TraceIDHeader = "X-B3-TraceId"
    SpanIDHeader  = "X-B3-SpanId"
    SampledHeader = "X-B3-Sampled"
)

func ParseSampled

func ParseSampled(sampled string) (trace.TraceOptions, bool)

ParseSampled parses the value of the X-B3-Sampled header.

func ParseSpanID

func ParseSpanID(sid string) (spanID trace.SpanID, ok bool)

ParseSpanID parses the value of the X-B3-SpanId or X-B3-ParentSpanId headers.

func ParseTraceID

func ParseTraceID(tid string) (trace.TraceID, bool)

ParseTraceID parses the value of the X-B3-TraceId header.

type HTTPFormat

HTTPFormat implements propagation.HTTPFormat to propagate traces in HTTP headers in B3 propagation format. HTTPFormat skips the X-B3-ParentId and X-B3-Flags headers because there are additional fields not represented in the OpenCensus span context. Spans created from the incoming header will be the direct children of the client-side span. Similarly, receiver of the outgoing spans should use client-side span created by OpenCensus as the parent.

type HTTPFormat struct{}

func (*HTTPFormat) SpanContextFromRequest

func (f *HTTPFormat) SpanContextFromRequest(req *http.Request) (sc trace.SpanContext, ok bool)

SpanContextFromRequest extracts a B3 span context from incoming requests.

func (*HTTPFormat) SpanContextToRequest

func (f *HTTPFormat) SpanContextToRequest(sc trace.SpanContext, req *http.Request)

SpanContextToRequest modifies the given request to include B3 headers.