Skip to content

Commit 0a83204

Browse files
edited open telemetry server and test file
1 parent f6ffadf commit 0a83204

File tree

2 files changed

+34
-33
lines changed

2 files changed

+34
-33
lines changed

packages/pwa-kit-react-sdk/src/ssr/server/opentelemetry-server.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ import {B3Propagator} from '@opentelemetry/propagator-b3'
1111
import {Resource} from '@opentelemetry/resources'
1212
import {propagation} from '@opentelemetry/api'
1313
import logger from '../../utils/logger-instance'
14-
15-
const DEFAULT_SERVICE_NAME = 'pwa-kit-react-sdk'
14+
import {getServiceName, OTEL_CONFIG} from '../../utils/opentelemetry'
1615

1716
let provider = null
1817

@@ -26,9 +25,9 @@ let provider = null
2625
*/
2726
export const initializeServerTracing = (options = {}) => {
2827
const {
29-
serviceName = process.env.OTEL_SERVICE_NAME || DEFAULT_SERVICE_NAME,
28+
serviceName = options.serviceName || getServiceName(),
3029
serviceVersion,
31-
enabled = process.env.OTEL_SDK_ENABLED === 'true'
30+
enabled = OTEL_CONFIG.enabled
3231
} = options
3332

3433
// If tracing is disabled, return null without initializing

packages/pwa-kit-react-sdk/src/ssr/server/opentelemetry-server.test.js

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ jest.mock('../../utils/logger-instance', () => ({
4141
debug: jest.fn()
4242
}))
4343

44+
// Mock the opentelemetry utils
45+
jest.mock('../../utils/opentelemetry', () => ({
46+
getServiceName: jest.fn(() => 'pwa-kit-react-sdk'),
47+
OTEL_CONFIG: {
48+
serviceName: 'pwa-kit-react-sdk',
49+
enabled: true,
50+
b3TracingEnabled: true
51+
}
52+
}))
53+
4454
describe('OpenTelemetry Server Tracing', () => {
4555
let mockNodeTracerProvider
4656
let mockSimpleSpanProcessor
@@ -65,6 +75,7 @@ describe('OpenTelemetry Server Tracing', () => {
6575
const {Resource} = require('@opentelemetry/resources')
6676
const {propagation} = require('@opentelemetry/api')
6777
const logger = require('../../utils/logger-instance')
78+
const {getServiceName, OTEL_CONFIG} = require('../../utils/opentelemetry')
6879
const opentelemetryServer = require('./opentelemetry-server')
6980
/* eslint-enable @typescript-eslint/no-var-requires */
7081

@@ -278,57 +289,48 @@ describe('OpenTelemetry Server Tracing', () => {
278289
process.env = originalEnv
279290
})
280291

281-
test('should use OTEL_SERVICE_NAME environment variable when provided', () => {
292+
test('should use custom service name when provided', () => {
282293
// Clear previous mock calls
283294
mockResource.mockClear()
284295
mockNodeTracerProvider.mockClear()
285296

286-
process.env.OTEL_SERVICE_NAME = 'env-service-name'
287-
288-
const result = initializeServerTracing({enabled: true})
297+
const result = initializeServerTracing({
298+
enabled: true,
299+
serviceName: 'custom-service-name'
300+
})
289301

290302
expect(mockResource).toHaveBeenCalledWith({
291-
'service.name': 'env-service-name'
303+
'service.name': 'custom-service-name'
292304
})
293305
expect(result).toBeDefined()
294306
})
295307

296-
test('should enable tracing when OTEL_SDK_ENABLED is true', () => {
308+
test('should use getServiceName when no service name provided', () => {
297309
// Clear previous mock calls
298310
mockResource.mockClear()
299311
mockNodeTracerProvider.mockClear()
300312

301-
process.env.OTEL_SDK_ENABLED = 'true'
302-
303-
const result = initializeServerTracing()
313+
const result = initializeServerTracing({enabled: true})
304314

305-
expect(mockNodeTracerProvider).toHaveBeenCalled()
315+
expect(mockResource).toHaveBeenCalledWith({
316+
'service.name': 'pwa-kit-react-sdk'
317+
})
306318
expect(result).toBeDefined()
307319
})
308320

309-
test('should disable tracing when OTEL_SDK_ENABLED is false', () => {
310-
process.env.OTEL_SDK_ENABLED = 'false'
311-
312-
// Re-import to get fresh module with updated env
313-
// eslint-disable-next-line @typescript-eslint/no-var-requires
314-
const opentelemetryServer = require('./opentelemetry-server')
315-
const {initializeServerTracing} = opentelemetryServer
321+
test('should enable tracing when enabled is true', () => {
322+
// Clear previous mock calls
323+
mockResource.mockClear()
324+
mockNodeTracerProvider.mockClear()
316325

317-
const result = initializeServerTracing(defaultOptions)
326+
const result = initializeServerTracing({enabled: true})
318327

319-
expect(mockNodeTracerProvider).not.toHaveBeenCalled()
320-
expect(result).toBeNull()
328+
expect(mockNodeTracerProvider).toHaveBeenCalled()
329+
expect(result).toBeDefined()
321330
})
322331

323-
test('should disable tracing when OTEL_SDK_ENABLED is not set', () => {
324-
delete process.env.OTEL_SDK_ENABLED
325-
326-
// Re-import to get fresh module with updated env
327-
// eslint-disable-next-line @typescript-eslint/no-var-requires
328-
const opentelemetryServer = require('./opentelemetry-server')
329-
const {initializeServerTracing} = opentelemetryServer
330-
331-
const result = initializeServerTracing(defaultOptions)
332+
test('should disable tracing when enabled is false', () => {
333+
const result = initializeServerTracing({enabled: false})
332334

333335
expect(mockNodeTracerProvider).not.toHaveBeenCalled()
334336
expect(result).toBeNull()

0 commit comments

Comments
 (0)