Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 114 additions & 18 deletions dev-packages/node-integration-tests/suites/tracing/mongodb/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,63 +21,159 @@ describe('MongoDB experimental Test', () => {

const EXPECTED_TRANSACTION = {
transaction: 'Test Transaction',
spans: expect.arrayContaining([
spans: [
expect.objectContaining({
data: expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.mongodb.collection': '$cmd',
'db.operation': 'isMaster',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement':
'{"ismaster":"?","client":{"driver":{"name":"?","version":"?"},"os":{"type":"?","name":"?","architecture":"?","version":"?"},"platform":"?"},"compression":[],"helloOk":"?"}',
'otel.kind': 'CLIENT',
},
description:
'{"ismaster":"?","client":{"driver":{"name":"?","version":"?"},"os":{"type":"?","name":"?","architecture":"?","version":"?"},"platform":"?"},"compression":[],"helloOk":"?"}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.mongodb.collection': '$cmd',
'db.operation': 'isMaster',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement':
'{"ismaster":"?","client":{"driver":{"name":"?","version":"?"},"os":{"type":"?","name":"?","architecture":"?","version":"?"},"platform":"?"},"compression":[],"helloOk":"?"}',
'otel.kind': 'CLIENT',
},
description:
'{"ismaster":"?","client":{"driver":{"name":"?","version":"?"},"os":{"type":"?","name":"?","architecture":"?","version":"?"},"platform":"?"},"compression":[],"helloOk":"?"}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.operation': 'insert',
'db.mongodb.collection': 'movies',
}),
description: '{"title":"?","_id":"?"}',
'db.operation': 'insert',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement':
'{"title":"?","_id":{"_bsontype":"?","id":{"0":"?","1":"?","2":"?","3":"?","4":"?","5":"?","6":"?","7":"?","8":"?","9":"?","10":"?","11":"?"}}}',
'otel.kind': 'CLIENT',
},
description:
'{"title":"?","_id":{"_bsontype":"?","id":{"0":"?","1":"?","2":"?","3":"?","4":"?","5":"?","6":"?","7":"?","8":"?","9":"?","10":"?","11":"?"}}}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
expect.objectContaining({
data: expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.operation': 'find',
'db.mongodb.collection': 'movies',
}),
'db.operation': 'find',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement': '{"title":"?"}',
'otel.kind': 'CLIENT',
},
description: '{"title":"?"}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
expect.objectContaining({
data: expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.operation': 'update',
'db.mongodb.collection': 'movies',
}),
'db.operation': 'update',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement': '{"title":"?"}',
'otel.kind': 'CLIENT',
},
description: '{"title":"?"}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
expect.objectContaining({
data: expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.operation': 'find',
'db.mongodb.collection': 'movies',
}),
'db.operation': 'find',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement': '{"title":"?"}',
'otel.kind': 'CLIENT',
},
description: '{"title":"?"}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
expect.objectContaining({
data: expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.operation': 'find',
'db.mongodb.collection': 'movies',
}),
'db.operation': 'find',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement': '{"title":"?"}',
'otel.kind': 'CLIENT',
},
description: '{"title":"?"}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
]),
expect.objectContaining({
data: {
'sentry.origin': 'auto.db.otel.mongo',
'sentry.op': 'db',
'db.system': 'mongodb',
'db.name': 'admin',
'db.mongodb.collection': '$cmd',
'db.connection_string': expect.any(String),
'net.peer.name': expect.any(String),
'net.peer.port': expect.any(Number),
'db.statement':
'{"endSessions":[{"id":{"_bsontype":"?","sub_type":"?","position":"?","buffer":{"0":"?","1":"?","2":"?","3":"?","4":"?","5":"?","6":"?","7":"?","8":"?","9":"?","10":"?","11":"?","12":"?","13":"?","14":"?","15":"?"}}}]}',
'otel.kind': 'CLIENT',
},
description:
'{"endSessions":[{"id":{"_bsontype":"?","sub_type":"?","position":"?","buffer":{"0":"?","1":"?","2":"?","3":"?","4":"?","5":"?","6":"?","7":"?","8":"?","9":"?","10":"?","11":"?","12":"?","13":"?","14":"?","15":"?"}}}]}',
op: 'db',
origin: 'auto.db.otel.mongo',
}),
],
};

test('CJS - should auto-instrument `mongodb` package.', done => {
Expand Down
2 changes: 1 addition & 1 deletion packages/node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"@opentelemetry/instrumentation-http": "0.52.0",
"@opentelemetry/instrumentation-ioredis": "0.41.0",
"@opentelemetry/instrumentation-koa": "0.41.0",
"@opentelemetry/instrumentation-mongodb": "0.44.0",
"@opentelemetry/instrumentation-mongodb": "0.45.0",
"@opentelemetry/instrumentation-mongoose": "0.39.0",
"@opentelemetry/instrumentation-mysql": "0.39.0",
"@opentelemetry/instrumentation-mysql2": "0.39.0",
Expand Down
12 changes: 6 additions & 6 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6431,10 +6431,10 @@
"@types/koa" "2.14.0"
"@types/koa__router" "12.0.3"

"@opentelemetry/instrumentation-mongodb@0.44.0":
version "0.44.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.44.0.tgz#359ecc72a903f8f586f34d7a57b7e122037621a9"
integrity sha512-VPnmN5LZN8gWQ1znRz7mdZBly4h4G8Fsp8NJYqgM1CEoglX+O/Dj36zesZVSi1InPyDX2hGDTt6Qp3DFYjl7WA==
"@opentelemetry/instrumentation-mongodb@0.45.0":
version "0.45.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.45.0.tgz#d6373e30f3e83eba87f7e6e2ea72c1351467d6b5"
integrity sha512-xnZP9+ayeB1JJyNE9cIiwhOJTzNEsRhXVdLgfzmrs48Chhhk026mQdM5CITfyXSCfN73FGAIB8d91+pflJEfWQ==
dependencies:
"@opentelemetry/instrumentation" "^0.52.0"
"@opentelemetry/sdk-metrics" "^1.9.1"
Expand Down Expand Up @@ -6589,12 +6589,12 @@
"@opentelemetry/resources" "1.25.0"
"@opentelemetry/semantic-conventions" "1.25.0"

"@opentelemetry/semantic-conventions@1.24.1", "@opentelemetry/semantic-conventions@^1.17.0", "@opentelemetry/semantic-conventions@^1.22.0", "@opentelemetry/semantic-conventions@^1.23.0":
"@opentelemetry/semantic-conventions@1.24.1":
version "1.24.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz#d4bcebda1cb5146d47a2a53daaa7922f8e084dfb"
integrity sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==

"@opentelemetry/semantic-conventions@1.25.0", "@opentelemetry/semantic-conventions@^1.25.0":
"@opentelemetry/semantic-conventions@1.25.0", "@opentelemetry/semantic-conventions@^1.17.0", "@opentelemetry/semantic-conventions@^1.22.0", "@opentelemetry/semantic-conventions@^1.23.0", "@opentelemetry/semantic-conventions@^1.25.0":
version "1.25.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.0.tgz#390eb4d42a29c66bdc30066af9035645e9bb7270"
integrity sha512-M+kkXKRAIAiAP6qYyesfrC5TOmDpDVtsxuGfPcqd9B/iBrac+E14jYwrgm0yZBUIbIP2OnqC3j+UgkXLm1vxUQ==
Expand Down