Sobre o projeto
OpenTelemetry JavaScript é a implementação em JavaScript do OpenTelemetry, um framework neutro de fornecedor para coletar traces, métricas e logs de aplicações. Ele tem como alvo Node.js e navegadores web e é publicado como um conjunto de pacotes npm sob o escopo @opentelemetry.
O projeto separa as preocupações em uma camada de API e implementações de SDK. O pacote de API fornece interfaces TypeScript, enums e implementações no-op para o modelo central de trace e métricas, permitindo que autores de bibliotecas dependam apenas da API pública sem puxar um SDK específico. O pacote core fornece implementações padrão e no-op. No lado do SDK, sdk-trace oferece controle sobre instrumentação e criação de spans sem carregar async_hooks ou instrumentação por padrão, enquanto sdk-metrics fornece instruments e meters para relatar dados de séries temporais.
Para começar, normalmente é necessário instalar @opentelemetry/api, @opentelemetry/sdk-node e o pacote meta auto-instrumentations-node, e então criar um arquivo de configuração de tracing que configura um NodeSDK com um recurso, um exporter como ConsoleSpanExporter e auto-instrumentações. A aplicação é então iniciada com o arquivo de tracing pré-carregado. Um logger de diagnóstico pode ser habilitado através da API para depurar casos onde a telemetria não está chegando a um coletor.
O status dos recursos é documentado por sinal: tracing e métricas são estáveis tanto na API quanto no SDK, enquanto logs ainda estão em desenvolvimento. O README também publica uma matriz de compatibilidade pareando versões estáveis de pacotes com versões experimentais, e observa que pacotes estáveis compartilham uma linha de versão enquanto pacotes experimentais compartilham outra. Os runtimes suportados incluem as versões LTS atuais do Node.js, com instrumentação de navegador descrita como experimental e amplamente não especificada; a linha de base mínima de recursos de linguagem é ECMAScript 2022. O suporte a TypeScript segue uma janela de suporte de dois anos.
Os exporters são agnósticos de fornecedor, e um registro lista as implementações de exporter disponíveis, enquanto os usuários também podem escrever os seus próprios. O tracing automático está disponível através de instrumentações, com instrumentações centrais do Node para gRPC e HTTP, instrumentações centrais da web para XMLHttpRequest e fetch, e instrumentações contrib adicionais hospedadas em um repositório separado. O projeto é licenciado sob Apache-2.0 e aceita contribuições através das tags up-for-grabs e good-first-issue, com uma reunião semanal do SIG.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.