Skip to content

Commit 589bf3f

Browse files
committed
feat(otlp): update some open telemetry instrumentation
1 parent 3f30a55 commit 589bf3f

File tree

4 files changed

+259
-217
lines changed

4 files changed

+259
-217
lines changed

__tests__/fake-serv.test.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import http from 'http';
12
import path from 'path';
23

34
import { afterAll, beforeAll, describe, expect, test } from 'vitest';
@@ -13,6 +14,24 @@ import {
1314

1415
import { FakeServLocals, service } from './fake-serv/src/index';
1516

17+
function httpRequest(options: http.RequestOptions) {
18+
return new Promise((resolve, reject) => {
19+
const req = http.request(options, (res) => {
20+
let responseData = '';
21+
res.on('data', (chunk) => {
22+
responseData += chunk;
23+
});
24+
res.on('end', () => {
25+
resolve(responseData);
26+
});
27+
});
28+
req.on('error', (e) => {
29+
reject(e);
30+
});
31+
req.end();
32+
});
33+
}
34+
1635
describe('fake-serv', () => {
1736
beforeAll(() => {
1837
startGlobalTelemetry('fake-serv');
@@ -28,6 +47,7 @@ describe('fake-serv', () => {
2847
name: 'fake-serv',
2948
rootDirectory: path.resolve(__dirname, './fake-serv'),
3049
codepath: 'src',
50+
version: '1.0.0',
3151
};
3252

3353
const app = await startApp(options).catch((error) => {
@@ -70,6 +90,13 @@ describe('fake-serv', () => {
7090
await request(app).post('/world').expect(500);
7191

7292
const server = await listen(app);
93+
// Exercise the http module
94+
await httpRequest({
95+
hostname: 'localhost',
96+
port: app.locals.config.server.port,
97+
path: '/hello?greeting=Hello&number=6',
98+
method: 'GET',
99+
});
73100
await request(app.locals.internalApp)
74101
.get('/metrics')
75102
.expect(200)

package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -63,29 +63,29 @@
6363
"@opentelemetry/exporter-prometheus": "^0.43.0",
6464
"@opentelemetry/exporter-trace-otlp-proto": "^0.43.0",
6565
"@opentelemetry/instrumentation": "^0.43.0",
66-
"@opentelemetry/instrumentation-dns": "^0.32.3",
67-
"@opentelemetry/instrumentation-express": "^0.33.2",
68-
"@opentelemetry/instrumentation-generic-pool": "^0.32.3",
66+
"@opentelemetry/instrumentation-dns": "^0.32.4",
67+
"@opentelemetry/instrumentation-express": "^0.33.3",
68+
"@opentelemetry/instrumentation-generic-pool": "^0.32.4",
6969
"@opentelemetry/instrumentation-graphql": "^0.35.2",
7070
"@opentelemetry/instrumentation-http": "^0.43.0",
71-
"@opentelemetry/instrumentation-ioredis": "^0.35.2",
72-
"@opentelemetry/instrumentation-net": "^0.32.2",
71+
"@opentelemetry/instrumentation-ioredis": "^0.35.3",
72+
"@opentelemetry/instrumentation-net": "^0.32.4",
7373
"@opentelemetry/instrumentation-pg": "^0.36.2",
74-
"@opentelemetry/instrumentation-pino": "^0.34.2",
75-
"@opentelemetry/resource-detector-container": "^0.3.2",
76-
"@opentelemetry/resource-detector-gcp": "^0.29.2",
77-
"@opentelemetry/resources": "^1.17.1",
78-
"@opentelemetry/sdk-metrics": "^1.17.1",
74+
"@opentelemetry/instrumentation-pino": "^0.34.4",
75+
"@opentelemetry/resource-detector-container": "^0.3.4",
76+
"@opentelemetry/resource-detector-gcp": "^0.29.4",
77+
"@opentelemetry/resources": "^1.18.1",
78+
"@opentelemetry/sdk-metrics": "^1.18.1",
7979
"@opentelemetry/sdk-node": "^0.43.0",
80-
"@opentelemetry/sdk-trace-base": "^1.17.1",
81-
"@opentelemetry/semantic-conventions": "^1.17.1",
80+
"@opentelemetry/sdk-trace-base": "^1.18.1",
81+
"@opentelemetry/semantic-conventions": "^1.18.1",
8282
"@sesamecare-oss/confit": "^2.2.0",
8383
"@sesamecare-oss/opentelemetry-node-metrics": "^1.0.1",
8484
"ajv": "^8.12.0",
8585
"cookie-parser": "^1.4.6",
8686
"dotenv": "^16.3.1",
8787
"express": "next",
88-
"express-openapi-validator": "^5.1.1",
88+
"express-openapi-validator": "^5.1.2",
8989
"glob": "^8.1.0",
9090
"lodash": "^4.17.21",
9191
"minimist": "^1.2.8",
@@ -100,28 +100,28 @@
100100
"@openapi-typescript-infra/coconfig": "^4.2.2",
101101
"@semantic-release/commit-analyzer": "^11.1.0",
102102
"@semantic-release/exec": "^6.0.3",
103-
"@semantic-release/github": "^9.2.3",
103+
"@semantic-release/github": "^9.2.5",
104104
"@semantic-release/release-notes-generator": "^12.1.0",
105105
"@types/cookie-parser": "^1.4.6",
106106
"@types/express": "^4.17.21",
107107
"@types/glob": "^8.1.0",
108108
"@types/lodash": "^4.14.202",
109109
"@types/minimist": "^1.2.5",
110-
"@types/node": "^20.10.0",
110+
"@types/node": "^20.10.4",
111111
"@types/request-ip": "^0.0.41",
112112
"@types/supertest": "^2.0.16",
113-
"@typescript-eslint/eslint-plugin": "^6.13.0",
114-
"@typescript-eslint/parser": "^6.13.0",
113+
"@typescript-eslint/eslint-plugin": "^6.13.2",
114+
"@typescript-eslint/parser": "^6.13.2",
115115
"coconfig": "^1.0.0",
116-
"eslint": "^8.54.0",
117-
"eslint-config-prettier": "^9.0.0",
116+
"eslint": "^8.55.0",
117+
"eslint-config-prettier": "^9.1.0",
118118
"eslint-plugin-import": "^2.29.0",
119119
"pino-pretty": "^10.2.3",
120120
"pinst": "^3.0.0",
121121
"supertest": "^6.3.3",
122122
"ts-node": "^10.9.1",
123123
"tsconfig-paths": "^4.2.0",
124-
"typescript": "^5.3.2",
124+
"typescript": "^5.3.3",
125125
"vitest": "^0.34.6"
126126
},
127127
"resolutions": {

src/express-app/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import http from 'http';
33
import https from 'https';
44
import path from 'path';
55

6-
import express from 'express';
76
import { pino } from 'pino';
87
import cookieParser from 'cookie-parser';
98
import { metrics } from '@opentelemetry/api';
@@ -93,6 +92,7 @@ export async function startApp<
9392
logger.level = logging?.level || 'info';
9493

9594
// Concentrate the Typescript ugliness...
95+
const { default: express } = await import('express');
9696
const app = express() as unknown as ServiceExpress<SLocals>;
9797
const routing = config.routing;
9898

0 commit comments

Comments
 (0)