UNPKG

@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
"use strict"; // 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