OpenTelemetry App

The primary role that the OpenTelemetry app plays is in making raw OTel span data more useful for use cases such as trace search and service observability. It includes several datasets that are used by the Trace Explorer and the Service Explorer to power those experiences out-of-the-box.

Core datasets provided by the app

Span dataset

Span dataset field

Underlying OTel span data

service_name and Service

service.name in the span’s attributes

service_namespace

service.namespace in the span’s Resource attributes

span_name and Operation

span.name

environment

resource_attributes.deployment.environment

service_version

service.version in the span’s Resource attributes

response_status

span.status.code

status_code

http.status_code, rpc.status_code, grpc.status_code, or rpc.grpc.status_code in the span’s attributes

status_message

span.status.message

span_type

span.kind

duration

span.start_time_unix_nano and span.end_time_unix_nano

attributes

The span’s attributes

resource_attributes

The span’s Resource attributes

Span Event dataset

Span Event dataset

Underlying OTel span data

event_name

event.name

attributes

The event’s attributes

resource_attributes

The Resource attributes on the span containing the event

Service Metrics dataset

Contains a set of span-derived service metrics, which are used in the out-of-the-box views in Service Explorer and also available for querying in the Metric Explorer, custom Dashboards, and Worksheets (namespace ServiceExplorer/Service Metrics).

  • The metrics are created by aggregating raw span data into 5 minute buckets for requests, errors, and latency. All percentiles are provided in the latency metrics using t-digest.

  • Spans of type Service entry point or root spans are being aggregated.

  • Metric dimensions: Service, Operation (i.e., endpoint name), service_namespace, service_version, status_code, status_message, environment

The OpenTelemetry app also creates several other datasets derived from the Span dataset that power the Service Explorer.

Span data used by the Service Explorer

Service Explorer feature

Underlying data from Span dataset that powers it

Service discovery

Existence of spans of type Service entry point or root spans (i.e., spans with no parent)

Database discovery

Existence of spans of type Remote call that have db.* attributes

Service naming

service_name

Database naming

attributes.db.system and attributes.db.name in most cases

Database host

attributes.server.address, attributes.net.sock.peer.name, or attributes.net.peer.name

Database port

attributes.server.port, attributes.net.sock.peer.port, or attributes.net.peer.port

Service mapping: Service-to-service edge detection

when a span of type Remote call in one service has a child span of type Service entry point in a different service

Service mapping: Service-to-database edge detection

existence of spans of type Remote call that have db.* attributes

Service inspection: RED metrics

spans of type Service entry point or root spans

Service inspection: endpoints

Operation of type Service entry point

Service inspection: deployments

service_version

Service inspection: errors

response_status, status_message

Service inspection: exceptions

From the Span Event dataset: attributes.exception.message, attributes.exception.type, and attributes.exception.stacktrace

Service inspection: k8s pods

k8s_pod_name

Database inspection: db operation

span.name

Database inspection: db statements

attributes.db.statement

Services and edges show up on the service map if they have reported data in the last 7 days.