Skip to content

Commit f35ea5d

Browse files
committed
refactor: reuse Redis semconv attributes for Valkey until official definitions exist
Use DB_REDIS_DATABASE_INDEX, db.redis.args_length, and db.redis.pipeline_length instead of bespoke db.valkey.* attributes. db.system remains "valkey" to identify the actual database product. Per review feedback from MikeGoldsmith.
1 parent fe24656 commit f35ea5d

3 files changed

Lines changed: 17 additions & 11 deletions

File tree

instrumentation/opentelemetry-instrumentation-valkey/src/opentelemetry/instrumentation/valkey/__init__.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,10 @@ def response_hook(span, instance, response):
163163
from opentelemetry.instrumentation.utils import unwrap
164164
from opentelemetry.instrumentation.valkey.package import _instruments
165165
from opentelemetry.instrumentation.valkey.version import __version__
166-
from opentelemetry.semconv.trace import SpanAttributes
166+
from opentelemetry.semconv._incubating.attributes.db_attributes import (
167+
DB_REDIS_DATABASE_INDEX,
168+
DB_SYSTEM,
169+
)
167170
from opentelemetry.trace import TracerProvider, get_tracer
168171

169172
if TYPE_CHECKING:
@@ -181,10 +184,10 @@ def response_hook(span, instance, response):
181184
_VALKEY_CONFIG = KVStoreConfig(
182185
backend_name="valkey",
183186
db_system="valkey",
184-
db_system_attr=SpanAttributes.DB_SYSTEM,
185-
db_index_attr="db.valkey.database_index",
186-
args_length_attr="db.valkey.args_length",
187-
pipeline_length_attr="db.valkey.pipeline_length",
187+
db_system_attr=DB_SYSTEM,
188+
db_index_attr=DB_REDIS_DATABASE_INDEX,
189+
args_length_attr="db.redis.args_length",
190+
pipeline_length_attr="db.redis.pipeline_length",
188191
watch_error_class=valkey.WatchError,
189192
)
190193

instrumentation/opentelemetry-instrumentation-valkey/src/opentelemetry/instrumentation/valkey/util.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,15 @@
3232
_set_span_attribute_if_value,
3333
_value_or_none,
3434
)
35-
from opentelemetry.semconv.trace import SpanAttributes
35+
from opentelemetry.semconv._incubating.attributes.db_attributes import (
36+
DB_REDIS_DATABASE_INDEX,
37+
DB_SYSTEM,
38+
)
3639

3740
_BACKEND_NAME = "valkey"
3841
_DB_SYSTEM = "valkey"
39-
_DB_SYSTEM_ATTR = SpanAttributes.DB_SYSTEM
40-
_DB_INDEX_ATTR = "db.valkey.database_index"
42+
_DB_SYSTEM_ATTR = DB_SYSTEM
43+
_DB_INDEX_ATTR = DB_REDIS_DATABASE_INDEX
4144

4245
__all__ = [
4346
"_extract_conn_attributes",

instrumentation/opentelemetry-instrumentation-valkey/tests/test_valkey.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ def test_attributes_default(self):
245245
span.attributes[SpanAttributes.DB_SYSTEM],
246246
"valkey",
247247
)
248-
self.assertEqual(span.attributes["db.valkey.database_index"], 0)
248+
self.assertEqual(span.attributes["db.redis.database_index"], 0)
249249
self.assertEqual(
250250
span.attributes[SpanAttributes.NET_PEER_NAME], "localhost"
251251
)
@@ -271,7 +271,7 @@ def test_attributes_tcp(self):
271271
span.attributes[SpanAttributes.DB_SYSTEM],
272272
"valkey",
273273
)
274-
self.assertEqual(span.attributes["db.valkey.database_index"], 1)
274+
self.assertEqual(span.attributes["db.redis.database_index"], 1)
275275
self.assertEqual(
276276
span.attributes[SpanAttributes.NET_PEER_NAME], "1.1.1.1"
277277
)
@@ -297,7 +297,7 @@ def test_attributes_unix_socket(self):
297297
span.attributes[SpanAttributes.DB_SYSTEM],
298298
"valkey",
299299
)
300-
self.assertEqual(span.attributes["db.valkey.database_index"], 3)
300+
self.assertEqual(span.attributes["db.redis.database_index"], 3)
301301
self.assertEqual(
302302
span.attributes[SpanAttributes.NET_PEER_NAME],
303303
"/path/to/socket.sock",

0 commit comments

Comments
 (0)