Create specification for OpenTelemetry span attributes for Elastic-specific APM features
- 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.