diff --git a/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts b/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts index 0c2beaf7d4c8..de1f2eff3a53 100644 --- a/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts @@ -12,6 +12,7 @@ describe('redis auto instrumentation', () => { expect.objectContaining({ description: 'set test-key [1 other arguments]', op: 'db', + origin: 'auto.db.otel.redis', data: expect.objectContaining({ 'sentry.op': 'db', 'db.system': 'redis', @@ -23,6 +24,7 @@ describe('redis auto instrumentation', () => { expect.objectContaining({ description: 'get test-key', op: 'db', + origin: 'auto.db.otel.redis', data: expect.objectContaining({ 'sentry.op': 'db', 'db.system': 'redis', @@ -48,6 +50,7 @@ describe('redis auto instrumentation', () => { expect.objectContaining({ description: 'set ioredis-cache:test-key [1 other arguments]', op: 'cache.put', + origin: 'auto.db.otel.redis', data: expect.objectContaining({ 'db.statement': 'set ioredis-cache:test-key [1 other arguments]', 'cache.key': 'ioredis-cache:test-key', @@ -60,6 +63,7 @@ describe('redis auto instrumentation', () => { expect.objectContaining({ description: 'get ioredis-cache:test-key', op: 'cache.get_item', // todo: will be changed to cache.get + origin: 'auto.db.otel.redis', data: expect.objectContaining({ 'db.statement': 'get ioredis-cache:test-key', 'cache.hit': true, @@ -73,6 +77,7 @@ describe('redis auto instrumentation', () => { expect.objectContaining({ description: 'get ioredis-cache:unavailable-data', op: 'cache.get_item', // todo: will be changed to cache.get + origin: 'auto.db.otel.redis', data: expect.objectContaining({ 'db.statement': 'get ioredis-cache:unavailable-data', 'cache.hit': false, diff --git a/dev-packages/node-integration-tests/suites/tracing/redis/test.ts b/dev-packages/node-integration-tests/suites/tracing/redis/test.ts index 604b2751f05b..f68c14499a13 100644 --- a/dev-packages/node-integration-tests/suites/tracing/redis/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/redis/test.ts @@ -12,8 +12,10 @@ describe('redis auto instrumentation', () => { expect.objectContaining({ description: 'set test-key [1 other arguments]', op: 'db', + origin: 'auto.db.otel.redis', data: expect.objectContaining({ 'sentry.op': 'db', + 'sentry.origin': 'auto.db.otel.redis', 'db.system': 'redis', 'net.peer.name': 'localhost', 'net.peer.port': 6379, @@ -23,8 +25,10 @@ describe('redis auto instrumentation', () => { expect.objectContaining({ description: 'get test-key', op: 'db', + origin: 'auto.db.otel.redis', data: expect.objectContaining({ 'sentry.op': 'db', + 'sentry.origin': 'auto.db.otel.redis', 'db.system': 'redis', 'net.peer.name': 'localhost', 'net.peer.port': 6379, diff --git a/packages/node/src/integrations/tracing/redis.ts b/packages/node/src/integrations/tracing/redis.ts index f9309b2de33e..a734d7cb864f 100644 --- a/packages/node/src/integrations/tracing/redis.ts +++ b/packages/node/src/integrations/tracing/redis.ts @@ -4,6 +4,7 @@ import { SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_SENTRY_OP, + SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, defineIntegration, spanToJSON, } from '@sentry/core'; @@ -49,6 +50,8 @@ const _redisIntegration = ((options?: RedisOptions) => { responseHook: (span, redisCommand, cmdArgs, response) => { const key = cmdArgs[0]; + span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.redis'); + if (!options?.cachePrefixes || !shouldConsiderForCache(redisCommand, key, options.cachePrefixes)) { // not relevant for cache return;