function clean () { agent._instrumentation.currentTransaction = null }
test('#inject(noop, http, {})', setup(function (t) { const agent = getAgent() agent._conf.transactionSampleRate = 0 const tracer = new Tracer(agent) const span1 = tracer.startSpan('foo') t.equal(span1._isTransaction, true) t.equal(span1._span.sampled, false) const span2 = tracer.startSpan('foo') t.ok(span2 instanceof UnsampledSpan) const carrier = {} tracer.inject(span2, opentracing.FORMAT_HTTP_HEADERS, carrier) t.equal(carrier['elastic-apm-traceparent'], span1.context().toString()) agent._conf.transactionSampleRate = 1 t.end() }))
// for parsing application/json // GET method route app.get('/get-success', function (req, res) { query = {"somefield": {"someinnerfield":"somevalue"}} apm.addTags({"request-url": "/get-success", "query": JSON.stringify(query)}); apm.setCustomContext(query); apm.setUserContext({ id: 12345, username: "test-user", email: "test-user@rapido.bike" }) res.json({ status: "success", response: 'GET request to the success api' }) })
test('#startSpan() - not sampled', setup(function (t) { const agent = getAgent() agent._conf.transactionSampleRate = 0 const tracer = new Tracer(agent) const span1 = tracer.startSpan() t.ok(span1, 'should return span') t.ok(span1._span, 'should hold reference to span/transaction') t.equal(span1._isTransaction, true, 'first span should be a transaction') t.equal(span1._span.sampled, false) const span2 = tracer.startSpan() t.ok(span2 instanceof UnsampledSpan) agent._conf.transactionSampleRate = 1 t.end() }))