-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Open
Labels
Description
Problem Statement
When onboarding to an Express projects in Sentry I am presented with a wall of text. How much of this will be applicable to the average express setup? Versus prioritizing to getting started and improving later
import express from "express";
import * as Sentry from "@sentry/node";
// or using CommonJS
// const express = require('express');
// const Sentry = require('@sentry/node');
const app = express();
Sentry.init({
dsn: SENTRY_DSN,
integrations: [
// enable HTTP calls tracing
new Sentry.Integrations.Http({ tracing: true }),
// enable Express.js middleware tracing
new Tracing.Integrations.Express({ app }),
// Automatically instrument Node.js libraries and frameworks
...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(),
],
// Set tracesSampleRate to 1.0 to capture 100%
// of transactions for performance monitoring.
// We recommend adjusting this value in production
tracesSampleRate: 1.0,
});
// RequestHandler creates a separate execution context, so that all
// transactions/spans/breadcrumbs are isolated across requests
app.use(Sentry.Handlers.requestHandler());
// TracingHandler creates a trace for every incoming request
app.use(Sentry.Handlers.tracingHandler());
// All controllers should live here
app.get("/", function rootHandler(req, res) {
res.end("Hello world!");
});
// The error handler must be before any other error middleware and after all controllers
app.use(Sentry.Handlers.errorHandler());
// Optional fallthrough error handler
app.use(function onError(err, req, res, next) {
// The error id is attached to `res.sentry` to be returned
// and optionally displayed to the user for support.
res.statusCode = 500;
res.end(res.sentry + "\n");
});
app.listen(3000);
with several more snippets below
Solution Brainstorm
are all those steps with the requestHandler really necessary in this case?
Vanilla Node snippet for comparison
Also to validate if the custom transaction and timeout are needed in that flow
Product Area
Projects