Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions src/payment/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,22 @@ const grpc = require('@grpc/grpc-js')
const protoLoader = require('@grpc/proto-loader')
const health = require('grpc-js-health-check')
const opentelemetry = require('@opentelemetry/api')
const tracer = opentelemetry.trace.getTracer(process.env.OTEL_SERVICE_NAME);

const charge = require('./charge')
const logger = require('./logger')

async function chargeServiceHandler(call, callback) {
const span = opentelemetry.trace.getActiveSpan();
// Check if we have an active span if not start a new one
let span = opentelemetry.trace.getActiveSpan();
let startedSpan = false;
if (!span)
{
span = tracer.startSpan('chargeServiceHandler');
// Mark this new span as active
tracer.setSpan(tracer.context.active(), span)
startedSpan = true;
}

try {
const amount = call.request.amount
Expand All @@ -26,7 +36,10 @@ async function chargeServiceHandler(call, callback) {

span.recordException(err)
span.setStatus({ code: opentelemetry.SpanStatusCode.ERROR })

// Make sure we cleanup by closing the span if we started it.
if (startedSpan) {
span.end();
}
callback(err)
}
}
Expand Down