package telemetry

Import Path
	go.opentelemetry.io/otel/trace/internal/telemetry (on go.dev)

Dependency Relation
	imports 13 packages, and imported by one package

Involved Source Files attr.go Package telemetry provides a lightweight representations of OpenTelemetry telemetry that is compatible with the OTLP JSON protobuf encoding. id.go number.go resource.go scope.go span.go status.go traces.go value.go
Package-Level Type Names (total 17)
/* sort by: | */
Attr is a key-value pair. Key string Value Value Equal reports whether a is equal to b. func Bool(key string, value bool) Attr func Bytes(key string, value []byte) Attr func Float64(key string, value float64) Attr func Int(key string, value int) Attr func Int64(key string, value int64) Attr func Map(key string, value ...Attr) Attr func Slice(key string, value ...Value) Attr func String(key, value string) Attr func Value.AsMap() []Attr func Map(key string, value ...Attr) Attr func MapValue(kvs ...Attr) Value func Attr.Equal(b Attr) bool
Resource information. Attrs are the set of attributes that describe the resource. Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key). DroppedAttrs is the number of dropped attributes. If the value is 0, then no attributes were dropped. UnmarshalJSON decodes the OTLP formatted JSON contained in data into r. *Resource : encoding/json.Unmarshaler *Resource : github.com/goccy/go-json.Unmarshaler
ResourceSpans is a collection of ScopeSpans from a Resource. The resource for the spans in this message. If this field is not set then no resource info is known. This schema_url applies to the data in the "resource" field. It does not apply to the data in the "scope_spans" field which have their own schema_url field. A list of ScopeSpans that originate from a resource. UnmarshalJSON decodes the OTLP formatted JSON contained in data into rs. *ResourceSpans : encoding/json.Unmarshaler *ResourceSpans : github.com/goccy/go-json.Unmarshaler
Scope is the identifying values of the instrumentation scope. Attrs []Attr DroppedAttrs uint32 Name string Version string UnmarshalJSON decodes the OTLP formatted JSON contained in data into r. *Scope : encoding/json.Unmarshaler *Scope : github.com/goccy/go-json.Unmarshaler
ScopeSpans is a collection of Spans produced by an InstrumentationScope. The Schema URL, if known. This is the identifier of the Schema that the span data is recorded in. To learn more about Schema URL see https://opentelemetry.io/docs/specs/otel/schemas/#schema-url This schema_url applies to all spans and span events in the "spans" field. The instrumentation scope information for the spans in this message. Semantically when InstrumentationScope isn't set, it is equivalent with an empty instrumentation scope name (unknown). A list of Spans that originate from an instrumentation scope. UnmarshalJSON decodes the OTLP formatted JSON contained in data into ss. *ScopeSpans : encoding/json.Unmarshaler *ScopeSpans : github.com/goccy/go-json.Unmarshaler
A Span represents a single operation performed by a single component of the system. attributes is a collection of key/value pairs. Note, global attributes like server name can be set using the resource API. Examples of attributes: "/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" "/http/server_latency": 300 "example.com/myattribute": true "example.com/score": 10.239 The OpenTelemetry API specification further restricts the allowed value types: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/common/README.md#attribute Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key). dropped_attributes_count is the number of attributes that were discarded. Attributes can be discarded because their keys are too long or because there are too many attributes. If this value is 0, then no attributes were dropped. dropped_events_count is the number of dropped events. If the value is 0, then no events were dropped. dropped_links_count is the number of dropped links after the maximum size was enforced. If this value is 0, then no links were dropped. end_time_unix_nano is the end time of the span. On the client side, this is the time kept by the local machine where the span execution ends. On the server side, this is the time when the server application handler stops running. Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. This field is semantically required and it is expected that end_time >= start_time. events is a collection of Event items. Flags, a bit field. Bits 0-7 (8 least significant bits) are the trace flags as defined in W3C Trace Context specification. To read the 8-bit W3C trace flag, use `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`. See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions. Bits 8 and 9 represent the 3 states of whether a span's parent is remote. The states are (unknown, is not remote, is remote). To read whether the value is known, use `(flags & SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) != 0`. To read whether the span is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`. When creating span messages, if the message is logically forwarded from another source with an equivalent flags fields (i.e., usually another OTLP span message), the field SHOULD be copied as-is. If creating from a source that does not have an equivalent flags field (such as a runtime representation of an OpenTelemetry span), the high 22 bits MUST be set to zero. Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero. [Optional]. Distinguishes between spans generated in a particular context. For example, two spans with the same name may be distinguished using `CLIENT` (caller) and `SERVER` (callee) to identify queueing latency associated with the span. links is a collection of Links, which are references from this span to a span in the same or different trace. A description of the span's operation. For example, the name can be a qualified method name or a file name and a line number where the operation is called. A best practice is to use the same display name at the same call point in an application. This makes it easier to correlate spans in different traces. This field is semantically required to be set to non-empty string. Empty value is equivalent to an unknown span name. This field is required. The `span_id` of this span's parent span. If this is a root span, then this field must be empty. The ID is an 8-byte array. A unique identifier for a span within a trace, assigned when the span is created. The ID is an 8-byte array. An ID with all zeroes OR of length other than 8 bytes is considered invalid (empty string in OTLP/JSON is zero-length and thus is also invalid). This field is required. start_time_unix_nano is the start time of the span. On the client side, this is the time kept by the local machine where the span execution starts. On the server side, this is the time when the server's application handler starts running. Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. This field is semantically required and it is expected that end_time >= start_time. An optional final status for this span. Semantically when Status isn't set, it means span's status code is unset, i.e. assume STATUS_CODE_UNSET (code = 0). A unique identifier for a trace. All spans from the same trace share the same `trace_id`. The ID is a 16-byte array. An ID with all zeroes OR of length other than 16 bytes is considered invalid (empty string in OTLP/JSON is zero-length and thus is also invalid). This field is required. trace_state conveys information about request position in multiple distributed tracing graphs. It is a trace_state in w3c-trace-context format: https://www.w3.org/TR/trace-context/#tracestate-header See also https://github.com/w3c/distributed-tracing for more details about this field. MarshalJSON encodes s into OTLP formatted JSON. UnmarshalJSON decodes the OTLP formatted JSON contained in data into s. Span : encoding/json.Marshaler *Span : encoding/json.Unmarshaler Span : github.com/goccy/go-json.Marshaler *Span : github.com/goccy/go-json.Unmarshaler
SpanEvent is a time-stamped annotation of the span, consisting of user-supplied text description and key-value pairs. attributes is a collection of attribute key/value pairs on the event. Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key). dropped_attributes_count is the number of dropped attributes. If the value is 0, then no attributes were dropped. name of the event. This field is semantically required to be set to non-empty string. time_unix_nano is the time the event occurred. MarshalJSON encodes e into OTLP formatted JSON. UnmarshalJSON decodes the OTLP formatted JSON contained in data into se. SpanEvent : encoding/json.Marshaler *SpanEvent : encoding/json.Unmarshaler SpanEvent : github.com/goccy/go-json.Marshaler *SpanEvent : github.com/goccy/go-json.Unmarshaler
SpanFlags represents constants used to interpret the Span.flags field, which is protobuf 'fixed32' type and is to be used as bit-fields. Each non-zero value defined in this enum is a bit-mask. To extract the bit-field, for example, use an expression like: (span.flags & SPAN_FLAGS_TRACE_FLAGS_MASK) See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions. Note that Span flags were introduced in version 1.1 of the OpenTelemetry protocol. Older Span producers do not set this field, consequently consumers should not rely on the absence of a particular flag bit to indicate the presence of a particular feature. const SpanFlagsContextHasIsRemoteMask const SpanFlagsContextIsRemoteMask const SpanFlagsTraceFlagsMask
SpanID is a custom data type that is used for all span IDs. IsEmpty reports whether the SpanID contains only zero bytes. MarshalJSON converts span ID into a hex string enclosed in quotes. String returns the hex string representation form of a SpanID. UnmarshalJSON decodes span ID from hex string, possibly enclosed in quotes. SpanID : encoding/json.Marshaler *SpanID : encoding/json.Unmarshaler SpanID : expvar.Var SpanID : fmt.Stringer SpanID : github.com/goccy/go-json.Marshaler *SpanID : github.com/goccy/go-json.Unmarshaler
SpanKind is the type of span. Can be used to specify additional relationships between spans in addition to a parent/child relationship. const SpanKindClient const SpanKindConsumer const SpanKindInternal const SpanKindProducer const SpanKindServer
Status defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. The status code. A developer-facing human readable error message.
StatusCode is the status of a Span. For the semantics of status codes see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#set-status ( StatusCode) String() string StatusCode : expvar.Var StatusCode : fmt.Stringer const StatusCodeError const StatusCodeOK const StatusCodeUnset
TraceID is a custom data type that is used for all trace IDs. IsEmpty reports whether the TraceID contains only zero bytes. MarshalJSON converts the trace ID into a hex string enclosed in quotes. String returns the hex string representation form of a TraceID. UnmarshalJSON inflates the trace ID from hex string, possibly enclosed in quotes. TraceID : encoding/json.Marshaler *TraceID : encoding/json.Unmarshaler TraceID : expvar.Var TraceID : fmt.Stringer TraceID : github.com/goccy/go-json.Marshaler *TraceID : github.com/goccy/go-json.Unmarshaler
Traces represents the traces data that can be stored in a persistent storage, OR can be embedded by other protocols that transfer OTLP traces data but do not implement the OTLP protocol. The main difference between this message and collector protocol is that in this message there will not be any "control" or "metadata" specific to OTLP protocol. When new fields are added into this message, the OTLP request MUST be updated as well. An array of ResourceSpans. For data coming from a single resource this array will typically contain one element. Intermediary nodes that receive data from multiple origins typically batch the data before forwarding further and in that case this array will contain multiple elements. UnmarshalJSON decodes the OTLP formatted JSON contained in data into td. *Traces : encoding/json.Unmarshaler *Traces : github.com/goccy/go-json.Unmarshaler
A Value represents a structured value. A zero value is valid and represents an empty value. AsBool returns the value held by v as a bool. AsBytes returns the value held by v as a []byte. AsFloat64 returns the value held by v as a float64. AsInt64 returns the value held by v as an int64. AsMap returns the value held by v as a []Attr. AsSlice returns the value held by v as a []Value. AsString returns the value held by v as a string. Empty reports whether v does not hold any value. Equal reports whether v is equal to w. Kind returns the Kind of v. MarshalJSON encodes v into OTLP formatted JSON. String returns Value's value as a string, formatted like [fmt.Sprint]. The returned string is meant for debugging; the string representation is not stable. UnmarshalJSON decodes the OTLP formatted JSON contained in data into v. *Value : encoding/json.Marshaler *Value : encoding/json.Unmarshaler Value : expvar.Var Value : fmt.Stringer *Value : github.com/goccy/go-json.Marshaler *Value : github.com/goccy/go-json.Unmarshaler func BoolValue(v bool) Value func BytesValue(v []byte) Value func Float64Value(v float64) Value func Int64Value(v int64) Value func IntValue(v int) Value func MapValue(kvs ...Attr) Value func SliceValue(vs ...Value) Value func StringValue(v string) Value func Value.AsSlice() []Value func Slice(key string, value ...Value) Attr func SliceValue(vs ...Value) Value func Value.Equal(w Value) bool
ValueKind is the kind of a [Value]. ( ValueKind) String() string ValueKind : expvar.Var ValueKind : fmt.Stringer func Value.Kind() ValueKind const ValueKindBool const ValueKindBytes const ValueKindEmpty const ValueKindFloat64 const ValueKindInt64 const ValueKindMap const ValueKindSlice const ValueKindString
Package-Level Functions (total 16)
Bool returns an Attr for a bool value.
BoolValue returns a [Value] for a bool.
Bytes returns an Attr for a []byte value. The passed slice must not be changed after it is passed.
BytesValue returns a [Value] for a byte slice. The passed slice must not be changed after it is passed.
Float64 returns an Attr for a float64 value.
Float64Value returns a [Value] for a float64.
Int returns an Attr for an int value.
Int64 returns an Attr for an int64 value.
Int64Value returns a [Value] for an int64.
IntValue returns a [Value] for an int.
Map returns an Attr for a map value. The passed slice must not be changed after it is passed.
MapValue returns a new [Value] for a slice of key-value pairs. The passed slice must not be changed after it is passed.
Slice returns an Attr for a []Value value. The passed slice must not be changed after it is passed.
SliceValue returns a [Value] for a slice of [Value]. The passed slice must not be changed after it is passed.
String returns an Attr for a string value.
StringValue returns a new [Value] for a string.
Package-Level Constants (total 19)
SpanFlagsContextHasIsRemoteMask is a mask for HAS_IS_REMOTE status. Bits 8 and 9 are used to indicate that the parent span or link span is remote. Bit 8 (`HAS_IS_REMOTE`) indicates whether the value is known.
SpanFlagsContextIsRemoteMask is a mask for IS_REMOTE status. Bits 8 and 9 are used to indicate that the parent span or link span is remote. Bit 9 (`IS_REMOTE`) indicates whether the span or link is remote.
SpanFlagsTraceFlagsMask is a mask for trace-flags. Bits 0-7 are used for trace flags.
SpanKindClient indicates that the span describes a request to some remote service.
SpanKindConsumer indicates that the span describes a consumer receiving a message from a broker. Like SpanKindProducer, there is often no direct critical path latency relationship between producer and consumer spans.
SpanKindInternal indicates that the span represents an internal operation within an application, as opposed to an operation happening at the boundaries.
SpanKindProducer indicates that the span describes a producer sending a message to a broker. Unlike SpanKindClient and SpanKindServer, there is often no direct critical path latency relationship between producer and consumer spans. A SpanKindProducer span ends when the message was accepted by the broker while the logical processing of the message might span a much longer time.
SpanKindServer indicates that the span covers server-side handling of an RPC or other remote network request.
StatusCodeError is used when the Span contains an error.
StatusCodeOK is used when the Span has been validated by an Application developer or Operator to have completed successfully.
StatusCodeUnset is the default status.
ValueKind values.
ValueKind values.
ValueKind values.
ValueKind values.
ValueKind values.
ValueKind values.
ValueKind values.
ValueKind values.