Skip to content

Commit ce5b771

Browse files
committed
import NodeSDK conditionally for webpack support, closes #43
1 parent 63ad5ef commit ce5b771

2 files changed

Lines changed: 47 additions & 49 deletions

File tree

README.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -135,35 +135,34 @@ directory of the project (or inside `src` folder if using one):
135135

136136
```typescript
137137
// instrumentation.ts
138-
import { NodeSDK } from '@opentelemetry/sdk-node';
139138
import type { SpanProcessor } from '@opentelemetry/sdk-trace-base';
140139
import type { LogRecordProcessor } from '@opentelemetry/sdk-logs';
141140

142141
export async function register() {
143-
const runtime = process.env.NEXT_RUNTIME;
144-
const env = process.env.NODE_ENV;
145-
146-
// Add your app own processes here existing configuration
147-
const sdkConfig: {
148-
spanProcessors: SpanProcessor[];
149-
logRecordProcessors: LogRecordProcessor[];
150-
} = {
151-
spanProcessors: [],
152-
logRecordProcessors: [],
153-
};
154-
155-
// Conditionally add Tidewave processors in development
156-
if (runtime === 'nodejs' && env === 'development') {
157-
const { TidewaveSpanProcessor, TidewaveLogRecordProcessor } = await import(
158-
'tidewave/next-js/instrumentation'
159-
);
160-
161-
sdkConfig.spanProcessors.push(new TidewaveSpanProcessor());
162-
sdkConfig.logRecordProcessors.push(new TidewaveLogRecordProcessor());
142+
if (process.env.NEXT_RUNTIME === 'nodejs') {
143+
const { NodeSDK } = await import('@opentelemetry/sdk-node');
144+
145+
// Add your app own processes here existing configuration
146+
const sdkConfig: {
147+
spanProcessors: SpanProcessor[];
148+
logRecordProcessors: LogRecordProcessor[];
149+
} = {
150+
spanProcessors: [],
151+
logRecordProcessors: [],
152+
};
153+
154+
// Conditionally add Tidewave processors in development
155+
if (process.env.NODE_ENV === 'development') {
156+
const { TidewaveSpanProcessor, TidewaveLogRecordProcessor } =
157+
await import('tidewave/next-js/instrumentation');
158+
159+
sdkConfig.spanProcessors.push(new TidewaveSpanProcessor());
160+
sdkConfig.logRecordProcessors.push(new TidewaveLogRecordProcessor());
161+
}
162+
163+
const sdk = new NodeSDK(sdkConfig);
164+
sdk.start();
163165
}
164-
165-
const sdk = new NodeSDK(sdkConfig);
166-
sdk.start();
167166
}
168167
```
169168

src/cli/install.ts

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -347,36 +347,35 @@ async function createInstrumentation(dir: string, dryRun: boolean): Promise<void
347347
return;
348348
}
349349

350-
const instrumentationContent = `// instrumentation.ts
351-
import { NodeSDK } from '@opentelemetry/sdk-node';
352-
import type { SpanProcessor } from '@opentelemetry/sdk-trace-base';
353-
import type { LogRecordProcessor } from '@opentelemetry/sdk-logs';
350+
const instrumentationContent = `import type { SpanProcessor } from "@opentelemetry/sdk-trace-base";
351+
import type { LogRecordProcessor } from "@opentelemetry/sdk-logs";
354352
355353
export async function register() {
356-
const runtime = process.env.NEXT_RUNTIME;
357-
const env = process.env.NODE_ENV;
358-
359-
// Add your app own processes here existing configuration
360-
const sdkConfig: {
361-
spanProcessors: SpanProcessor[];
362-
logRecordProcessors: LogRecordProcessor[];
363-
} = {
364-
spanProcessors: [],
365-
logRecordProcessors: [],
366-
};
354+
if (process.env.NEXT_RUNTIME === "nodejs") {
355+
const { NodeSDK } = await import("@opentelemetry/sdk-node");
356+
357+
// Add your app own processes here existing configuration
358+
const sdkConfig: {
359+
spanProcessors: SpanProcessor[];
360+
logRecordProcessors: LogRecordProcessor[];
361+
} = {
362+
spanProcessors: [],
363+
logRecordProcessors: [],
364+
};
365+
366+
// Conditionally add Tidewave processors in development
367+
if (process.env.NODE_ENV === "development") {
368+
const { TidewaveSpanProcessor, TidewaveLogRecordProcessor } = await import(
369+
"tidewave/next-js/instrumentation"
370+
);
367371
368-
// Conditionally add Tidewave processors in development
369-
if (runtime === 'nodejs' && env === 'development') {
370-
const { TidewaveSpanProcessor, TidewaveLogRecordProcessor } = await import(
371-
'tidewave/next-js/instrumentation'
372-
);
372+
sdkConfig.spanProcessors.push(new TidewaveSpanProcessor());
373+
sdkConfig.logRecordProcessors.push(new TidewaveLogRecordProcessor());
374+
}
373375
374-
sdkConfig.spanProcessors.push(new TidewaveSpanProcessor());
375-
sdkConfig.logRecordProcessors.push(new TidewaveLogRecordProcessor());
376+
const sdk = new NodeSDK(sdkConfig);
377+
sdk.start();
376378
}
377-
378-
const sdk = new NodeSDK(sdkConfig);
379-
sdk.start();
380379
}
381380
`;
382381

0 commit comments

Comments
 (0)