Sobre o projeto
O Jaeger é uma plataforma open-source de distributed tracing originalmente criada na Uber e hospedada pela Cloud Native Computing Foundation, onde se tornou o sétimo projeto top-level graduado em outubro de 2019. Possui licença Apache 2.0.
O que faz
- Coleta dados de trace de aplicativos instrumentados, recebendo spans por OTLP via gRPC (porta padrão 4317) e HTTP (porta 4318).
- Armazena traces em um backend de armazenamento pluggável por meio de uma interface de plugin de armazenamento.
- Fornece um serviço de query e uma interface web para busca e inspeção de traces; a UI pode ser executada separadamente do componente de query.
Arquitetura conforme descrito
- SDKs do OpenTelemetry em aplicações de usuário enviam spans por HTTP ou gRPC para o Jaeger Collector.
- O Collector grava no armazenamento diretamente ou por meio de um plugin de armazenamento gRPC; também pode retornar respostas de sampling ao SDK.
- O serviço Query lê do armazenamento, opcionalmente por meio da mesma interface de plugin, e serve a UI sobre HTTP.
- A versão 2 da plataforma é construída a partir de componentes do OpenTelemetry Collector, e o projeto afirma manter compatibilidade de configuração entre versões.
Início rápido
Um único comando Docker executa uma imagem all-in-one contendo a UI, collector, serviço de query e armazenamento em memória, expondo a UI na porta 16686 e OTLP nas portas 4317/4318. O README aponta para um guia de getting-started para implantações em produção e opções adicionais.
Backends de armazenamento suportados e políticas
O README documenta uma política de suporte para versões de backend, vinculando a cobertura do Jaeger ao próprio ciclo de vida de cada backend: Elasticsearch (política de EOL da Elastic), OpenSearch (sua política de lançamento e manutenção), Cassandra (linhas de release mantidas pela Apache) e ClickHouse (versões LTS atuais e anteriores). Suporte significa que uma versão está no escopo para correções proativas de compatibilidade; o CI pode testar apenas um subconjunto das versões suportadas, e a presença no CI não estende a política por si só. O projeto não oferece suporte aos próprios produtos de backend ou distribuições de fornecedores, e o troubleshooting pode exigir que os usuários façam upgrade primeiro.
Garantias de compatibilidade
- Opções de configuração podem ser descontinuadas com um período de graça declarado de pelo menos três meses ou duas versões menores, o que ocorrer por último, antes da remoção.
- O suporte a Go acompanha as versões suportadas pela equipe do Go; o suporte para uma versão menor mais antiga é removido após o lançamento de uma nova versão menor e não é tratado como breaking change. Código importável foi movido para pacotes internos.
Comunidade, governança e segurança
O projeto possui governança aberta e é desenvolvido publicamente, com contribuidores creditados da comunidade mais ampla. Os maintainers estão listados no repositório e podem ser mencionados coletivamente em issues e pull requests. Reuniões semanais em vídeo estão abertas tanto a usuários finais quanto a contribuidores. Repositórios relacionados incluem a UI, o modelo de dados/IDL e a fonte da documentação. Auditorias de segurança de terceiros são publicadas em um repositório jaegertracing separado, e badges no README apontam para OpenSSF Scorecard, OpenSSF Best Practices e status CLOMonitor. O README também lista adopters e patrocinadores do projeto.
Para quem é
Times que operam sistemas baseados em microsserviços ou outros sistemas distribuídos que precisam rastrear fluxos de requisição através de fronteiras de serviço, seja em produção ou durante troubleshooting em desenvolvimento. Como a instrumentação provém dos SDKs do OpenTelemetry, os usuários podem adotar tracing sem depender de um único backend de fornecedor, podendo escolher um sistema de armazenamento que corresponda ao seu ambiente operacional existente.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.