Skip to content

Commit 4eeba80

Browse files
authored
feat(otel): add NextJS OpenTelemetry docs (#5855)
1 parent ae36ca5 commit 4eeba80

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<Alert level="info" title="Note">
2+
3+
OpenTelemetry support is only supported for server-side instrumentation.
4+
5+
</Alert>
6+
7+
```bash {tabTitle:npm}
8+
npm install @sentry/nextjs @sentry/opentelemetry-node
9+
```
10+
11+
```bash {tabTitle:yarn}
12+
yarn add @sentry/nextjs @sentry/opentelemetry-node
13+
```
14+
15+
<Note>
16+
17+
Note that @sentry/opentelemetry-node depends on the following peer dependencies:
18+
19+
- @opentelemetry/api, version 1.0.0 or greater
20+
- @opentelemetry/sdk-trace-base, version 1.0.0 or greater, or a package that implements it, like @opentelemetry/sdk-node
21+
22+
</Note>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
You need to register `SentrySpanProcessor` and `SentryPropagator` with your OpenTelemetry installation in your `sentry.server.config.js` file:
2+
3+
```javascript {filename:sentry.server.config.js}
4+
const Sentry = require("@sentry/nextjs");
5+
const {
6+
SentrySpanProcessor,
7+
SentryPropagator,
8+
} = require("@sentry/opentelemetry-node");
9+
10+
const opentelemetry = require("@opentelemetry/sdk-node");
11+
const otelApi = require("@opentelemetry/api");
12+
const {
13+
getNodeAutoInstrumentations,
14+
} = require("@opentelemetry/auto-instrumentations-node");
15+
const {
16+
OTLPTraceExporter,
17+
} = require("@opentelemetry/exporter-trace-otlp-grpc");
18+
19+
// Make sure to call `Sentry.init` BEFORE initializing the OpenTelemetry SDK
20+
Sentry.init({
21+
dsn: "__DSN__",
22+
tracesSampleRate: 1.0,
23+
// set the instrumenter to use OpenTelemetry instead of Sentry
24+
instrumenter: "otel",
25+
// ...
26+
});
27+
28+
const sdk = new opentelemetry.NodeSDK({
29+
// Existing config
30+
traceExporter: new OTLPTraceExporter(),
31+
instrumentations: [getNodeAutoInstrumentations()],
32+
33+
// Sentry config
34+
spanProcessor: new SentrySpanProcessor(),
35+
});
36+
37+
otelApi.propagation.setGlobalPropagator(new SentryPropagator());
38+
39+
sdk.start();
40+
```

src/platforms/common/performance/instrumentation/opentelemetry.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: OpenTelemetry Support
33
sidebar_order: 20
44
supported:
55
- node
6+
- javascript.nextjs
67
notSupported:
78
- javascript
89
- python

0 commit comments

Comments
 (0)