Sobre el proyecto

OpenTelemetry JavaScript es la implementación en JavaScript de OpenTelemetry, un framework neutral respecto al proveedor para recopilar trazas, métricas y logs de aplicaciones. Está dirigido a Node.js y navegadores web y se publica como un conjunto de paquetes npm bajo el ámbito @opentelemetry. El proyecto separa responsabilidades en una capa de API y implementaciones de SDK. El paquete de API proporciona interfaces de TypeScript, enumeraciones e implementaciones no-op para el modelo central de trazas y métricas, de modo que los autores de bibliotecas pueden depender solo de la API pública sin incorporar un SDK específico. El paquete core proporciona implementaciones predeterminadas y no-op. Del lado del SDK, sdk-trace ofrece control sobre la instrumentación y la creación de spans sin cargar async_hooks ni instrumentación de forma predeterminada, mientras que sdk-metrics proporciona instrumentos y medidores para informar datos de series temporales. Para empezar, normalmente se instalan @opentelemetry/api, @opentelemetry/sdk-node y el metapaquete auto-instrumentations-node, y luego se crea un archivo de configuración de tracing que configura un NodeSDK con un recurso, un exportador como ConsoleSpanExporter y auto-instrumentaciones. Después, la aplicación se inicia con el archivo de tracing precargado. Se puede habilitar un logger de diagnósticos a través de la API para depurar casos en los que la telemetría no llega a un collector. El estado de las características se documenta por señal: tracing y metrics son estables tanto en la API como en el SDK, mientras que logs aún está en desarrollo. El README también publica una matriz de compatibilidad que empareja versiones estables de paquetes con versiones experimentales, y señala que los paquetes estables comparten una línea de versión mientras que los experimentales comparten otra. Los runtimes compatibles incluyen las versiones LTS actuales de Node.js, con la instrumentación de navegador descrita como experimental y en gran medida no especificada; la base mínima de características del lenguaje es ECMAScript 2022. El soporte de TypeScript sigue una ventana de soporte de dos años. Los exportadores son agnósticos respecto al proveedor, y un registro enumera las implementaciones de exportadores disponibles, aunque los usuarios también pueden escribir los suyos propios. El tracing automático está disponible mediante instrumentaciones, con instrumentaciones core de Node para gRPC y HTTP, instrumentaciones core web para XMLHttpRequest y fetch, y instrumentaciones contrib adicionales alojadas en un repositorio separado. El proyecto tiene licencia Apache-2.0 y acepta contribuciones mediante etiquetas up-for-grabs y good-first-issue, con una reunión semanal del SIG.