95 lines
4.4 KiB
JavaScript
95 lines
4.4 KiB
JavaScript
|
"use strict";
|
||
|
var __assign = (this && this.__assign) || Object.assign || function(t) {
|
||
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||
|
s = arguments[i];
|
||
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||
|
t[p] = s[p];
|
||
|
}
|
||
|
return t;
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
var CorrelationContextManager_1 = require("./CorrelationContextManager");
|
||
|
var events_1 = require("events");
|
||
|
/**
|
||
|
* Type of span. Can be used to specify additional relationships between spans
|
||
|
* in addition to a parent/child relationship.
|
||
|
*/
|
||
|
var SpanKind;
|
||
|
(function (SpanKind) {
|
||
|
/** Default value. Indicates that the span is used internally. */
|
||
|
SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL";
|
||
|
/**
|
||
|
* Indicates that the span covers server-side handling of an RPC or other
|
||
|
* remote request.
|
||
|
*/
|
||
|
SpanKind[SpanKind["SERVER"] = 1] = "SERVER";
|
||
|
/**
|
||
|
* Indicates that the span covers the client-side wrapper around an RPC or
|
||
|
* other remote request.
|
||
|
*/
|
||
|
SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT";
|
||
|
/**
|
||
|
* Indicates that the span describes producer sending a message to a
|
||
|
* broker. Unlike client and server, there is no direct critical path latency
|
||
|
* relationship between producer and consumer spans.
|
||
|
*/
|
||
|
SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER";
|
||
|
/**
|
||
|
* Indicates that the span describes consumer receiving a message from a
|
||
|
* broker. Unlike client and server, there is no direct critical path latency
|
||
|
* relationship between producer and consumer spans.
|
||
|
*/
|
||
|
SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER";
|
||
|
})(SpanKind = exports.SpanKind || (exports.SpanKind = {}));
|
||
|
var OpenTelemetryScopeManagerWrapper = (function () {
|
||
|
function OpenTelemetryScopeManagerWrapper() {
|
||
|
}
|
||
|
OpenTelemetryScopeManagerWrapper.prototype.active = function () {
|
||
|
var _this = this;
|
||
|
var context = CorrelationContextManager_1.CorrelationContextManager.getCurrentContext();
|
||
|
return __assign({}, context, { getValue: function (key) {
|
||
|
// todo: lazy import activeSymbol from opentelemetry/api
|
||
|
if (!_this._activeSymbol) {
|
||
|
_this._activeSymbol = key;
|
||
|
return context;
|
||
|
}
|
||
|
if (key === _this._activeSymbol) {
|
||
|
return context;
|
||
|
}
|
||
|
return false;
|
||
|
}, setValue: function () { } });
|
||
|
};
|
||
|
OpenTelemetryScopeManagerWrapper.prototype.with = function (span, fn) {
|
||
|
var parentSpanId = span.parentSpanId;
|
||
|
var name = span.name;
|
||
|
var correlationContext = OpenTelemetryScopeManagerWrapper._spanToContext(span, parentSpanId, name);
|
||
|
return CorrelationContextManager_1.CorrelationContextManager.runWithContext(correlationContext, fn)();
|
||
|
};
|
||
|
OpenTelemetryScopeManagerWrapper.prototype.bind = function (target) {
|
||
|
if (typeof target === "function") {
|
||
|
return CorrelationContextManager_1.CorrelationContextManager.wrapCallback(target);
|
||
|
}
|
||
|
else if (target instanceof events_1.EventEmitter) {
|
||
|
CorrelationContextManager_1.CorrelationContextManager.wrapEmitter(target);
|
||
|
}
|
||
|
return target;
|
||
|
};
|
||
|
OpenTelemetryScopeManagerWrapper.prototype.enable = function () {
|
||
|
CorrelationContextManager_1.CorrelationContextManager.enable();
|
||
|
return this;
|
||
|
};
|
||
|
OpenTelemetryScopeManagerWrapper.prototype.disable = function () {
|
||
|
CorrelationContextManager_1.CorrelationContextManager.disable();
|
||
|
return this;
|
||
|
};
|
||
|
OpenTelemetryScopeManagerWrapper._spanToContext = function (span, parentSpanId, name) {
|
||
|
var _parentId = parentSpanId ? "|" + span.context().traceId + "." + parentSpanId + "." : span.context().traceId;
|
||
|
var context = __assign({}, span.context(), { traceFlags: span.context().traceFlags.toString() });
|
||
|
var correlationContext = CorrelationContextManager_1.CorrelationContextManager.spanToContextObject(context, _parentId, name);
|
||
|
return correlationContext;
|
||
|
};
|
||
|
return OpenTelemetryScopeManagerWrapper;
|
||
|
}());
|
||
|
exports.OpenTelemetryScopeManagerWrapper = OpenTelemetryScopeManagerWrapper;
|
||
|
exports.AsyncScopeManager = new OpenTelemetryScopeManagerWrapper();
|
||
|
//# sourceMappingURL=AsyncHooksScopeManager.js.map
|