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)
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
SpanLink is a reference from the current span to another span in the same
trace or in a different trace. For example, this can be used in batching
operations, where a single batch handler processes multiple requests from
different traces or when the handler receives a request from a different
project.
attributes is a collection of attribute key/value pairs on the link.
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.
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 the link 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 link is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`.
Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero.
When creating new spans, bits 10-31 (most-significant 22-bits) MUST be zero.
[Optional].
A unique identifier for the linked span. The ID is an 8-byte array.
A unique identifier of a trace that this linked span is part of. The ID is a
16-byte array.
The trace_state associated with the link.
UnmarshalJSON decodes the OTLP formatted JSON contained in data into sl.
*SpanLink : encoding/json.Unmarshaler
*SpanLink : github.com/goccy/go-json.Unmarshaler
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.
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |