UNPKG

applicationinsights

Version:
47 lines 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var diagnostic_channel_1 = require("diagnostic-channel"); var Traceparent = require("../../Library/Traceparent"); var SpanParser = require("./SpanParser"); var AsyncHooksScopeManager_1 = require("../AsyncHooksScopeManager"); var clients = []; exports.subscriber = function (event) { var span = event.data; var telemetry = SpanParser.spanToTelemetryContract(span); var spanContext = span.context(); var traceparent = new Traceparent(); traceparent.traceId = spanContext.traceId; traceparent.spanId = spanContext.spanId; traceparent.traceFlag = spanContext.traceFlags.toString(); traceparent.parentId = span.parentSpanId ? "|" + spanContext.traceId + "." + span.parentSpanId + "." : null; AsyncHooksScopeManager_1.AsyncScopeManager.with(span, function () { clients.forEach(function (client) { if (span.kind === AsyncHooksScopeManager_1.SpanKind.SERVER) { // Server or Consumer client.trackRequest(telemetry); } else if (span.kind === AsyncHooksScopeManager_1.SpanKind.CLIENT || span.kind === AsyncHooksScopeManager_1.SpanKind.INTERNAL) { // Client or Producer or Internal client.trackDependency(telemetry); } // else - ignore producer/consumer spans for now until it is clear how this sdk should interpret them }); }); }; function enable(enabled, client) { if (enabled) { if (clients.length === 0) { diagnostic_channel_1.channel.subscribe("azure-coretracing", exports.subscriber); } ; clients.push(client); } else { clients = clients.filter(function (c) { return c != client; }); if (clients.length === 0) { diagnostic_channel_1.channel.unsubscribe("azure-coretracing", exports.subscriber); } } } exports.enable = enable; //# sourceMappingURL=azure-coretracing.sub.js.map