Curso OpenTelemetry Integrado com Jaeger Prometheus Grafana e ELK
24 horasVisão Geral
Curso OpenTelemetry Integrado com Jaeger Prometheus Grafana e ELK: Este curso intensivo de 24 horas oferece uma jornada completa no universo da observabilidade moderna, capacitando os participantes a implementar e gerenciar uma solução robusta utilizando OpenTelemetry como o padrão unificador para coleta de telemetria. O foco principal será na integração prática do OpenTelemetry com as ferramentas de ponta da indústria para cada pilar da observabilidade: Jaeger para traces distribuídos, Prometheus e Grafana para métricas, e a ELK Stack (Elasticsearch, Logstash, Kibana) para logs estruturados. Os alunos aprenderão desde os fundamentos do OpenTelemetry e de cada ferramenta até a instrumentação de aplicações, a configuração do OpenTelemetry Collector e a criação de dashboards e alertas unificados, garantindo uma visão holística e profunda do comportamento de sistemas distribuídos, crucial para depuração, otimização e resiliência em ambientes de produção.
Objetivo
Após realizar este curso OpenTelemetry Integrado: Observabilidade Completa com Jaeger Prometheus Grafana e ELK, você será capaz de:
- Compreender profundamente os conceitos de observabilidade e a importância do OpenTelemetry como padrão.
- Instrumentar aplicações em diferentes linguagens para coletar traces, métricas e logs utilizando OpenTelemetry SDKs.
- Configurar e utilizar o OpenTelemetry Collector para processar, filtrar e rotear dados de telemetria.
- Integrar e visualizar traces distribuídos em Jaeger para análise de fluxo de requisições e latências.
- Coletar e analisar métricas de performance com Prometheus e criar dashboards significativos no Grafana.
- Estruturar, coletar e visualizar logs com a ELK Stack (Elasticsearch, Logstash, Kibana).
- Correlacionar traces, métricas e logs em um fluxo de trabalho unificado para diagnóstico e resolução de problemas.
- Aplicar as melhores práticas de instrumentação e coleta de telemetria para ambientes de produção.
- Otimizar a observabilidade de sistemas distribuídos para melhorar a depuração, a performance e a resiliência.
Publico Alvo
- Desenvolvedores de Software (Back-end, Full-stack)
- Arquitetos de Sistemas
- Engenheiros de DevOps
- Engenheiros de Confiabilidade de Sites (SREs)
- Administradores de Sistemas
- Profissionais interessados em implementar e gerenciar soluções de monitoramento e observabilidade.
Pre-Requisitos
- Conhecimento básico em desenvolvimento de software em pelo menos uma linguagem de programação (Java, Python, Node.js, .NET, Go, etc.).
- Familiaridade com conceitos de sistemas distribuídos (APIs REST, comunicação entre serviços).
- Noções básicas de linha de comando e Docker.
- (Opcional, mas útil) Noções de Linux e redes.
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Módulo I: Fundamentos da Observabilidade e OpenTelemetry (4 horas)
- 1.1 Introdução à Observabilidade (1h)
- Definição e importância da Observabilidade em sistemas distribuídos.
- Os três pilares da Observabilidade: Traces, Métricas e Logs.
- Diferença entre Monitoramento e Observabilidade.
- Desafios de visibilidade em arquiteturas de microsserviços.
- 1.2 OpenTelemetry: O Padrão Unificador (2h)
- O que é OpenTelemetry (OTel)? Histórico, motivação e comunidade (CNCF).
- Arquitetura do OpenTelemetry: APIs, SDKs, Collector.
- Conceitos-chave:
TracerProvider
,Tracer
,Span
,Context
,Attributes
,Resources
,MeterProvider
,Meter
,Counter
,Gauge
,Histogram
,LoggerProvider
,LogRecord
. - O Protocolo OpenTelemetry (OTLP): Formatos e transporte.
- 1.3 Configurando o Ambiente de Laboratório (1h)
- Setup de um ambiente Docker Compose para os backends: Jaeger, Prometheus, Grafana e ELK Stack (Elasticsearch, Logstash, Kibana).
- Primeira execução de uma aplicação simples instrumentada para validar a comunicação com o Collector e os backends.
Módulo II: Instrumentação de Traces Distribuídos com OpenTelemetry e Jaeger (6 horas)
- 2.1 Traces e Spans em Detalhe (1h)
- Anatomia de um Trace e um Span: Hierarquia e relações Parent-Child, Links.
- Tipos de Spans (
SpanKind
): Client, Server, Consumer, Producer, Internal. - Propagação de Contexto (Context Propagation): W3C Trace Context e B3 Propagation.
- Injeção e extração de contexto em diferentes protocolos (HTTP, gRPC, Kafka).
- 2.2 Instrumentação Manual e Automática de Traces (3h)
- 2.2.1 Instrumentação Manual: Como usar as APIs dos SDKs OpenTelemetry para criar e gerenciar spans explicitamente em linguagens como Java, Python, Node.js e .NET. Adição de atributos e eventos a spans.
- 2.2.2 Instrumentação Automática: Configuração e uso de auto-instrumentação (agentes e pacotes de instrumentação) para frameworks e bibliotecas populares (e.g., Spring Boot, Express, Flask, gRPC, JDBC).
- Comparação e escolha entre instrumentação manual e automática.
- 2.3 Exportando Traces para Jaeger (1h)
- Configuração do exportador OTLP nos SDKs OpenTelemetry para enviar traces ao OpenTelemetry Collector.
- Configuração do OpenTelemetry Collector para receber traces via OTLP e exportá-los para o Jaeger.
- Entendendo o modelo de dados do Jaeger e a compatibilidade com OpenTelemetry.
- 2.4 Análise de Traces no Jaeger (1h)
- Navegação na interface do usuário do Jaeger: Busca de traces, filtros, visualização de gráficos de chama (flame graphs) e diagramas de dependência.
- Identificação de gargalos de performance, erros e latências em chamadas de serviço.
- Uso de atributos de spans para depuração e análise detalhada.
Módulo III: Coleta de Métricas com OpenTelemetry e Prometheus/Grafana (5 horas)
- 3.1 Conceitos e Tipos de Métricas no OpenTelemetry (1h)
- Revisão dos tipos de métricas:
Counter
,Gauge
(ObservableGauge),Histogram
. - Dimensionalidade de Métricas (Attributes/Labels): Como adicionar contexto às métricas.
- Agregação de métricas no SDK e no Collector.
- Revisão dos tipos de métricas:
- 3.2 Instrumentação Manual e Automática de Métricas (2h)
- 2.2.1 Instrumentação Manual: Criação de métricas customizadas de negócio (e.g., contagem de usuários, latência de operações específicas) usando as APIs de métricas do OpenTelemetry SDK.
- 2.2.2 Instrumentação Automática: Coleta de métricas de runtime (JVM, CLR, Python GIL, Node.js Event Loop) e métricas de sistema básicas.
- Instrumentação de frameworks que expõem métricas (e.g., Spring Boot Actuator).
- 3.3 Exportando Métricas para Prometheus via OpenTelemetry Collector (1h)
- Configuração do exportador OTLP nos SDKs para enviar métricas ao Collector.
- Configuração do OpenTelemetry Collector para receber métricas via OTLP e exportá-las no formato Prometheus.
- Configuração do Prometheus para fazer
scrape
de métricas do OpenTelemetry Collector.
- 3.4 Visualização e Alerta de Métricas no Grafana (1h)
- Integração do Grafana com o Prometheus como fonte de dados.
- Criação de dashboards detalhados no Grafana usando PromQL para visualizar métricas de aplicação e infraestrutura.
- Configuração de alertas baseados em limiares de métricas.
Módulo IV: Logs Estruturados com OpenTelemetry e ELK Stack (4 horas)
- 4.1 O Papel dos Logs na Observabilidade e Correlação (1h)
- Logs como dados de telemetria cruciais.
- A importância dos logs estruturados (JSON) para ingestão e análise.
- Correlação de logs com traces (Trace ID e Span ID) para um contexto completo.
- 4.2 Integração de Bibliotecas de Logging com OpenTelemetry (1.5h)
- Como adaptar bibliotecas de logging populares (Logback/Log4j2 em Java, Serilog/NLog em .NET,
logging
em Python, Pino/Winston em Node.js) para integrar com o OpenTelemetry. - Injeção automática ou manual de Trace ID e Span ID nos logs.
- Configuração dos SDKs OpenTelemetry para emitir
LogRecords
via OTLP.
- Como adaptar bibliotecas de logging populares (Logback/Log4j2 em Java, Serilog/NLog em .NET,
- 4.3 Coleta e Processamento de Logs com OpenTelemetry Collector e Logstash (1h)
- Configuração do OpenTelemetry Collector para receber logs via OTLP.
- Envio de logs do Collector para o Logstash.
- Configuração do Logstash para receber logs (e.g., via Beats input ou diretamente do Collector), processá-los (parsing, enriquecimento) e enviá-los ao Elasticsearch.
- Alternativa: Envio direto do Collector para Elasticsearch.
- 4.4 Análise e Visualização de Logs no Kibana (0.5h)
- Navegação na interface do Kibana: Discover, Dashboards, Visualizações.
- Realização de buscas complexas e filtros em logs.
- Criação de dashboards e visualizações para logs de aplicação.
- Correlação de logs com traces (visualizando Trace ID/Span ID no Kibana e buscando no Jaeger).
Módulo V: OpenTelemetry Collector Avançado e Unificação da Observabilidade (5 horas)
- 5.1 OpenTelemetry Collector: Configuração Avançada (2h)
- Revisão dos componentes do Collector: Receivers, Processors, Exporters.
- Processadores avançados:
batch
,memory_limiter
,resource
,spanmetrics
,attributes
,filter
,transform
. - Criação de pipelines complexos para traces, métricas e logs.
- Roteamento de telemetria para múltiplos backends com base em regras.
- Uso de
host_metrics
eprocess_metrics
receivers para coletar dados da infraestrutura.
- 5.2 Estratégias de Amostragem (Sampling) para Traces (1h)
- Tipos de amostragem no SDK (client-side):
AlwaysOn
,AlwaysOff
,TraceIdRatioBased
,ParentBased
. - Amostragem no Collector (server-side):
tail_sampling_processor
,probabilistic_sampler
. - Impacto da amostragem no volume de dados, custo e visibilidade.
- Escolhendo a estratégia de amostragem adequada para diferentes cenários.
- Tipos de amostragem no SDK (client-side):
- 5.3 Correlação Cruzada e Dashboards Unificados no Grafana (1.5h)
- Configuração do Grafana para utilizar múltiplas fontes de dados (Prometheus, Loki, Elasticsearch, Jaeger/Tempo).
- Construção de dashboards que combinam traces, métricas e logs na mesma visualização para depuração rápida.
- Utilização de variáveis e templates no Grafana para explorar dados de diferentes serviços ou ambientes.
- Criação de alertas correlacionados que acionam com base em dados de múltiplos pilares.
- 5.4 Melhores Práticas e Gerenciamento em Produção (0.5h)
- Dimensionamento do OpenTelemetry Collector e dos backends para ambientes de produção.
- Considerações de segurança: Autenticação, autorização e criptografia de dados de telemetria.
- Gerenciamento de custos de armazenamento e processamento.
- Automação da implantação da observabilidade em pipelines CI/CD.
- Estratégias de troubleshooting para o pipeline de observabilidade.