open-telemetry / opentelemetry-java-instrumentation

OpenTelemetry auto-instrumentation and instrumentation libraries for Java
https://opentelemetry.io
Apache License 2.0
1.97k stars 861 forks source link

Redis attributes not aligned with latest semantic conventions #12324

Open luke6Lh43 opened 1 month ago

luke6Lh43 commented 1 month ago

Describe the bug

Hello,

I have recently been working on a project that required Redis instrumentation for two different languages. During this process, I noticed some discrepancies in the attributes being collected. To investigate further, I conducted testing to check the attributes collected for Redis instrumentation across six of the most popular languages. I have documented my testing in this GitHub repository:

[Link to GitHub Repo]

Findings for Java:

What We Capture Today ==> How It Should Look in Latest Semantic Conventions

db.operation: GET ==> db.operation.name: GET network.peer.port: 6379 ==> network.peer.port: 6379 network.type: ipv6 ==> (Not needed) network.peer.address: 0:0:0:0:0:0:0:1 ==> network.peer.name: 0:0:0:0:0:0:0:1 db.statement: GET mykey ==> db.query.text: GET mykey db.system: redis ==> db.system: redis (Not captured) ==> db.namespace: 0

The latest OpenTelemetry semantic conventions for Redis can be found here: OpenTelemetry Semantic Conventions for Redis

Steps to reproduce

https://github.com/luke6Lh43/otel-redis-testing/blob/main/Readme.md#java

Expected behavior

N/A

Actual behavior

N/A

Javaagent or library instrumentation version

v2.8.0

Environment

OS: macOS Sequoia Architecture: x86_64 (Intel processor) JDK: openjdk 22.0.2 Apache Maven 3.9.8

Additional context

No response

trask commented 1 month ago

hi @luke6Lh43! check out the warning at the top of https://opentelemetry.io/docs/specs/semconv/database/database-spans/

also check out https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/11575