Curso OpenTelemetry Integrado com Jaeger Prometheus Grafana e ELK

  • DevOps | CI | CD | Kubernetes | Web3

Curso OpenTelemetry Integrado com Jaeger Prometheus Grafana e ELK

24 horas
Visã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ático
Conteú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.
  • 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.
  • 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 e process_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.
  • 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.
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h