openlit
Version:
OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications, facilitating the integration of observability into your GenAI-driven projects
61 lines • 2.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const resources_1 = require("@opentelemetry/resources");
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
const sdk_node_1 = require("@opentelemetry/sdk-node");
const tracing_1 = __importDefault(require("./tracing"));
const constant_1 = require("./constant");
const base_1 = __importDefault(require("./features/base"));
class Openlit extends base_1.default {
static init(options) {
try {
const { environment = constant_1.DEFAULT_ENVIRONMENT, applicationName = constant_1.DEFAULT_APPLICATION_NAME } = options || {};
const otlpEndpoint = options?.otlpEndpoint || process.env.OTEL_EXPORTER_OTLP_ENDPOINT || undefined;
let otlpHeaders = options?.otlpHeaders;
if (!otlpHeaders) {
if (process.env.OTEL_EXPORTER_OTLP_HEADERS) {
otlpHeaders = process.env.OTEL_EXPORTER_OTLP_HEADERS.split(',').reduce((acc, items) => {
const keyVal = items.split('=');
acc[keyVal[0]] = keyVal[1];
return acc;
}, {});
}
else {
otlpHeaders = {};
}
}
this.options = options || {};
this.options.otlpEndpoint = otlpEndpoint;
this.options.otlpHeaders = otlpHeaders;
this.options.disableBatch =
options?.disableBatch === undefined ? true : !!options.disableBatch;
this.resource = new resources_1.Resource({
[semantic_conventions_1.SEMRESATTRS_SERVICE_NAME]: applicationName,
[semantic_conventions_1.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: environment,
[semantic_conventions_1.SEMRESATTRS_TELEMETRY_SDK_NAME]: constant_1.SDK_NAME,
});
tracing_1.default.setup({
...this.options,
environment,
applicationName,
otlpEndpoint,
otlpHeaders,
resource: this.resource,
});
this._sdk = new sdk_node_1.NodeSDK({
resource: this.resource,
traceExporter: tracing_1.default.traceExporter,
});
// This was causing the traceProvider initilization with multiple instances.
// this._sdk.start();
}
catch (e) {
console.log('Connection time out', e);
}
}
}
exports.default = Openlit;
//# sourceMappingURL=index.js.map