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 Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Data Governance Engineering

24 horas

Curso ISO/IEC 20000-1 Certification Service Management

24 horas

Curso Automotive Cloud and Connected Vehicle Security

24 horas

Curso FinOps for AI Practitioners

16 horas