Skip to content

feat(node): Make @sentry/node powered by OpenTelemetry #10762

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Feb 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@
"test:assert": "pnpm test"
},
"dependencies": {
"@sentry/node-experimental": "latest || *",
"@sentry/node": "latest || *",
"@sentry/types": "latest || *",
"@sentry/core": "latest || *",
"@sentry/utils": "latest || *",
"@sentry/node": "latest || *",
"@sentry/opentelemetry-node": "latest || *",
"@sentry-internal/tracing": "latest || *",
"@sentry/opentelemetry": "latest || *",
"@types/node": "18.15.1",
"fastify": "4.23.2",
"fastify-plugin": "4.5.1",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require('./tracing');

const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');
const { fastify } = require('fastify');
const fastifyPlugin = require('fastify-plugin');
const http = require('http');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
environment: 'qa', // dynamic sampling bias to keep transactions
dsn: process.env.E2E_TEST_DSN,
integrations: [],
debug: true,
tracesSampleRate: 1,
tunnel: 'http://localhost:3031/', // proxy server
});
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"test:assert": "pnpm test"
},
"dependencies": {
"@sentry/node": "latest || *",
"@sentry/node-experimental": "latest || *",
"@sentry/sveltekit": "latest || *",
"@sentry/remix": "latest || *",
"@sentry/astro": "latest || *",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as SentryAstro from '@sentry/astro';
import * as SentryBun from '@sentry/bun';
import * as SentryNextJs from '@sentry/nextjs';
import * as SentryNode from '@sentry/node';
import * as SentryNode from '@sentry/node-experimental';
import * as SentryRemix from '@sentry/remix';
import * as SentryServerless from '@sentry/serverless';
import * as SentrySvelteKit from '@sentry/sveltekit';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ Sentry.init({
const app = express();
const port = 3030;

app.use(Sentry.Handlers.requestHandler());
app.use(Sentry.Handlers.tracingHandler());

app.get('/test-success', function (req, res) {
res.send({ version: 'v1' });
});
Expand Down Expand Up @@ -73,7 +70,7 @@ app.get('/test-local-variables-caught', function (req, res) {
res.send({ exceptionId, randomVariableToRecord });
});

app.use(Sentry.Handlers.errorHandler());
Sentry.setupExpressErrorHandler(app);

// @ts-ignore
app.use(function onError(err, req, res, next) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ Sentry.init({
environment: 'qa', // dynamic sampling bias to keep transactions
dsn: process.env.E2E_TEST_DSN,
includeLocalVariables: true,
integrations: [Sentry.hapiIntegration({ server })],
debug: true,
tunnel: `http://localhost:3031/`, // proxy server
tracesSampleRate: 1,
Expand Down Expand Up @@ -56,6 +55,7 @@ const init = async () => {

(async () => {
init();
await Sentry.setupHapiErrorHandler(server);
await server.start();
console.log('Server running on %s', server.info.uri);
})();
3 changes: 0 additions & 3 deletions dev-packages/node-integration-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,9 @@
"build:types": "tsc -p tsconfig.types.json",
"clean": "rimraf -g **/node_modules && run-p clean:script",
"clean:script": "node scripts/clean.js",
"prisma:init": "(cd suites/tracing/prisma-orm && ts-node ./setup.ts)",
"prisma:init:new": "(cd suites/tracing-new/prisma-orm && ts-node ./setup.ts)",
"lint": "eslint . --format stylish",
"fix": "eslint . --format stylish --fix",
"type-check": "tsc",
"pretest": "run-s --silent prisma:init prisma:init:new",
"test": "ts-node ./utils/run-tests.ts",
"jest": "jest --config ./jest.config.js",
"test:watch": "yarn test --watch"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Sentry.init({
release: '1.0',
debug: true,
integrations: [Sentry.anrIntegration({ captureStackTrace: true, anrThreshold: 100 })],
autoSessionTracking: true,
});

function longWork() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import express from 'express';

const app = express();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import express from 'express';

const app = express();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import express from 'express';

const app = express();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import http from 'http';
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as http from 'http';
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import http from 'http';
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import http from 'http';
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '@sentry/core';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import http from 'http';
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport, startExpressServerAndSendPortToRunner } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');
const cors = require('cors');

Sentry.init({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import cors from 'cors';
import express from 'express';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ conditionalTest({ min: 18 })('LocalVariables integration', () => {
child.on('message', msg => {
reportedCount++;
const rssMb = msg.memUsage.rss / 1024 / 1024;
// We shouldn't use more than 100MB of memory
expect(rssMb).toBeLessThan(100);
// We shouldn't use more than 120MB of memory
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@timfish not sure how bad that is, is that just a "random" number or is the fact that this is exceeding this here a sign that it is actually leaking memory? 🤔 I would expect this to use more memory now if it's OTEL powered than before, but 🤷

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If memory is leaked, it exceeds this quite quickly. 100MB was chosen simply because it was the lowest figure where the tests would pass reliably.

expect(rssMb).toBeLessThan(120);
});

// Wait for 20 seconds
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,11 @@ const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
integrations: integrations => {
return integrations.map(integration => {
if (integration.name === 'OnUncaughtException') {
return new Sentry.Integrations.OnUncaughtException({
exitEvenIfOtherHandlersAreRegistered: false,
});
} else {
return integration;
}
});
},
integrations: [
Sentry.onUncaughtExceptionIntegration({
exitEvenIfOtherHandlersAreRegistered: false,
}),
],
});

process.on('uncaughtException', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,11 @@ const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
integrations: integrations => {
return integrations.map(integration => {
if (integration.name === 'OnUncaughtException') {
return new Sentry.Integrations.OnUncaughtException({
exitEvenIfOtherHandlersAreRegistered: false,
});
} else {
return integration;
}
});
},
integrations: [
Sentry.onUncaughtExceptionIntegration({
exitEvenIfOtherHandlersAreRegistered: false,
}),
],
});

setTimeout(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Sentry.startSpan({ name: 'root_span' }, () => {
Sentry.startSpan(
{
name: 'span_1',
data: {
attributes: {
foo: 'bar',
baz: [1, 2, 3],
},
Expand All @@ -25,7 +25,7 @@ Sentry.startSpan({ name: 'root_span' }, () => {

Sentry.startSpan({ name: 'span_3' }, () => {
// span_4 is the child of span_3 but doesn't finish.
Sentry.startInactiveSpan({ name: 'span_4', data: { qux: 'quux' } });
Sentry.startInactiveSpan({ name: 'span_4', attributes: { qux: 'quux' } });

// span_5 is another child of span_3 but finishes.
Sentry.startSpan({ name: 'span_5' }, () => undefined);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* eslint-disable no-console */
import type { SessionFlusher } from '@sentry/core';
import * as Sentry from '@sentry/node';
import * as Sentry from '@sentry/node-experimental';
import express from 'express';

const app = express();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');
const { loggingTransport } = require('@sentry-internal/node-integration-tests');

Sentry.init({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');
const { loggingTransport } = require('@sentry-internal/node-integration-tests');

Sentry.init({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport, sendPortToRunner } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/naming-convention */
/* eslint-disable @typescript-eslint/explicit-member-accessibility */
import { loggingTransport, sendPortToRunner } from '@sentry-internal/node-integration-tests';
import * as Sentry from '@sentry/node-experimental';
import * as Sentry from '@sentry/node';

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node-experimental');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
Expand Down
Loading