openlit
Version:
OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications, facilitating the integration of observability into your GenAI-driven projects
31 lines • 1.66 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const config_1 = __importDefault(require("../config"));
const constant_1 = require("../constant");
const semantic_convention_1 = __importDefault(require("../semantic-convention"));
const api_1 = require("@opentelemetry/api");
class BaseWrapper {
static setBaseSpanAttributes(span, { genAIEndpoint, model, user, cost, aiSystem }) {
const applicationName = config_1.default.applicationName;
const environment = config_1.default.environment;
span.setAttributes({
[constant_1.TELEMETRY_SDK_NAME]: constant_1.SDK_NAME,
});
span.setAttribute(constant_1.TELEMETRY_SDK_NAME, constant_1.SDK_NAME);
span.setAttribute(semantic_convention_1.default.GEN_AI_SYSTEM, aiSystem);
span.setAttribute(semantic_convention_1.default.GEN_AI_ENDPOINT, genAIEndpoint);
span.setAttribute(semantic_convention_1.default.GEN_AI_ENVIRONMENT, environment);
span.setAttribute(semantic_convention_1.default.GEN_AI_APPLICATION_NAME, applicationName);
span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_MODEL, model);
span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_USER, user);
if (cost !== undefined) {
span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_COST, cost);
}
span.setStatus({ code: api_1.SpanStatusCode.OK });
}
}
exports.default = BaseWrapper;
//# sourceMappingURL=base-wrapper.js.map