apm-server
apm-server copied to clipboard
[OpenTelemetry] Semantic convention mappings: thread.*, db.*...
Some OpenTelemetry fields that are not mapped and show up in the labels.*
and numeric_labels.*
groups.
OpenTelemetry attribute | ECS Field | Example value | Comment |
---|---|---|---|
thread.id | process.thread.id | 37 | |
thread.name | process.thread.name | http-nio-8080-exec-2 | |
process.runtime.description | AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 | ⚠️ NOT the same as process.title | |
http.request_content_length | 123 | ⚠️ NOT same definition as http.request.bytes | |
service.namespace | |||
db.connection_string | postgresql://localhost:5432 | ||
db.operation | INSERT | ||
db.sql.table | order_product | ||
net.transport | ip_tcp | Transport protocol used. |
The readability of Otel traces is diminished by the fact that some semantic attributes are not mapped and thus displayed under labels.*
or numeric_labels.*
instead of being displayed in the dedicated section of the flyout ("HTTP", "Process"...).
Moreover, the integration with dependencies that is in progress is likely to require some span attributes to associate the communication with the right backend.
See also
- https://github.com/elastic/apm/pull/516
@AlexanderWert did you do the mapping of the Otel Semantic Attributes for Databases with the Elastic fields?
@AlexanderWert did you do the mapping of the Otel Semantic Attributes for Databases with the Elastic fields?
We have some basic mapping in the OTel bridge spec PR but that covers only some basic fields.
I don't know if there's an equivalent in OTel, but process.runtime.description
is not the same as process.title
. The ECS field process.title
is typically the same as the executable name, but can also be overridden by programs. It's nothing to do with the runtime.
Thanks @axw and @AlexanderWert , I updated the issue.