elastic / apm-data

apm-data holds definitions and code for manipulating Elastic APM data
Apache License 2.0
12 stars 25 forks source link

[otlp] Investigate decoration of span.destination.service.* attributes for gRPC services #304

Open rogercoll opened 2 months ago

rogercoll commented 2 months ago

This issue was detected when deploying the OpenTelemetry demo and using the Elastic's OpenTelemetry endpoint. In case the service is doing internal calls using gRPC (e.g. the checkout service), all the span.destination.service.* attributes are set to the value :0:

image

The issue is solved if the corresponding services include the peer.service attribute in their spans, but I reckon it would be more informative for the user to provide a different value other than :0 if peer.service is not defined. For example, unknown or just not providing the default port value?

For HTTP services, the span.destination.service.* are populated accordingly, my guess is because of the library extracting the destination values from the HTTP URL instead of the peer attribute: https://github.com/elastic/apm-data/blob/main/input/otlp/traces.go#L1006

Ongoing work to add peer.service in the OpenTelemetry demo: https://github.com/open-telemetry/opentelemetry-demo/issues/1635