Skip to content

Commit a2562e2

Browse files
authored
test(node): Add integration test to demonstrate sample rate propagation of incoming trace (#14788)
1 parent 61660df commit a2562e2

File tree

2 files changed

+62
-0
lines changed
  • dev-packages/node-integration-tests/suites/tracing/envelope-header/sampleRate-propagation

2 files changed

+62
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
2+
const Sentry = require('@sentry/node');
3+
4+
Sentry.init({
5+
dsn: 'https://[email protected]/1337',
6+
release: '1.0',
7+
// disable attaching headers to /test/* endpoints
8+
tracePropagationTargets: [/^(?!.*test).*$/],
9+
tracesSampleRate: 1.0,
10+
transport: loggingTransport,
11+
});
12+
13+
// express must be required after Sentry is initialized
14+
const express = require('express');
15+
const cors = require('cors');
16+
const bodyParser = require('body-parser');
17+
const { startExpressServerAndSendPortToRunner } = require('@sentry-internal/node-integration-tests');
18+
19+
const app = express();
20+
21+
app.use(cors());
22+
app.use(bodyParser.json());
23+
app.use(bodyParser.text());
24+
app.use(bodyParser.raw());
25+
26+
app.get('/test', (req, res) => {
27+
res.send({ headers: req.headers });
28+
});
29+
30+
Sentry.setupExpressErrorHandler(app);
31+
32+
startExpressServerAndSendPortToRunner(app);
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { cleanupChildProcesses, createRunner } from '../../../../utils/runner';
2+
3+
describe('tracesSampleRate propagation', () => {
4+
afterAll(() => {
5+
cleanupChildProcesses();
6+
});
7+
8+
const traceId = '12345678123456781234567812345678';
9+
10+
test('uses sample rate from incoming baggage header in trace envelope item', done => {
11+
createRunner(__dirname, 'server.js')
12+
.expectHeader({
13+
transaction: {
14+
trace: {
15+
sample_rate: '0.05',
16+
sampled: 'true',
17+
trace_id: traceId,
18+
transaction: 'myTransaction',
19+
},
20+
},
21+
})
22+
.start(done)
23+
.makeRequest('get', '/test', {
24+
headers: {
25+
'sentry-trace': `${traceId}-1234567812345678-1`,
26+
baggage: `sentry-sample_rate=0.05,sentry-trace_id=${traceId},sentry-sampled=true,sentry-transaction=myTransaction`,
27+
},
28+
});
29+
});
30+
});

0 commit comments

Comments
 (0)