elastic / elastic/apm

Create specification for OpenTelemetry span attributes for Elastic-specific APM features

Open
#645 4 comments 0 reactions 0 assignees View on GitHub
discussion
Dominant language
Gherkin
Stars
427
Forks
125
PR merge metrics
No merged PRs in 30d

Description

In order to provide compatibility with Elastic-only features through OpenTelemetry (either API, API+SDK, API + agent bridge or OpenTelemetry agent), we should define the span attributes and a namespace prefix for that purppose.

For example, the `span.context.destination.service.resource` value can be controlled by end-user through agent APIs (specific to Elastic) but we can't do the same when using the OpenTelemetry API, hence forcing users to choose between a vendor-neutral API or having the flexibility to customize the captured data.

Proposal for attribute prefix: `elastic.otel.`

We can split the properties in 2 categories:
- agent behavioral attributes: those that only have an effect on the agent, for example the ability to mark a span as non-discardable introduced in Java-agent in https://github.com/elastic/apm-agent-java/pull/2632 with `elastic.otel.nondiscardable` attribute, those are not sent to APM server. For those the cross-agent alignment is not strictly required and likely agent-specific, but they should use the common prefix for consistency.
- server attributes: those would be used to modify the mapping server-side with higher priority over the inferred/mapped values. For example it could include "service destination address", "service destination resource" (deprecated) or "service target" fields that some agents allow to be modified trough their respective APIs and now would be modifiable through standard OTel API or native OTLP. For this category we need to define and align on a common set of attributes definitions.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.