UNPKG

openlit

Version:

OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications, facilitating the integration of observability into your GenAI-driven projects

291 lines 18.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Semantic conventions aligned with OpenTelemetry Gen AI spec and Python SDK. * Old keys are kept for backward compatibility; new OTel-aligned keys are added with _OTEL suffix. */ class SemanticConvention { } // Unstable SemConv SemanticConvention.ATTR_DEPLOYMENT_ENVIRONMENT = 'deployment.environment'; // ----- GenAI General (legacy keys kept for backward compatibility) ----- SemanticConvention.GEN_AI_PROVIDER_NAME = 'gen_ai.system'; /** OTel standard: use for new code / future compatibility */ SemanticConvention.GEN_AI_PROVIDER_NAME_OTEL = 'gen_ai.provider.name'; // ----- OTel Gen AI & Server/Error (new keys; legacy below unchanged) ----- SemanticConvention.GEN_AI_OPERATION = 'gen_ai.operation.name'; SemanticConvention.GEN_AI_OUTPUT_TYPE = 'gen_ai.output.type'; SemanticConvention.GEN_AI_REQUEST_MODEL = 'gen_ai.request.model'; SemanticConvention.GEN_AI_REQUEST_SEED = 'gen_ai.request.seed'; SemanticConvention.GEN_AI_REQUEST_CHOICE_COUNT = 'gen_ai.request.choice.count'; SemanticConvention.GEN_AI_REQUEST_ENCODING_FORMATS = 'gen_ai.request.encoding_formats'; SemanticConvention.GEN_AI_REQUEST_FREQUENCY_PENALTY = 'gen_ai.request.frequency_penalty'; SemanticConvention.GEN_AI_REQUEST_MAX_TOKENS = 'gen_ai.request.max_tokens'; SemanticConvention.GEN_AI_REQUEST_PRESENCE_PENALTY = 'gen_ai.request.presence_penalty'; SemanticConvention.GEN_AI_REQUEST_STOP_SEQUENCES = 'gen_ai.request.stop_sequences'; SemanticConvention.GEN_AI_REQUEST_TEMPERATURE = 'gen_ai.request.temperature'; SemanticConvention.GEN_AI_REQUEST_TOP_K = 'gen_ai.request.top_k'; SemanticConvention.GEN_AI_REQUEST_TOP_P = 'gen_ai.request.top_p'; SemanticConvention.GEN_AI_CONVERSATION_ID = 'gen_ai.conversation.id'; SemanticConvention.GEN_AI_RESPONSE_FINISH_REASON = 'gen_ai.response.finish_reasons'; SemanticConvention.GEN_AI_RESPONSE_ID = 'gen_ai.response.id'; SemanticConvention.GEN_AI_RESPONSE_MODEL = 'gen_ai.response.model'; SemanticConvention.GEN_AI_INPUT_MESSAGES = 'gen_ai.input.messages'; SemanticConvention.GEN_AI_OUTPUT_MESSAGES = 'gen_ai.output.messages'; SemanticConvention.GEN_AI_SYSTEM_INSTRUCTIONS = 'gen_ai.system_instructions'; SemanticConvention.GEN_AI_TOOL_DEFINITIONS = 'gen_ai.tool.definitions'; SemanticConvention.GEN_AI_EMBEDDINGS_DIMENSION_COUNT = 'gen_ai.embeddings.dimension.count'; SemanticConvention.GEN_AI_TOKEN_TYPE = 'gen_ai.token.type'; SemanticConvention.GEN_AI_TOKEN_TYPE_INPUT = 'input'; SemanticConvention.GEN_AI_TOKEN_TYPE_OUTPUT = 'output'; SemanticConvention.GEN_AI_TOKEN_TYPE_REASONING = 'reasoning'; SemanticConvention.GEN_AI_CLIENT_OPERATION_DURATION = 'gen_ai.client.operation.duration'; SemanticConvention.GEN_AI_CLIENT_OPERATION_TIME_TO_FIRST_CHUNK = 'gen_ai.client.operation.time_to_first_chunk'; /** OTel standard span attribute for TTFT */ SemanticConvention.GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK = 'gen_ai.response.time_to_first_chunk'; SemanticConvention.GEN_AI_CLIENT_OPERATION_TIME_PER_OUTPUT_CHUNK = 'gen_ai.client.operation.time_per_output_chunk'; SemanticConvention.GEN_AI_CLIENT_TOKEN_USAGE = 'gen_ai.client.token.usage'; SemanticConvention.GEN_AI_SERVER_REQUEST_DURATION = 'gen_ai.server.request.duration'; SemanticConvention.GEN_AI_SERVER_TBT = 'gen_ai.server.time_per_output_token'; SemanticConvention.GEN_AI_SERVER_TTFT = 'gen_ai.server.time_to_first_token'; SemanticConvention.SERVER_ADDRESS = 'server.address'; SemanticConvention.SERVER_PORT = 'server.port'; SemanticConvention.ERROR_TYPE = 'error.type'; SemanticConvention.ERROR_TYPE_UNAVAILABLE = 'unavailable'; SemanticConvention.ERROR_TYPE_AUTHENTICATION = 'authentication'; SemanticConvention.ERROR_TYPE_TIMEOUT = 'timeout'; SemanticConvention.ERROR_TYPE_RATE_LIMITED = 'rate_limited'; SemanticConvention.ERROR_TYPE_PERMISSION = 'permission'; SemanticConvention.ERROR_TYPE_NOT_FOUND = 'not_found'; SemanticConvention.ERROR_TYPE_INVALID_REQUEST = 'invalid_request'; SemanticConvention.ERROR_TYPE_SERVER_ERROR = 'server_error'; // GenAI event names (OTel) SemanticConvention.GEN_AI_USER_MESSAGE = 'gen_ai.user.message'; SemanticConvention.GEN_AI_SYSTEM_MESSAGE = 'gen_ai.system.message'; SemanticConvention.GEN_AI_ASSISTANT_MESSAGE = 'gen_ai.assistant.message'; SemanticConvention.GEN_AI_TOOL_MESSAGE = 'gen_ai.tools.message'; SemanticConvention.GEN_AI_CHOICE = 'gen_ai.choice'; SemanticConvention.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS = 'gen_ai.client.inference.operation.details'; // ----- GenAI General (OpenLIT + OTel) ----- SemanticConvention.GEN_AI_ENDPOINT = 'gen_ai.endpoint'; SemanticConvention.GEN_AI_ENVIRONMENT = 'gen_ai.environment'; SemanticConvention.GEN_AI_APPLICATION_NAME = 'gen_ai.application_name'; SemanticConvention.GEN_AI_HUB_OWNER = 'gen_ai.hub.owner'; SemanticConvention.GEN_AI_HUB_REPO = 'gen_ai.hub.repo'; SemanticConvention.GEN_AI_RETRIEVAL_SOURCE = 'gen_ai.retrieval.source'; SemanticConvention.GEN_AI_REQUESTS = 'gen_ai.total.requests'; SemanticConvention.GEN_AI_SDK_VERSION = 'gen_ai.sdk.version'; // GenAI Request (extended / OpenLIT) SemanticConvention.GEN_AI_REQUEST_IS_STREAM = 'gen_ai.request.is_stream'; /** OTel standard: gen_ai.request.stream (replaces gen_ai.request.is_stream) */ SemanticConvention.GEN_AI_REQUEST_STREAM = 'gen_ai.request.stream'; SemanticConvention.GEN_AI_REQUEST_USER = 'gen_ai.request.user'; SemanticConvention.GEN_AI_REQUEST_EMBEDDING_DIMENSION = 'gen_ai.request.embedding_dimension'; SemanticConvention.GEN_AI_REQUEST_TOOL_CHOICE = 'gen_ai.request.tool_choice'; SemanticConvention.GEN_AI_REQUEST_AUDIO_VOICE = 'gen_ai.request.audio_voice'; SemanticConvention.GEN_AI_REQUEST_AUDIO_RESPONSE_FORMAT = 'gen_ai.request.audio_response_format'; SemanticConvention.GEN_AI_REQUEST_AUDIO_SPEED = 'gen_ai.request.audio_speed'; SemanticConvention.GEN_AI_REQUEST_FINETUNE_STATUS = 'gen_ai.request.fine_tune_status'; SemanticConvention.GEN_AI_REQUEST_FINETUNE_MODEL_SUFFIX = 'gen_ai.request.fine_tune_model_suffix'; SemanticConvention.GEN_AI_REQUEST_FINETUNE_MODEL_EPOCHS = 'gen_ai.request.fine_tune_n_epochs'; SemanticConvention.GEN_AI_REQUEST_FINETUNE_MODEL_LRM = 'gen_ai.request.learning_rate_multiplier'; SemanticConvention.GEN_AI_REQUEST_FINETUNE_BATCH_SIZE = 'gen_ai.request.fine_tune_batch_size'; SemanticConvention.GEN_AI_REQUEST_VALIDATION_FILE = 'gen_ai.request.validation_file'; SemanticConvention.GEN_AI_REQUEST_TRAINING_FILE = 'gen_ai.request.training_file'; SemanticConvention.GEN_AI_REQUEST_IMAGE_SIZE = 'gen_ai.request.image_size'; SemanticConvention.GEN_AI_REQUEST_IMAGE_QUALITY = 'gen_ai.request.image_quality'; SemanticConvention.GEN_AI_REQUEST_IMAGE_STYLE = 'gen_ai.request.image_style'; SemanticConvention.GEN_AI_REQUEST_SAFE_PROMPT = 'gen_ai.request.safe_prompt'; SemanticConvention.GEN_AI_REQUEST_REASONING_EFFORT = 'gen_ai.request.reasoning_effort'; /** Legacy key for reading duration from span attributes */ SemanticConvention.GEN_AI_DURATION_LEGACY = 'gen_ai.duration'; // GenAI Usage SemanticConvention.GEN_AI_USAGE_INPUT_TOKENS = 'gen_ai.usage.input_tokens'; SemanticConvention.GEN_AI_USAGE_OUTPUT_TOKENS = 'gen_ai.usage.output_tokens'; SemanticConvention.GEN_AI_USAGE_TOTAL_TOKENS = 'gen_ai.usage.total_tokens'; SemanticConvention.GEN_AI_USAGE_COST = 'gen_ai.usage.cost'; SemanticConvention.GEN_AI_USAGE_REASONING_TOKENS = 'gen_ai.usage.reasoning_tokens'; // Enhanced token details (for prompt caching, audio tokens, etc.) SemanticConvention.GEN_AI_USAGE_COMPLETION_TOKENS_DETAILS_AUDIO = 'gen_ai.usage.completion_tokens_details.audio'; SemanticConvention.GEN_AI_USAGE_COMPLETION_TOKENS_DETAILS_REASONING = 'gen_ai.usage.completion_tokens_details.reasoning'; SemanticConvention.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_READ = 'gen_ai.usage.prompt_tokens_details.cache_read'; SemanticConvention.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_WRITE = 'gen_ai.usage.prompt_tokens_details.cache_write'; // OTel semconv standard cache token attribute names (aligned with Python SDK) SemanticConvention.GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS = 'gen_ai.usage.cache_creation.input_tokens'; SemanticConvention.GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS = 'gen_ai.usage.cache_read.input_tokens'; // GenAI Response (extended) SemanticConvention.GEN_AI_RESPONSE_IMAGE = 'gen_ai.response.image'; SemanticConvention.GEN_AI_RESPONSE_IMAGE_SIZE = 'gen_ai.request.image_size'; SemanticConvention.GEN_AI_RESPONSE_IMAGE_QUALITY = 'gen_ai.request.image_quality'; SemanticConvention.GEN_AI_RESPONSE_IMAGE_STYLE = 'gen_ai.request.image_style'; // OpenAI-specific attributes (openai.* namespace per OTel semconv) SemanticConvention.OPENAI_REQUEST_SERVICE_TIER = 'openai.request.service_tier'; SemanticConvention.OPENAI_RESPONSE_SERVICE_TIER = 'openai.response.service_tier'; SemanticConvention.OPENAI_RESPONSE_SYSTEM_FINGERPRINT = 'openai.response.system_fingerprint'; SemanticConvention.OPENAI_API_TYPE = 'openai.api.type'; /** @deprecated Use OPENAI_RESPONSE_SYSTEM_FINGERPRINT for OpenAI */ SemanticConvention.GEN_AI_RESPONSE_SYSTEM_FINGERPRINT = 'gen_ai.response.system_fingerprint'; // GenAI Content SemanticConvention.GEN_AI_CONTENT_PROMPT_EVENT = 'gen_ai.content.prompt'; SemanticConvention.GEN_AI_CONTENT_COMPLETION_EVENT = 'gen_ai.content.completion'; SemanticConvention.GEN_AI_CONTENT_REVISED_PROMPT = 'gen_ai.content.revised_prompt'; SemanticConvention.GEN_AI_CONTENT_REASONING = 'gen_ai.content.reasoning'; // Tool attributes (legacy: gen_ai.tool.call.type; OTel: gen_ai.tool.type) SemanticConvention.GEN_AI_TOOL_NAME = 'gen_ai.tool.name'; SemanticConvention.GEN_AI_TOOL_TYPE = 'gen_ai.tool.call.type'; /** OTel standard */ SemanticConvention.GEN_AI_TOOL_TYPE_OTEL = 'gen_ai.tool.type'; SemanticConvention.GEN_AI_TOOL_DESCRIPTION = 'gen_ai.tool.description'; SemanticConvention.GEN_AI_TOOL_DEFINITION = 'gen_ai.tool.definition'; SemanticConvention.GEN_AI_TOOL_CALL_ID = 'gen_ai.tool.call.id'; SemanticConvention.GEN_AI_TOOL_CALL_ARGUMENTS = 'gen_ai.tool.call.arguments'; SemanticConvention.GEN_AI_TOOL_CALL_RESULT = 'gen_ai.tool.call.result'; SemanticConvention.GEN_AI_TOOL_INPUT = 'gen_ai.tool.input'; SemanticConvention.GEN_AI_TOOL_OUTPUT = 'gen_ai.tool.output'; SemanticConvention.GEN_AI_TOOL_ARGS = 'gen_ai.tool.args'; // Retrieval (framework / RAG) SemanticConvention.GEN_AI_RETRIEVAL_QUERY = 'gen_ai.retrieval.query'; SemanticConvention.GEN_AI_RETRIEVAL_QUERY_TEXT = 'gen_ai.retrieval.query.text'; SemanticConvention.GEN_AI_RETRIEVAL_DOCUMENTS = 'gen_ai.retrieval.documents'; SemanticConvention.GEN_AI_RETRIEVAL_DOCUMENT_COUNT = 'gen_ai.retrieval.document_count'; SemanticConvention.GEN_AI_DATA_SOURCE_ID = 'gen_ai.data_source.id'; // Agent (OTel Semconv) SemanticConvention.GEN_AI_AGENT_NAME = 'gen_ai.agent.name'; SemanticConvention.GEN_AI_AGENT_ID = 'gen_ai.agent.id'; SemanticConvention.GEN_AI_AGENT_DESCRIPTION = 'gen_ai.agent.description'; SemanticConvention.GEN_AI_AGENT_VERSION = 'gen_ai.agent.version'; SemanticConvention.GEN_AI_AGENT_SOURCE = 'gen_ai.agent.source'; SemanticConvention.GEN_AI_AGENT_ACTION_TOOL = 'gen_ai.agent.action.tool'; SemanticConvention.GEN_AI_AGENT_ACTION_TOOL_INPUT = 'gen_ai.agent.action.tool_input'; SemanticConvention.GEN_AI_AGENT_ACTION_LOG = 'gen_ai.agent.action.log'; SemanticConvention.GEN_AI_AGENT_FINISH_OUTPUT = 'gen_ai.agent.finish.output'; SemanticConvention.GEN_AI_AGENT_FINISH_LOG = 'gen_ai.agent.finish.log'; // Workflow / framework SemanticConvention.GEN_AI_WORKFLOW_INPUT = 'gen_ai.workflow.input'; SemanticConvention.GEN_AI_WORKFLOW_OUTPUT = 'gen_ai.workflow.output'; SemanticConvention.GEN_AI_WORKFLOW_TYPE = 'gen_ai.workflow.type'; SemanticConvention.GEN_AI_WORKFLOW_NAME = 'gen_ai.workflow.name'; SemanticConvention.GEN_AI_FRAMEWORK_ERROR_CLASS = 'gen_ai.framework.error.class'; SemanticConvention.GEN_AI_FRAMEWORK_ERROR_TYPE = 'gen_ai.framework.error.type'; SemanticConvention.GEN_AI_FRAMEWORK_ERROR_MESSAGE = 'gen_ai.framework.error.message'; SemanticConvention.GEN_AI_SERIALIZED_NAME = 'gen_ai.serialized.name'; SemanticConvention.GEN_AI_SERIALIZED_SIGNATURE = 'gen_ai.serialized.signature'; SemanticConvention.GEN_AI_SERIALIZED_DOC = 'gen_ai.serialized.doc'; SemanticConvention.GEN_AI_SERIALIZED_MODULE = 'gen_ai.serialized.module'; SemanticConvention.GEN_AI_REQUEST_PROVIDER = 'gen_ai.request.provider'; SemanticConvention.GEN_AI_DATA_SOURCES = 'gen_ai.data_source_count'; SemanticConvention.GEN_AI_OPERATION_TYPE_TEXT_COMPLETION = 'text_completion'; SemanticConvention.GEN_AI_OPERATION_TYPE_CHAT = 'chat'; SemanticConvention.GEN_AI_OPERATION_TYPE_EMBEDDING = 'embeddings'; SemanticConvention.GEN_AI_OPERATION_TYPE_IMAGE = 'image'; SemanticConvention.GEN_AI_OPERATION_TYPE_AUDIO = 'audio'; SemanticConvention.GEN_AI_OPERATION_TYPE_FINETUNING = 'fine_tuning'; SemanticConvention.GEN_AI_OPERATION_TYPE_VECTORDB = 'vectordb'; SemanticConvention.GEN_AI_OPERATION_TYPE_FRAMEWORK = 'invoke_workflow'; SemanticConvention.GEN_AI_OPERATION_TYPE_AGENT = 'invoke_agent'; SemanticConvention.GEN_AI_OPERATION_TYPE_TOOLS = 'execute_tool'; SemanticConvention.GEN_AI_OPERATION_TYPE_RETRIEVE = 'retrieval'; // GenAI Output Types SemanticConvention.GEN_AI_OUTPUT_TYPE_TEXT = 'text'; SemanticConvention.GEN_AI_OUTPUT_TYPE_JSON = 'json'; SemanticConvention.GEN_AI_OUTPUT_TYPE_IMAGE = 'image'; SemanticConvention.GEN_AI_OUTPUT_TYPE_SPEECH = 'speech'; SemanticConvention.GEN_AI_SYSTEM_HUGGING_FACE = 'huggingface'; SemanticConvention.GEN_AI_SYSTEM_REPLICATE = 'replicate'; SemanticConvention.GEN_AI_SYSTEM_OPENAI = 'openai'; SemanticConvention.GEN_AI_SYSTEM_AZURE_OPENAI = 'azure.ai.openai'; SemanticConvention.GEN_AI_SYSTEM_ANTHROPIC = 'anthropic'; SemanticConvention.GEN_AI_SYSTEM_COHERE = 'cohere'; SemanticConvention.GEN_AI_SYSTEM_MISTRAL = 'mistral_ai'; SemanticConvention.GEN_AI_SYSTEM_AWS_BEDROCK = 'aws.bedrock'; SemanticConvention.GEN_AI_SYSTEM_VERTEXAI = 'vertex_ai'; SemanticConvention.GEN_AI_SYSTEM_LANGCHAIN = 'langchain'; SemanticConvention.GEN_AI_SYSTEM_VERCEL_AI = 'vercel_ai'; SemanticConvention.GEN_AI_SYSTEM_OLLAMA = 'ollama'; SemanticConvention.GEN_AI_SYSTEM_GOOGLE_AI_STUDIO = 'gcp.gemini'; SemanticConvention.GEN_AI_SYSTEM_GROQ = 'groq'; SemanticConvention.GEN_AI_SYSTEM_AZURE_AI_INFERENCE = 'azure.ai.inference'; SemanticConvention.GEN_AI_SYSTEM_LLAMAINDEX = 'llamaindex'; SemanticConvention.GEN_AI_SYSTEM_TOGETHER = 'together'; SemanticConvention.GEN_AI_SYSTEM_LANGGRAPH = 'langgraph'; SemanticConvention.GEN_AI_SYSTEM_OPENAI_AGENTS = 'openai_agents'; SemanticConvention.GEN_AI_SYSTEM_MASTRA = 'mastra'; SemanticConvention.GEN_AI_SYSTEM_CLAUDE_AGENT_SDK = 'claude_agent_sdk'; SemanticConvention.GEN_AI_SYSTEM_GOOGLE_ADK = 'google_adk'; SemanticConvention.GEN_AI_SYSTEM_STRANDS = 'strands_agents'; SemanticConvention.GEN_AI_SYSTEM_CURSOR = 'cursor'; SemanticConvention.GEN_AI_OPERATION_TYPE_CREATE_AGENT = 'create_agent'; // Graph attributes (LangGraph) SemanticConvention.GEN_AI_GRAPH_NODES = 'gen_ai.graph.nodes'; SemanticConvention.GEN_AI_GRAPH_NODE_COUNT = 'gen_ai.graph.node_count'; SemanticConvention.GEN_AI_GRAPH_EDGES = 'gen_ai.graph.edges'; SemanticConvention.GEN_AI_GRAPH_EDGE_COUNT = 'gen_ai.graph.edge_count'; SemanticConvention.GEN_AI_GRAPH_EXECUTED_NODES = 'gen_ai.graph.executed_nodes'; SemanticConvention.GEN_AI_GRAPH_STATUS = 'gen_ai.graph.status'; SemanticConvention.GEN_AI_GRAPH_MESSAGE_COUNT = 'gen_ai.graph.message_count'; SemanticConvention.GEN_AI_GRAPH_TOTAL_CHUNKS = 'gen_ai.graph.total_chunks'; // Execution attributes (LangGraph) SemanticConvention.GEN_AI_EXECUTION_MODE = 'gen_ai.execution.mode'; SemanticConvention.GEN_AI_CHECKPOINT_ID = 'gen_ai.checkpoint.id'; // Vector DB SemanticConvention.DB_REQUESTS = 'db.total.requests'; SemanticConvention.DB_SYSTEM = 'db.system'; SemanticConvention.DB_SYSTEM_NAME = 'db.system.name'; SemanticConvention.DB_SYSTEM_CHROMA = 'chroma'; SemanticConvention.DB_SYSTEM_PINECONE = 'pinecone'; SemanticConvention.DB_SYSTEM_QDRANT = 'qdrant'; SemanticConvention.DB_SYSTEM_MILVUS = 'milvus'; SemanticConvention.DB_COLLECTION_NAME = 'db.collection.name'; SemanticConvention.DB_OPERATION = 'db.operation'; SemanticConvention.DB_OPERATION_NAME = 'db.operation.name'; SemanticConvention.DB_OPERATION_CREATE_INDEX = 'create_index'; SemanticConvention.DB_OPERATION_INSERT = 'INSERT'; SemanticConvention.DB_OPERATION_QUERY = 'QUERY'; SemanticConvention.DB_OPERATION_DELETE = 'DELETE'; SemanticConvention.DB_OPERATION_UPDATE = 'UPDATE'; SemanticConvention.DB_OPERATION_UPSERT = 'UPSERT'; SemanticConvention.DB_OPERATION_GET = 'GET'; SemanticConvention.DB_OPERATION_ADD = 'ADD'; SemanticConvention.DB_OPERATION_PEEK = 'PEEK'; SemanticConvention.DB_OPERATION_SEARCH = 'SEARCH'; SemanticConvention.DB_OPERATION_FETCH = 'FETCH'; SemanticConvention.DB_ID_COUNT = 'db.ids_count'; SemanticConvention.DB_VECTOR_COUNT = 'db.vector.count'; SemanticConvention.DB_METADATA_COUNT = 'db.metadatas_count'; SemanticConvention.DB_DOCUMENTS_COUNT = 'db.documents_count'; SemanticConvention.DB_QUERY_LIMIT = 'db.limit'; SemanticConvention.DB_VECTOR_QUERY_TOP_K = 'db.vector.query.top_k'; SemanticConvention.DB_OFFSET = 'db.offset'; SemanticConvention.DB_WHERE_DOCUMENT = 'db.where_document'; SemanticConvention.DB_FILTER = 'db.filter'; SemanticConvention.DB_QUERY_TEXT = 'db.query.text'; SemanticConvention.DB_QUERY_SUMMARY = 'db.query.summary'; SemanticConvention.DB_STATEMENT = 'db.statement'; SemanticConvention.DB_N_RESULTS = 'db.n_results'; SemanticConvention.DB_RESPONSE_RETURNED_ROWS = 'db.response.returned_rows'; SemanticConvention.DB_DELETE_ALL = 'db.delete_all'; SemanticConvention.DB_INDEX_NAME = 'db.create_index.name'; SemanticConvention.DB_INDEX_DIMENSION = 'db.create_index.dimensions'; SemanticConvention.DB_INDEX_METRIC = 'db.create_index.metric'; SemanticConvention.DB_INDEX_SPEC = 'db.create_index.spec'; SemanticConvention.DB_NAMESPACE = 'db.query.namespace'; SemanticConvention.DB_UPDATE_METADATA = 'db.update.metadata'; SemanticConvention.DB_UPDATE_VALUES = 'db.update.values'; SemanticConvention.DB_UPDATE_ID = 'db.update.id'; SemanticConvention.DB_CLIENT_OPERATION_DURATION = 'db.client.operation.duration'; // Vector DB extras (aligned with Python SDK / OTel) SemanticConvention.DB_QUERY_PARAMETER = 'db.query.parameter'; SemanticConvention.DB_SDK_VERSION = 'db.sdk.version'; SemanticConvention.DB_OPERATION_ID = 'db.operation.id'; SemanticConvention.DB_OPERATION_STATUS = 'db.operation.status'; SemanticConvention.DB_OPERATION_COST = 'db.operation.cost'; SemanticConvention.DB_INDEX_NAME_ALT = 'db.index.name'; SemanticConvention.DB_COLLECTION_DIMENSION = 'db.collection.dimension'; SemanticConvention.DB_VECTOR_QUERY_FILTER = 'db.vector.query.filter'; SemanticConvention.DB_DELETE_ID = 'db.delete.id'; SemanticConvention.DB_METADATA = 'db.metadata'; SemanticConvention.DB_PAYLOAD_COUNT = 'db.payload_count'; SemanticConvention.DB_WITH_PAYLOAD = 'db.with_payload'; SemanticConvention.DB_OUTPUT_FIELDS = 'db.output_fields'; exports.default = SemanticConvention; //# sourceMappingURL=semantic-convention.js.map