@aws/aws-distro-opentelemetry-node-autoinstrumentation
Version:
This package provides Amazon Web Services distribution of the OpenTelemetry Node Instrumentation, which allows for auto-instrumentation of NodeJS applications.
79 lines • 3.49 kB
JavaScript
;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeToJson = exports.tryParseJson = exports.PROVIDER_MAP = void 0;
const semconv_1 = require("./semconv");
exports.PROVIDER_MAP = {
bedrock: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,
'amazon-bedrock': semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,
amazon_bedrock: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,
'bedrock-converse': semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,
aws: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,
langchain_aws: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,
openai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_OPENAI,
anthropic: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_ANTHROPIC,
claude: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_ANTHROPIC,
azure: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_OPENAI,
azure_openai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_OPENAI,
google: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI,
google_genai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI,
'google-genai': semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI,
langchain_google_genai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI,
vertex: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_VERTEX_AI,
vertexai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_VERTEX_AI,
'google-vertexai': semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_VERTEX_AI,
gemini: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GCP_GEMINI,
cohere: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_COHERE,
langchain_cohere: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_COHERE,
mistral: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_MISTRAL_AI,
mistralai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_MISTRAL_AI,
groq: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GROQ,
langchain_groq: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_GROQ,
deepseek: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_DEEPSEEK,
langchain_deepseek: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_DEEPSEEK,
perplexity: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_PERPLEXITY,
xai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_X_AI,
langchain_xai: semconv_1.GEN_AI_PROVIDER_NAME_VALUE_X_AI,
};
function tryParseJson(value) {
try {
return JSON.parse(value);
}
catch (_a) {
return value;
}
}
exports.tryParseJson = tryParseJson;
function serializeToJson(value, maxDepth = 10) {
const seen = new WeakSet();
const sanitize = (obj, depth) => {
if (depth <= 0)
return '...';
if (obj === null || obj === undefined)
return obj;
if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean')
return obj;
if (typeof obj === 'object') {
if (seen.has(obj))
return '[Circular]';
seen.add(obj);
if (Array.isArray(obj))
return obj.map(item => sanitize(item, depth - 1));
const result = {};
for (const [key, val] of Object.entries(obj)) {
result[key] = sanitize(val, depth - 1);
}
return result;
}
return String(obj);
};
try {
return JSON.stringify(sanitize(value, maxDepth));
}
catch (_a) {
return String(value);
}
}
exports.serializeToJson = serializeToJson;
//# sourceMappingURL=instrumentation-utils.js.map