Skip to content

Commit 0fc1ed3

Browse files
authored
chore(examples/mongodb): Update mongodb example dependencies (#2531)
1 parent 2f5d1de commit 0fc1ed3

File tree

3 files changed

+40
-38
lines changed

3 files changed

+40
-38
lines changed

examples/mongodb/package.json

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,20 @@
3030
"url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues"
3131
},
3232
"dependencies": {
33-
"@opentelemetry/api": "^1.0.0",
34-
"@opentelemetry/exporter-jaeger": "^1.0.0",
35-
"@opentelemetry/exporter-zipkin": "^1.0.0",
36-
"@opentelemetry/instrumentation": "^0.48.0",
37-
"@opentelemetry/instrumentation-http": "^0.48.0",
38-
"@opentelemetry/instrumentation-mongodb": "^0.32.0",
39-
"@opentelemetry/sdk-trace-node": "^1.0.0",
40-
"@opentelemetry/sdk-trace-base": "^1.0.0",
33+
"@opentelemetry/api": "^1.9.0",
34+
"@opentelemetry/exporter-zipkin": "^1.27.0",
35+
"@opentelemetry/instrumentation": "^0.54.2",
36+
"@opentelemetry/instrumentation-http": "^0.54.2",
37+
"@opentelemetry/instrumentation-mongodb": "^0.48.0",
38+
"@opentelemetry/sdk-trace-node": "^1.27.0",
39+
"@opentelemetry/sdk-trace-base": "^1.27.0",
4140
"@opentelemetry/semantic-conventions": "^1.27.0",
42-
"mongodb": "^3.6.11"
41+
"mongodb": "^6.10.0"
4342
},
4443
"homepage": "https://github.com/open-telemetry/opentelemetry-js-contrib#readme",
4544
"devDependencies": {
4645
"cross-env": "^7.0.3",
47-
"ts-node": "^10.6.0",
48-
"typescript": "4.4.4"
46+
"ts-node": "^10.9.2",
47+
"typescript": "5.6.3"
4948
}
5049
}

examples/mongodb/src/server.ts

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ import * as api from '@opentelemetry/api';
22

33
import { setupTracing } from './tracer';
44

5-
setupTracing('example-mongodb-server')
5+
setupTracing('example-mongodb-server');
66

77
import { accessDB } from './utils';
88

99
import * as http from 'http';
1010
import { IncomingMessage, ServerResponse } from 'http';
1111
import * as mongodb from 'mongodb';
12-
import {Collection} from "mongodb";
12+
import { Collection } from 'mongodb';
1313

14-
const DB_NAME = 'mydb'
15-
const COLLECTION_NAME = 'users'
14+
const DB_NAME = 'mydb';
15+
const COLLECTION_NAME = 'users';
1616
const URL = `mongodb://localhost:27017/${DB_NAME}`;
1717

1818
let db: mongodb.Db;
@@ -28,7 +28,6 @@ function startServer(port: number) {
2828
throw err;
2929
});
3030

31-
3231
// Creates a server
3332
const server = http.createServer(handleRequest);
3433
// Starts the server
@@ -40,16 +39,20 @@ function startServer(port: number) {
4039
/** A function which handles requests and send response. */
4140
function handleRequest(request: IncomingMessage, response: ServerResponse) {
4241
const currentSpan = api.trace.getSpan(api.context.active());
43-
// display traceID in the terminal
44-
const traceId = currentSpan?.spanContext();
45-
console.log(`traceid: ${traceId}`);
46-
console.log(`Jaeger URL: http://localhost:16686/trace/${traceId}`);
47-
console.log(`Zipkin URL: http://localhost:9411/zipkin/traces/${traceId}`);
42+
if (currentSpan) {
43+
// display traceID in the terminal
44+
const { traceId } = currentSpan?.spanContext();
45+
console.log(`traceid: ${traceId}`);
46+
console.log(`Jaeger URL: http://localhost:16686/trace/${traceId}`);
47+
console.log(`Zipkin URL: http://localhost:9411/zipkin/traces/${traceId}`);
48+
} else {
49+
console.log('No active span found');
50+
}
4851

4952
try {
5053
const body = [];
51-
request.on('error', (err) => console.log(err));
52-
request.on('data', (chunk) => body.push(chunk));
54+
request.on('error', err => console.log(err));
55+
request.on('data', chunk => body.push(chunk));
5356
request.on('end', async () => {
5457
if (request.url === '/collection/') {
5558
handleCreateCollection(response);
@@ -71,12 +74,13 @@ startServer(8080);
7174
function handleInsertQuery(response: ServerResponse) {
7275
const obj = { name: 'John', age: '20' };
7376
const usersCollection: Collection = db.collection(COLLECTION_NAME);
74-
usersCollection.insertOne(obj)
77+
usersCollection
78+
.insertOne(obj)
7579
.then(() => {
7680
console.log('1 document inserted');
77-
// find document to test context propagation using callback
78-
usersCollection.findOne({}, function () {
79-
response.end();
81+
// find document to test context
82+
usersCollection.findOne({}).then(res => {
83+
console.log(JSON.stringify(res));
8084
});
8185
})
8286
.catch(err => {
@@ -87,16 +91,16 @@ function handleInsertQuery(response: ServerResponse) {
8791

8892
function handleGetQuery(response: ServerResponse) {
8993
const usersCollection: Collection = db.collection(COLLECTION_NAME);
90-
usersCollection.
91-
find({})
94+
usersCollection
95+
.find({})
9296
.toArray()
9397
.then(() => {
9498
console.log('1 document served');
9599
response.end();
96100
})
97101
.catch(err => {
98102
throw err;
99-
})
103+
});
100104
}
101105

102106
function handleCreateCollection(response: ServerResponse) {
@@ -108,7 +112,7 @@ function handleCreateCollection(response: ServerResponse) {
108112
.catch(err => {
109113
console.log('Error code:', err.code);
110114
response.end(err.message);
111-
});
115+
});
112116
}
113117

114118
function handleNotFound(response: ServerResponse) {

examples/mongodb/src/tracer.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1-
import * as api from "@opentelemetry/api";
1+
import * as api from '@opentelemetry/api';
22

33
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
44
import { Resource } from '@opentelemetry/resources';
55
import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
6-
import { JaegerExporter } from '@opentelemetry/exporter-jaeger';
6+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
77
import { ZipkinExporter } from '@opentelemetry/exporter-zipkin';
88
import { registerInstrumentations } from '@opentelemetry/instrumentation';
99
import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
1010
import { MongoDBInstrumentation } from '@opentelemetry/instrumentation-mongodb';
11-
import { SEMRESATTRS_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
12-
11+
import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
1312

1413
export const setupTracing = (serviceName: string): api.Tracer => {
1514
const provider = new NodeTracerProvider({
1615
resource: new Resource({
17-
[SEMRESATTRS_SERVICE_NAME]: serviceName
18-
})
16+
[ATTR_SERVICE_NAME]: serviceName,
17+
}),
1918
});
2019

2120
// Initialize the OpenTelemetry APIs to use the NodeTracerProvider bindings
@@ -32,7 +31,7 @@ export const setupTracing = (serviceName: string): api.Tracer => {
3231
});
3332

3433
provider.addSpanProcessor(new SimpleSpanProcessor(new ZipkinExporter()));
35-
provider.addSpanProcessor(new SimpleSpanProcessor(new JaegerExporter()));
34+
provider.addSpanProcessor(new SimpleSpanProcessor(new OTLPTraceExporter()));
3635

3736
return api.trace.getTracer('mongodb-example');
3837
};

0 commit comments

Comments
 (0)