Curso OpenTelemetry Fundamentals

  • DevOps | CI | CD | Kubernetes | Web3

Curso OpenTelemetry Fundamentals

24 horas
Visão Geral

Este curso intensivo de 24 horas é a porta de entrada para o mundo da observabilidade de software, focado em capacitar profissionais a compreender e aplicar os conceitos fundamentais do OpenTelemetry. Desenvolvido para quem está começando ou precisa de uma base sólida, o curso desmistifica a coleta de telemetria (traces, métricas e logs) em sistemas distribuídos. Os participantes aprenderão a arquitetura do OpenTelemetry, a instrumentar aplicações de exemplo em linguagens populares, a configurar o OpenTelemetry Collector para coletar e rotear dados e a visualizar essa telemetria em backends abertos. O objetivo é fornecer uma base robusta para que os alunos possam iniciar sua jornada na construção de sistemas mais transparentes, compreensíveis e fáceis de depurar, independentemente da complexidade da arquitetura.

Objetivo

Após realizar este curso OpenTelemetry Fundamentals: Os Pilares da Observabilidade Moderna, você será capaz de:

  • Compreender os conceitos básicos de observabilidade e a importância de traces, métricas e logs.
  • Entender a arquitetura e os componentes essenciais do OpenTelemetry.
  • Instrumentar aplicações em linguagens populares para gerar traces distribuídos.
  • Criar e entender o uso de métricas (contadores, medidores, histogramas) com OpenTelemetry.
  • Integrar sistemas de logging existentes e correlacionar logs com traces.
  • Configurar e operar o OpenTelemetry Collector para coleta, processamento e exportação de telemetria.
  • Visualizar e analisar dados de traces em Jaeger.
  • Visualizar e analisar métricas em Prometheus e Grafana.
  • Compreender o fluxo de dados de observabilidade do início ao fim em um ambiente simulado.
  • Aplicar os princípios fundamentais de instrumentação em seus próprios projetos.
Publico Alvo
  • Desenvolvedores de Software (Back-end, Full-stack, Mobile) que estão começando a trabalhar com sistemas distribuídos.
  • Engenheiros de DevOps e SREs em início de carreira ou que precisam reforçar os fundamentos de observabilidade.
  • Estudantes de Ciência da Computação e Engenharia de Software.
  • Arquitetos de Software que buscam entender os princípios de instrumentação.
  • Profissionais de TI que desejam compreender o papel do OpenTelemetry no cenário atual de observabilidade.
Pre-Requisitos
  • Conhecimento básico em lógica de programação e desenvolvimento de software em pelo menos uma linguagem (preferencialmente Java, Python, Node.js ou C#).
  • Noções básicas de linha de comando.
  • Familiaridade com o conceito de APIs (Application Programming Interfaces).
  • (Opcional, mas útil) Noções básicas de Docker.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Módulo I: Introdução à Observabilidade e seus Pilares (4 horas)

  • 1.1 O Que é Observabilidade? (1h)
    • Definição e importância da observabilidade em sistemas modernos.
    • Diferença entre Monitoramento e Observabilidade: o "o quê" vs. o "porquê".
    • Por que a observabilidade é crucial para sistemas distribuídos (microsserviços, nuvem).
  • 1.2 Os Três Pilares da Observabilidade (2h)
    • Traces Distribuídos: O que são, como funcionam, para que servem (rastreando requisições através de múltiplos serviços).
    • Métricas: O que são, tipos (contadores, medidores, histogramas), para que servem (tendências, alertas).
    • Logs: O que são, logs estruturados vs. texto simples, para que servem (eventos pontuais, depuração).
    • Como esses pilares se complementam para fornecer uma visão holística.
  • 1.3 Cenário de Observabilidade e Ferramentas (1h)
    • Visão geral das ferramentas de observabilidade no mercado (comerciais e open source).
    • Apresentação dos backends a serem usados no curso: Jaeger, Prometheus, Grafana, Loki.
    • Configuração inicial do ambiente de laboratório com Docker Compose (levantando Jaeger, Prometheus, Grafana, Loki).

Módulo II: OpenTelemetry: O Padrão para Coleta de Telemetria (6 horas)

  • 2.1 Introdução ao OpenTelemetry (2h)
    • O que é OpenTelemetry (OTel)? Histórico, missão e comunidade (CNCF).
    • Por que o OpenTelemetry é importante: padronização, vendor-neutralidade, extensibilidade.
    • Componentes principais: APIs, SDKs e OpenTelemetry Collector.
  • 2.2 Conceitos Essenciais do OpenTelemetry (2h)
    • TracerProvider, Tracer, SpanBuilder, Span: Construindo traces.
    • MeterProvider, Meter, Instruments (Counter, Gauge, Histogram): Coletando métricas.
    • LoggerProvider, LogRecord: Emitindo logs.
    • Context: Propagação de contexto (Trace ID, Span ID).
    • Attributes e Resources: Adicionando informações contextuais.
  • 2.3 Primeiro Contato Hands-On com OpenTelemetry (2h)
    • Configuração de um projeto simples em uma linguagem (e.g., Python ou Node.js).
    • Instrumentação básica de uma função/endpoint para gerar um trace simples.
    • Adição de atributos a um span.
    • Configuração do SDK para exportar via OTLP (OpenTelemetry Protocol).
    • Visualização do trace no Jaeger.

Módulo III: Instrumentação de Traces e Métricas com OpenTelemetry (6 horas)

  • 3.1 Traces Distribuídos na Prática (3h)
    • 3.1.1 Instrumentação Manual de Traces:
      • Criação de traces e spans em aplicações de exemplo (Java, .NET, Python, Node.js).
      • Estabelecendo relações Parent-Child entre spans.
      • Adição de Span Events para registrar pontos importantes no tempo de um span.
    • 3.1.2 Instrumentação Automática de Traces:
      • Utilizando bibliotecas de auto-instrumentação para frameworks comuns (e.g., HTTP requests, database calls).
      • Vantagens e desvantagens da instrumentação automática vs. manual.
    • 3.1.3 Propagação de Contexto:
      • Demonstração da propagação de Trace Context entre duas aplicações de microsserviços.
      • Visualização de um trace distribuído completo no Jaeger.
  • 3.2 Métricas na Prática (3h)
    • 3.2.1 Instrumentação Manual de Métricas:
      • Criação e atualização de Counters (e.g., contagem de logins, erros).
      • Criação e atualização de Gauges (e.g., usuários ativos, tamanho de fila).
      • Criação e gravação de Histograms (e.g., latência de requisições, tamanho de payload).
      • Adição de atributos (labels) para métricas.
    • 3.2.2 Instrumentação Automática de Métricas:
      • Coleta de métricas de runtime (CPU, memória) e métricas básicas de sistema.
    • Configuração dos SDKs para exportar métricas via OTLP.
    • Visualização de métricas em Prometheus e criação de dashboards simples no Grafana.

Módulo IV: Logs e OpenTelemetry Collector (5 horas)

  • 4.1 Integração de Logs com OpenTelemetry (2h)
    • O que são logs estruturados e por que usá-los.
    • Configuração de bibliotecas de logging populares (Logback/Log4j2, logging em Python, Pino/Winston) para emitir logs estruturados.
    • Enriquecimento de logs com Trace ID e Span ID para correlação.
    • Envio de logs para o OpenTelemetry Collector via OTLP.
  • 4.2 Introdução ao OpenTelemetry Collector (2.5h)
    • Arquitetura do Collector: Receivers, Processors e Exporters.
    • Configuração do Collector via YAML:
      • Receivers: otlp (HTTP/gRPC).
      • Processors: batch (otimização de envio), resource (adicionar/modificar atributos de recursos).
      • Exporters: jaeger, prometheus, logging (para console), otlp (para outro Collector ou backend).
    • Criação de pipelines de telemetria dentro do Collector.
    • Deploy do Collector com Docker Compose.
  • 4.3 Fluxo Completo da Telemetria (0.5h)
    • Revisão do fluxo de dados: Aplicação -> SDK -> Collector -> Backends.
    • Verificação da telemetria em cada estágio do pipeline.
    • Introdução à correlação de traces, métricas e logs através de IDs comuns.

Módulo V: Visualização Básica e Análise de Dados (3 horas)

  • 5.1 Visualizando Traces com Jaeger (1h)
    • Busca de traces por serviço, operação, atributos.
    • Análise de gráficos de chama para identificar latências e dependências.
    • Entendendo os metadados dos spans.
    • Casos de uso para Jaeger na depuração de requisições.
  • 5.2 Monitorando Métricas com Prometheus e Grafana (1h)
    • Visão geral do Prometheus: modelo de dados, PromQL (linguagem de consulta).
    • Criação de dashboards básicos no Grafana:
      • Gráficos de linha para contadores e medidores.
      • Histogramas para latência.
    • Configuração de fontes de dados no Grafana.
    • Interpretação de métricas para identificar tendências e problemas.
  • 5.3 Explorando Logs com Loki/Grafana (1h)
    • Navegação no Grafana para explorar logs (Loki como fonte de dados).
    • Uso de LogQL para buscar e filtrar logs.
    • Correlação de logs com traces (usando o Trace ID presente nos logs).
    • Como os logs complementam traces e métricas para o troubleshooting.
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Apache NiFi Advanced DataFlow Engineering

24 horas

Curso Real-Time Data Pipelines

24 horas