@genexus/web-standard-functions
Version:
GeneXus JavaScript standard functions library for web generators
49 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.activeOpenTelemetry = void 0;
const instrumentation_1 = require("@opentelemetry/instrumentation");
const sdk_trace_web_1 = require("@opentelemetry/sdk-trace-web");
const auto_instrumentations_web_1 = require("@opentelemetry/auto-instrumentations-web");
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
const resources_1 = require("@opentelemetry/resources");
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
const activeOpenTelemetry = (serviceName, token, endpoint) => {
const provider = new sdk_trace_web_1.WebTracerProvider({
resource: new resources_1.Resource({
[semantic_conventions_1.ATTR_SERVICE_NAME]: serviceName
})
});
let headers = {};
if (endpoint.toLowerCase().includes("lightstep")) {
headers = {
"lightstep-access-token": token
};
}
else if (endpoint.toLowerCase().includes("signoz")) {
headers = {
"signoz-access-token": token
};
}
else {
headers = {
"access-token": token
};
}
provider.addSpanProcessor(new sdk_trace_web_1.BatchSpanProcessor(new exporter_trace_otlp_http_1.OTLPTraceExporter({
url: endpoint,
headers: headers
})));
provider.register();
(0, instrumentation_1.registerInstrumentations)({
instrumentations: [
(0, auto_instrumentations_web_1.getWebAutoInstrumentations)({
"@opentelemetry/instrumentation-document-load": {},
"@opentelemetry/instrumentation-user-interaction": {},
"@opentelemetry/instrumentation-fetch": {},
"@opentelemetry/instrumentation-xml-http-request": {}
})
]
});
};
exports.activeOpenTelemetry = activeOpenTelemetry;
//# sourceMappingURL=openTelemetry.js.map