Documentation ¶
Index ¶
Constants ¶
const ( // SpanKindCLIENT captures enum value "CLIENT" SpanKindCLIENT string = "CLIENT" // SpanKindSERVER captures enum value "SERVER" SpanKindSERVER string = "SERVER" // SpanKindPRODUCER captures enum value "PRODUCER" SpanKindPRODUCER string = "PRODUCER" // SpanKindCONSUMER captures enum value "CONSUMER" SpanKindCONSUMER string = "CONSUMER" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Annotation ¶
type Annotation struct { // Epoch **microseconds** of this event. // // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC // // This value should be set directly by instrumentation, using the most precise // value possible. For example, gettimeofday or multiplying epoch millis by 1000. // Timestamp int64 `json:"timestamp,omitempty"` // Usually a short tag indicating an event, like "error" // // While possible to add larger data, such as garbage collection details, low // cardinality event names both keep the size of spans down and also are easy // to search against. // Value string `json:"value,omitempty"` }
Annotation Annotation
Associates an event that explains latency with a timestamp. Unlike log statements, annotations are often codes. Ex. "ws" for WireSend
Zipkin v1 core annotations such as "cs" and "sr" have been replaced with Span.Kind, which interprets timestamp and duration.
swagger:model Annotation
func (*Annotation) ContextValidate ¶ added in v1.23.0
ContextValidate validates this annotation based on context it is used
func (*Annotation) MarshalBinary ¶
func (m *Annotation) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*Annotation) UnmarshalBinary ¶
func (m *Annotation) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Endpoint ¶
type Endpoint struct { // The text representation of the primary IPv4 address associated with this // a connection. Ex. 192.168.99.100 Absent if unknown. // // Format: ipv4 IPV4 strfmt.IPv4 `json:"ipv4,omitempty"` // The text representation of the primary IPv6 address associated with this // a connection. Ex. 2001:db8::c001 Absent if unknown. // // Prefer using the ipv4 field for mapped addresses. // // Format: ipv6 IPV6 strfmt.IPv6 `json:"ipv6,omitempty"` // Depending on context, this could be a listen port or the client-side of a // socket. Absent if unknown // Port int64 `json:"port,omitempty"` // Lower-case label of this node in the service graph, such as "favstar". Leave // absent if unknown. // // This is a primary label for trace lookup and aggregation, so it should be // intuitive and consistent. Many use a name from service discovery. // ServiceName string `json:"serviceName,omitempty"` }
Endpoint Endpoint
The network context of a node in the service graph ¶
swagger:model Endpoint
func (*Endpoint) ContextValidate ¶ added in v1.23.0
ContextValidate validates this endpoint based on context it is used
func (*Endpoint) MarshalBinary ¶
MarshalBinary interface implementation
func (*Endpoint) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type ListOfSpans ¶
type ListOfSpans []*Span
ListOfSpans ListOfSpans
A list of spans with possibly different trace ids, in no particular order ¶
swagger:model ListOfSpans
func (ListOfSpans) ContextValidate ¶ added in v1.23.0
ContextValidate validate this list of spans based on the context it is used
type Span ¶
type Span struct { // Associates events that explain latency with the time they happened. // Unique: true Annotations []*Annotation `json:"annotations"` // True is a request to store this span even if it overrides sampling policy. // // This is true when the `X-B3-Flags` header has a value of 1. // Debug bool `json:"debug,omitempty"` // Duration in **microseconds** of the critical path, if known. Durations of less // than one are rounded up. Duration of children can be longer than their parents // due to asynchronous operations. // // For example 150 milliseconds is 150000 microseconds. // // Minimum: 1 Duration int64 `json:"duration,omitempty"` // Unique 64bit identifier for this operation within the trace. // // Encoded as 16 lowercase hex characters. For example ffdc9bb9a6453df3 // // Required: true // Max Length: 16 // Min Length: 16 // Pattern: [a-z0-9]{16} ID *string `json:"id"` // When present, clarifies timestamp, duration and remoteEndpoint. When // absent, the span is local or incomplete. Unlike client and server, // there is no direct critical path latency relationship between producer // and consumer spans. // // * `CLIENT` // * timestamp - The moment a request was sent (formerly "cs") // * duration - When present indicates when a response was received (formerly "cr") // * remoteEndpoint - Represents the server. Leave serviceName absent if unknown. // * `SERVER` // * timestamp - The moment a request was received (formerly "sr") // * duration - When present indicates when a response was sent (formerly "ss") // * remoteEndpoint - Represents the client. Leave serviceName absent if unknown. // * `PRODUCER` // * timestamp - The moment a message was sent to a destination (formerly "ms") // * duration - When present represents delay sending the message, such as batching. // * remoteEndpoint - Represents the broker. Leave serviceName absent if unknown. // * `CONSUMER` // * timestamp - The moment a message was received from an origin (formerly "mr") // * duration - When present represents delay consuming the message, such as from backlog. // * remoteEndpoint - Represents the broker. Leave serviceName absent if unknown. // // Enum: [CLIENT SERVER PRODUCER CONSUMER] Kind string `json:"kind,omitempty"` // The host that recorded this span, primarily for query by service name. // // Instrumentation should always record this. Usually, absent implies late data. // The IP address corresponding to this is usually the site local or advertised // service address. When present, the port indicates the listen port. // LocalEndpoint *Endpoint `json:"localEndpoint,omitempty"` // The logical operation this span represents in lowercase (e.g. rpc method). // Leave absent if unknown. // // As these are lookup labels, take care to ensure names are low cardinality. // For example, do not embed variables into the name. // Name string `json:"name,omitempty"` // The parent span ID or absent if this the root span in a trace. // Max Length: 16 // Min Length: 16 // Pattern: [a-z0-9]{16} ParentID string `json:"parentId,omitempty"` // When an RPC (or messaging) span, indicates the other side of the connection. // RemoteEndpoint *Endpoint `json:"remoteEndpoint,omitempty"` Shared bool `json:"shared,omitempty"` // Tags give your span context for search, viewing and analysis. Tags Tags `json:"tags,omitempty"` // Epoch **microseconds** of the start of this span, possibly absent if incomplete. // // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC // // This value should be set directly by instrumentation, using the most precise // value possible. For example, gettimeofday or multiplying epoch millis by 1000. // // There are three known edge-cases where this could be reported absent. // * A span was allocated but never started (ex not yet received a timestamp) // * The span's start event was lost // * Data about a completed span (ex tags) were sent after the fact // Timestamp int64 `json:"timestamp,omitempty"` // Randomly generated, unique identifier for a trace, set on all spans within it. // // Encoded as 16 or 32 lowercase hex characters corresponding to 64 or 128 bits. // For example, a 128bit trace ID looks like 4e441824ec2b6a44ffdc9bb9a6453df3 // // Required: true // Max Length: 32 // Min Length: 16 // Pattern: [a-z0-9]{16,32} TraceID *string `json:"traceId"` }
Span Span
swagger:model Span
func (*Span) ContextValidate ¶ added in v1.23.0
ContextValidate validate this span based on the context it is used
func (*Span) MarshalBinary ¶
MarshalBinary interface implementation
func (*Span) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type Tags ¶
Tags Tags
Adds context to a span, for search, viewing and analysis.
For example, a key "your_app.version" would let you lookup traces by version. A tag "sql.query" isn't searchable, but it can help in debugging when viewing a trace.
swagger:model Tags
func (Tags) ContextValidate ¶ added in v1.23.0
ContextValidate validates this tags based on context it is used