...

Package ext

import "github.com/opentracing/opentracing-go/ext"
Overview
Index

Overview ▾

Variables

These constants define common tag names recommended for better portability across tracing systems and languages/platforms.

The tag names are defined as typed strings, so that in addition to the usual use

span.setTag(TagName, value)

they also support value type validation via this additional syntax:

TagName.Set(span, value)
var (

    // SpanKind hints at relationship between spans, e.g. client/server
    SpanKind = spanKindTagName("span.kind")

    // SpanKindRPCClient marks a span representing the client-side of an RPC
    // or other remote call
    SpanKindRPCClientEnum = SpanKindEnum("client")
    SpanKindRPCClient     = opentracing.Tag{Key: string(SpanKind), Value: SpanKindRPCClientEnum}

    // SpanKindRPCServer marks a span representing the server-side of an RPC
    // or other remote call
    SpanKindRPCServerEnum = SpanKindEnum("server")
    SpanKindRPCServer     = opentracing.Tag{Key: string(SpanKind), Value: SpanKindRPCServerEnum}

    // SpanKindProducer marks a span representing the producer-side of a
    // message bus
    SpanKindProducerEnum = SpanKindEnum("producer")
    SpanKindProducer     = opentracing.Tag{Key: string(SpanKind), Value: SpanKindProducerEnum}

    // SpanKindConsumer marks a span representing the consumer-side of a
    // message bus
    SpanKindConsumerEnum = SpanKindEnum("consumer")
    SpanKindConsumer     = opentracing.Tag{Key: string(SpanKind), Value: SpanKindConsumerEnum}

    // Component is a low-cardinality identifier of the module, library,
    // or package that is generating a span.
    Component = StringTagName("component")

    // SamplingPriority determines the priority of sampling this Span.
    SamplingPriority = Uint16TagName("sampling.priority")

    // PeerService records the service name of the peer.
    PeerService = StringTagName("peer.service")

    // PeerAddress records the address name of the peer. This may be a "ip:port",
    // a bare "hostname", a FQDN or even a database DSN substring
    // like "mysql://username@127.0.0.1:3306/dbname"
    PeerAddress = StringTagName("peer.address")

    // PeerHostname records the host name of the peer
    PeerHostname = StringTagName("peer.hostname")

    // PeerHostIPv4 records IP v4 host address of the peer
    PeerHostIPv4 = IPv4TagName("peer.ipv4")

    // PeerHostIPv6 records IP v6 host address of the peer
    PeerHostIPv6 = StringTagName("peer.ipv6")

    // PeerPort records port number of the peer
    PeerPort = Uint16TagName("peer.port")

    // HTTPUrl should be the URL of the request being handled in this segment
    // of the trace, in standard URI format. The protocol is optional.
    HTTPUrl = StringTagName("http.url")

    // HTTPMethod is the HTTP method of the request, and is case-insensitive.
    HTTPMethod = StringTagName("http.method")

    // HTTPStatusCode is the numeric HTTP status code (200, 404, etc) of the
    // HTTP response.
    HTTPStatusCode = Uint16TagName("http.status_code")

    // DBInstance is database instance name.
    DBInstance = StringTagName("db.instance")

    // DBStatement is a database statement for the given database type.
    // It can be a query or a prepared statement (i.e., before substitution).
    DBStatement = StringTagName("db.statement")

    // DBType is a database type. For any SQL database, "sql".
    // For others, the lower-case database category, e.g. "redis"
    DBType = StringTagName("db.type")

    // DBUser is a username for accessing database.
    DBUser = StringTagName("db.user")

    // MessageBusDestination is an address at which messages can be exchanged
    MessageBusDestination = StringTagName("message_bus.destination")

    // Error indicates that operation represented by the span resulted in an error.
    Error = BoolTagName("error")
)

func LogError

func LogError(span opentracing.Span, err error, fields ...log.Field)

LogError sets the error=true tag on the Span and logs err as an "error" event.

func RPCServerOption

func RPCServerOption(client opentracing.SpanContext) opentracing.StartSpanOption

RPCServerOption returns a StartSpanOption appropriate for an RPC server span with `client` representing the metadata for the remote peer Span if available. In case client == nil, due to the client not being instrumented, this RPC server span will be a root span.

type BoolTagName

BoolTagName is a common tag name to be set to a bool value

type BoolTagName string

func (BoolTagName) Set

func (tag BoolTagName) Set(span opentracing.Span, value bool)

Set adds a bool tag to the `span`

type IPv4TagName

IPv4TagName is a common tag name to be set to an ipv4 value

type IPv4TagName string

func (IPv4TagName) Set

func (tag IPv4TagName) Set(span opentracing.Span, value uint32)

Set adds IP v4 host address of the peer as an uint32 value to the `span`, keep this for backward and zipkin compatibility

func (IPv4TagName) SetString

func (tag IPv4TagName) SetString(span opentracing.Span, value string)

SetString records IP v4 host address of the peer as a .-separated tuple to the `span`. E.g., "127.0.0.1"

type SpanKindEnum

SpanKindEnum represents common span types

type SpanKindEnum string

type StringTagName

StringTagName is a common tag name to be set to a string value

type StringTagName string

func (StringTagName) Set

func (tag StringTagName) Set(span opentracing.Span, value string)

Set adds a string tag to the `span`

type Uint16TagName

Uint16TagName is a common tag name to be set to a uint16 value

type Uint16TagName string

func (Uint16TagName) Set

func (tag Uint16TagName) Set(span opentracing.Span, value uint16)

Set adds a uint16 tag to the `span`

type Uint32TagName

Uint32TagName is a common tag name to be set to a uint32 value

type Uint32TagName string

func (Uint32TagName) Set

func (tag Uint32TagName) Set(span opentracing.Span, value uint32)

Set adds a uint32 tag to the `span`