Skip to content

Commit

Permalink
added retrieve jaeger trace endpoint.
Browse files Browse the repository at this point in the history
  • Loading branch information
ajukes committed Apr 6, 2023
1 parent 02bba9d commit 4a360a8
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
18 changes: 18 additions & 0 deletions lib/routes/api/recent-calls.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ const router = require('express').Router();
const sysError = require('../error');
const {DbErrorBadRequest} = require('../../utils/errors');
const {getHomerApiKey, getHomerSipTrace, getHomerPcap} = require('../../utils/homer-utils');
const {getJaegerTrace} = require('../../utils/jaeger-utils');

const parseAccountSid = (url) => {
const arr = /Accounts\/([^\/]*)/.exec(url);
if (arr) return arr[1];
Expand Down Expand Up @@ -93,4 +95,20 @@ router.get('/:call_id/pcap', async(req, res) => {
}
});

router.get('/trace/:trace_id', async(req, res) => {
const {logger} = req.app.locals;
const {trace_id} = req.params;
try {
const obj = await getJaegerTrace(logger, trace_id);
if (!obj) {
logger.info(`/RecentCalls: unable to get spans from jaeger for ${trace_id}`);
return res.sendStatus(404);
}
res.status(200).json(obj.result);
} catch (err) {
logger.error({err}, `/RecentCalls error retrieving jaeger trace ${trace_id}`);
res.sendStatus(500);
}
});

module.exports = router;
18 changes: 18 additions & 0 deletions lib/utils/jaeger-utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const bent = require('bent');
const getJSON = bent(process.env.JAEGER_BASE_URL || 'http://127.0.0.1', 'GET', 'json', 200);

const getJaegerTrace = async(logger, traceId) => {
if (!process.env.JAEGER_BASE_URL) {
logger.debug('getJaegerTrace: jaeger integration not installed');
return null;
}
try {
return await getJSON(`/api/v3/traces/${traceId}`);
} catch (err) {
logger.error({err}, `getJaegerTrace: Error retrieving spans for traceId ${traceId}`);
}
};

module.exports = {
getJaegerTrace
};

0 comments on commit 4a360a8

Please sign in to comment.