in src/diagnostic-channel-publishers/src/azure-coretracing.pub.ts [58:75]
tracerProvider.getTracer = function(tracerName, version) {
const tracer = getTracerOriginal.call(this, tracerName, version);
if (!tracer[exports.AzureMonitorSymbol]) { // Avoid patching multiple times
const startSpanOriginal = tracer.startSpan;
tracer.startSpan = function(spanName: string, options?: opentelemetryTypes.SpanOptions, context?: opentelemetryTypes.Context) {
const span = startSpanOriginal.call(this, spanName, options, context);
const originalEnd = span.end;
span.end = function() {
const result = originalEnd.apply(this, arguments);
channel.publish("azure-coretracing", span);
return result;
};
return span;
};
tracer[AzureMonitorSymbol] = true;
}
return tracer;
};