From 1ade5e52dbaac281a1074f3dbc3de6aa33006947 Mon Sep 17 00:00:00 2001 From: Oguzcan Kirmemis Date: Fri, 1 Mar 2019 15:26:12 +0300 Subject: [PATCH] Fix Bug: Incorrect parenthood handling of postgres, data-send, redis in Jaeger Signed-off-by: Oguzcan Kirmemis --- .../iot-entities/postgresql/models/index.js | 7 ++----- public-interface/iot-entities/redis/client.js | 7 ++----- .../lib/advancedanalytics-proxy/data-proxy.js | 18 +++--------------- 3 files changed, 7 insertions(+), 25 deletions(-) diff --git a/public-interface/iot-entities/postgresql/models/index.js b/public-interface/iot-entities/postgresql/models/index.js index 8dd2d247..790c3a8e 100644 --- a/public-interface/iot-entities/postgresql/models/index.js +++ b/public-interface/iot-entities/postgresql/models/index.js @@ -67,11 +67,8 @@ function wrapQuery(original) { /*jshint -W098 */ return function wrappedQuery (sql, options) { const context = contextProvider.instance(); - var fatherSpan = context.get(spanContext.parent); - // Track if request coming from express - if (!fatherSpan) - {fatherSpan = {};} - var span = tracer.startSpan('postgres-call', { childOf: fatherSpan.span }); + var fatherSpan = context.get(spanContext.active); + var span = tracer.startSpan('postgres-call', { childOf: fatherSpan }); span.log({ event: 'postgres query', query: sql diff --git a/public-interface/iot-entities/redis/client.js b/public-interface/iot-entities/redis/client.js index 11358524..b330e291 100644 --- a/public-interface/iot-entities/redis/client.js +++ b/public-interface/iot-entities/redis/client.js @@ -31,11 +31,8 @@ var config = require('../../config'), function wrapSend(original) { return function wrappedSend(commandObj) { const context = contextProvider.instance(); - var fatherSpan = context.get(spanContext.parent); - // Track if request coming from express - if (!fatherSpan) - {fatherSpan = {};} - var span = tracer.startSpan('redis-call', { childOf: fatherSpan.span }); + var fatherSpan = context.get(spanContext.active); + var span = tracer.startSpan('redis-call', { childOf: fatherSpan }); span.log({ event: 'redis command', command: commandObj.command diff --git a/public-interface/lib/advancedanalytics-proxy/data-proxy.js b/public-interface/lib/advancedanalytics-proxy/data-proxy.js index 6153f16f..c553ffc1 100644 --- a/public-interface/lib/advancedanalytics-proxy/data-proxy.js +++ b/public-interface/lib/advancedanalytics-proxy/data-proxy.js @@ -22,7 +22,7 @@ var MQTTConnector = require('./../../lib/mqtt'), request = require('request'), util = require('../dateUtil'), logger = require('../logger').init(), - contextProvider = require('./../context-provider'), + context = require('./../context-provider').instance(), tracer = require('./../express-jaeger').tracer, spanContext = require('./../express-jaeger').spanContext, opentracing = require('opentracing'), @@ -70,21 +70,14 @@ var buildICFALMessage = function(data) { }; function createSpan(name) { - const context = contextProvider.instance(); if (!jaegerConfig.tracing) { return null; } - var fatherSpan = context.get(spanContext.parent); + var fatherSpan = context.get(spanContext.active); if (!fatherSpan) { - // something is wrong - logger.warn('Span must be dropped due to no father is present'); - var rootSpan = context.get(spanContext.root); - if (rootSpan) { - rootSpan.setTag(opentracing.Tags.SAMPLING_PRIORITY, 0); - } return null; } - const span = tracer.startSpan(name, { childOf: fatherSpan.span }); + const span = tracer.startSpan(name, { childOf: fatherSpan }); return span; } @@ -156,7 +149,6 @@ module.exports = function(config) { }; this.submitDataREST = function(data, callback) { - const context = contextProvider.instance(); const span = createSpan('submitDataRest'); var dataMetric = new Metric(); @@ -239,7 +231,6 @@ module.exports = function(config) { }; this.dataInquiry = function(data, callback){ - const context = contextProvider.instance(); const span = createSpan('dataInquiry'); var dataInquiryMessage = buildDIMessage(data); @@ -296,7 +287,6 @@ module.exports = function(config) { }; this.dataInquiryAdvanced = function(data, callback) { - const context = contextProvider.instance(); const span = createSpan('dataInquiryAdvanced'); var accountId = data.accountId; @@ -360,7 +350,6 @@ module.exports = function(config) { }; this.report = function(data, callback) { - const context = contextProvider.instance(); const span = createSpan('dataReport'); var domainId = data.domainId; @@ -407,7 +396,6 @@ module.exports = function(config) { }; this.getFirstAndLastMeasurement = function(data, callback) { - const context = contextProvider.instance(); const span = createSpan('getFirstAndLastMeasurement'); var domainId = data.domainId;