Skip to content

Commit 856030f

Browse files
committed
chore: move user-agents into a new module
1 parent df52eba commit 856030f

File tree

4 files changed

+36
-27
lines changed

4 files changed

+36
-27
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const appInfo = require('@dotcom-reliability-kit/app-info');
2+
const packageJson = require('../../package.json');
3+
const traceExporterPackageJson = require('@opentelemetry/exporter-trace-otlp-proto/package.json');
4+
5+
const BASE_USER_AGENT = `FTSystem/${appInfo.systemCode} (${packageJson.name}/${packageJson.version})`;
6+
7+
exports.TRACING_USER_AGENT = `${BASE_USER_AGENT} (${traceExporterPackageJson.name}/${traceExporterPackageJson.version})`;

packages/opentelemetry/lib/index.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
1-
const packageJson = require('../package.json');
21
const { createInstrumentationConfig } = require('./config/instrumentations');
32
const { createResourceConfig } = require('./config/resource');
43
const { diag, DiagLogLevel } = require('@opentelemetry/api');
54
const opentelemetrySDK = require('@opentelemetry/sdk-node');
6-
const appInfo = require('@dotcom-reliability-kit/app-info');
75
const {
86
OTLPTraceExporter
97
} = require('@opentelemetry/exporter-trace-otlp-proto');
10-
const traceExporterPackageJson = require('@opentelemetry/exporter-trace-otlp-proto/package.json');
118
const {
129
NoopSpanProcessor,
1310
TraceIdRatioBasedSampler
1411
} = require('@opentelemetry/sdk-trace-base');
1512
const logger = require('@dotcom-reliability-kit/logger');
16-
17-
const USER_AGENT = `FTSystem/${appInfo.systemCode} (${packageJson.name}/${packageJson.version})`;
18-
const TRACING_USER_AGENT = `${USER_AGENT} (${traceExporterPackageJson.name}/${traceExporterPackageJson.version})`;
13+
const { TRACING_USER_AGENT } = require('./config/user-agents');
1914

2015
const DEFAULT_SAMPLE_PERCENTAGE = 5;
2116

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
jest.mock('@dotcom-reliability-kit/app-info', () => ({
2+
systemCode: 'mock-system-code'
3+
}));
4+
jest.mock('../../../../package.json', () => ({
5+
name: 'mock-package',
6+
version: '1.2.3'
7+
}));
8+
jest.mock('@opentelemetry/exporter-trace-otlp-proto/package.json', () => ({
9+
name: 'mock-otel-tracing-package',
10+
version: '3.4.5'
11+
}));
12+
13+
const { TRACING_USER_AGENT } = require('../../../../lib/config/user-agents');
14+
15+
describe('@dotcom-reliability-kit/opentelemetry/lib/config/resource', () => {
16+
describe('.TRACING_USER_AGENT', () => {
17+
it('is set based on app info and package versions', () => {
18+
expect(TRACING_USER_AGENT).toStrictEqual(
19+
'FTSystem/mock-system-code (mock-package/1.2.3) (mock-otel-tracing-package/3.4.5)'
20+
);
21+
});
22+
});
23+
});

packages/opentelemetry/test/unit/lib/index.spec.js

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
jest.mock('../../../package.json', () => ({
2-
name: 'mock-package',
3-
version: '1.2.3'
4-
}));
51
jest.mock('@opentelemetry/exporter-trace-otlp-proto');
6-
jest.mock('@opentelemetry/exporter-trace-otlp-proto/package.json', () => ({
7-
name: 'mock-otel-tracing-package',
8-
version: '3.4.5'
9-
}));
102
jest.mock('@opentelemetry/sdk-trace-base');
113
jest.mock('@opentelemetry/sdk-node');
12-
jest.mock('@dotcom-reliability-kit/app-info');
134
jest.mock('@opentelemetry/api');
145
jest.mock('@dotcom-reliability-kit/logger');
156
jest.mock('../../../lib/config/instrumentations', () => ({
@@ -20,6 +11,9 @@ jest.mock('../../../lib/config/instrumentations', () => ({
2011
jest.mock('../../../lib/config/resource', () => ({
2112
createResourceConfig: jest.fn().mockReturnValue('mock-resource')
2213
}));
14+
jest.mock('../../../lib/config/user-agents', () => ({
15+
TRACING_USER_AGENT: 'mock-tracing-user-agent'
16+
}));
2317

2418
const {
2519
createInstrumentationConfig
@@ -28,7 +22,6 @@ const { createResourceConfig } = require('../../../lib/config/resource');
2822
const { diag, DiagLogLevel } = require('@opentelemetry/api');
2923
const logger = require('@dotcom-reliability-kit/logger');
3024
const opentelemetrySDK = require('@opentelemetry/sdk-node');
31-
const appInfo = require('@dotcom-reliability-kit/app-info');
3225
const {
3326
OTLPTraceExporter
3427
} = require('@opentelemetry/exporter-trace-otlp-proto');
@@ -37,13 +30,6 @@ const {
3730
TraceIdRatioBasedSampler
3831
} = require('@opentelemetry/sdk-trace-base');
3932

40-
// Set up the mock
41-
appInfo.systemCode = 'MOCK_SYSTEM_CODE';
42-
appInfo.releaseVersion = 'MOCK_RELEASE_VERSION';
43-
appInfo.cloudProvider = 'MOCK_CLOUD_PROVIDER';
44-
appInfo.region = 'MOCK_CLOUD_REGION';
45-
appInfo.environment = 'MOCK_ENVIRONMENT';
46-
4733
logger.createChildLogger.mockReturnValue('mock child logger');
4834
DiagLogLevel.INFO = 'mock info log level';
4935

@@ -99,8 +85,7 @@ describe('@dotcom-reliability-kit/opentelemetry', () => {
9985
expect(OTLPTraceExporter).toHaveBeenCalledWith({
10086
url: 'MOCK_TRACING_ENDPOINT',
10187
headers: {
102-
'user-agent':
103-
'FTSystem/MOCK_SYSTEM_CODE (mock-package/1.2.3) (mock-otel-tracing-package/3.4.5)'
88+
'user-agent': 'mock-tracing-user-agent'
10489
}
10590
});
10691
expect(
@@ -147,8 +132,7 @@ describe('@dotcom-reliability-kit/opentelemetry', () => {
147132
url: 'MOCK_TRACING_ENDPOINT',
148133
headers: {
149134
authorization: 'mock-authorization-header',
150-
'user-agent':
151-
'FTSystem/MOCK_SYSTEM_CODE (mock-package/1.2.3) (mock-otel-tracing-package/3.4.5)'
135+
'user-agent': 'mock-tracing-user-agent'
152136
}
153137
});
154138
});

0 commit comments

Comments
 (0)