Learn how to observe how requests propagate through your distributed systems, understand the interactions between microservices, and trace the life of the request through your app’s architecture.
trace_id
and span_id
), start and end times, parent-child relationships with other spans, and optional events, logs, or other details to help describe the span’s operation.
Field | Type | Description |
---|---|---|
trace_id | String | Unique identifier for a trace |
span_id | String | Unique identifier for a span within a trace |
parent_span_id | String | Identifier of the parent span |
name | String | Name of the span for example, the operation |
kind | String | Type of the span (for example, client, server, producer) |
duration | Timespan | Duration of the span |
error | Boolean | Whether this span contains an error |
status.code | String | Status of the span (for example, null, OK, error) |
status.message | String | Status message of the span |
attributes | Object | Key-value pairs providing additional metadata |
events | Array | Timestamped events associated with the span |
links | Array | Links to related spans or external resources |
resource | Object | Information about the source of the span |
duration
, kind
, name
, parent_span_id
, service.name
, span_id
, and trace_id
.duration
field produces aggregate values across every span in the dataset. This is usually not the desired outcome when you want to inspect a service’s performance or robustness.
isnull(parent_span_id)
.
Dashboards
tab.OpenTelemetry Traces
.Slowest Operations
chart, click the service that contains the trace._time
and trace_id
fields. For example, the following query returns the number of spans in each trace:
attributes
field, such as attributes.http.method
, attributes.db.system
, etc.
For example, if a span represents an HTTP request, it may include the following attributes:
attributes.http.method
: The HTTP request method. For example, GET
, POST
, etc.attributes.http.url
: The full HTTP request URL.attributes.http.status_code
: The HTTP response status code.resource
field, such as resource.host.name
, resource.host.id
, resource.host.os
, etc.
Custom attributes that don’t match any semantic conventions are nested under the attributes.custom
map field.
attributes.custom
field. These custom attributes are stored as nested key-value pairs.
To access nested custom attributes, you can use Axiom Processing Language (APL) for example:
SpanContext
(containing trace_id
and span_id
) of the span to which to link. Links are specified when starting a new span by providing them in the span configuration. The OpenTelemetry SDK includes the link information when exporting spans to Axiom. Links are recorded at span creation time so that sampling decisions can consider them.
trace_id
.trace_id
and span_id
associated with each linked span, as well as other attributes of the link.