Visão Geral
Curso Advanced OpenTelemetry and Pipeline Customization. Este curso intensivo de 24 horas foi cuidadosamente projetado para profissionais de observabilidade, engenheiros de DevOps, SREs e arquitetos que já possuem uma base sólida em OpenTelemetry e buscam aprofundar seus conhecimentos em customização avançada e otimização de pipelines de telemetria. O foco principal é explorar as capacidades mais sofisticadas do OpenTelemetry SDKs (extensores, processadores, samplers customizados) e, em particular, as funcionalidades avançadas do OpenTelemetry Collector. Os participantes aprenderão a criar componentes customizados para o Collector, implementar estratégias de amostragem inteligentes, enriquecer dados de telemetria de forma programática e gerenciar pipelines complexos para atender a requisitos específicos de negócios e infraestrutura em larga escala. Ao final, os alunos serão capazes de construir soluções de observabilidade altamente adaptadas, eficientes e escaláveis.
Objetivo
Após realizar este curso Advanced OpenTelemetry and Pipeline Customization, você será capaz de:
- Dominar as APIs avançadas e os pontos de extensão dos SDKs OpenTelemetry para instrumentação personalizada.
- Desenvolver processadores e exportadores customizados para o OpenTelemetry Collector.
- Implementar estratégias de amostragem (sampling) dinâmicas e inteligentes para traces, otimizando o volume de dados e a relevância.
- Enriquecer e transformar dados de telemetria (traces, métricas, logs) no pipeline do Collector para atender a requisitos específicos.
- Gerenciar e otimizar pipelines de telemetria complexos e de alto volume para performance e custo.
- Utilizar o OpenTelemetry como uma plataforma extensível para solucionar desafios de observabilidade não-padrão.
- Integrar OpenTelemetry com sistemas legados ou proprietários de forma customizada.
- Desenvolver componentes de instrumentação OpenTelemetry para bibliotecas e frameworks não suportados automaticamente.
Publico Alvo
- Engenheiros de DevOps experientes
- Engenheiros de Confiabilidade de Sites (SREs)
- Arquitetos de Sistemas e Nuvem
- Desenvolvedores Líderes e Tech Leads
- Profissionais de Observabilidade que buscam especialização em OpenTelemetry
- Qualquer profissional que precise de controle total sobre o fluxo de telemetria e sua otimização.
Pre-Requisitos
- Conhecimento Sólido em OpenTelemetry: Familiaridade com os conceitos de traces, métricas, logs, OpenTelemetry Collector (receivers, processors, exporters) e instrumentação básica em pelo menos uma linguagem de programação.
- Experiência com linguagens de programação: Proficiência em pelo menos uma das linguagens (Go é altamente recomendável para desenvolvimento de Collector, mas Java/Python/Node.js para SDKs).
- Conhecimento de Kubernetes/Docker: Experiência prática com ambientes conteinerizados e orquestrados.
- Noções de Observabilidade: Compreensão dos desafios e pilares da observabilidade em sistemas distribuídos.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico
Módulo I: Revisão e Aprofundamento no OpenTelemetry Core (4 horas)
- 1.1 Arquitetura e Modelo de Dados Avançado (1h)
- Revisão aprofundada dos pilares de telemetria: Traces (Spans, SpanContext, Baggage), Métricas (Instruments, Aggregators), Logs (LogRecords).
- Detalhes do modelo de dados OTLP (OpenTelemetry Protocol): Protobuf.
- Compreensão de
Resource
e Resource Attributes
como base para correlação.
- Mecanismos de Context Propagation (W3C Trace Context, Baggage).
- 1.2 OpenTelemetry SDKs: Extensibilidade e Pontos de Injeção (2h)
- Traces:
SpanProcessors
(Batch, Simple, Custom), Samplers
(AlwaysOn, AlwaysOff, TraceIdRatioBased, ParentBased, Custom).
- Métricas:
View
(para customizar aggregation), MetricReaders
(Push/Pull).
- Logs:
LogRecordProcessors
, LogRecordExporters
.
- Discutindo os limites e capacidades de cada SDK para instrumentação e processamento local.
- 1.3 Boas Práticas e Considerações de Performance (1h)
- Impacto da instrumentação na performance da aplicação: overhead de CPU/memória.
- Estratégias para instrumentação eficiente: evitar dados excessivos, uso de caches.
- Gerenciamento de recursos do SDK e configurações para ambientes de alta carga.
- Configurando o ambiente de laboratório para testes de performance.
Módulo II: OpenTelemetry Collector: Componentes e Extensibilidade (6 horas)
- 2.1 Arquitetura Interna do Collector e Pipeline Detalhado (2h)
- Profundidade nos Receivers, Processors, Exporters.
- Conceito de
Extensions
e Service
no Collector.
- Fluxo de dados através dos pipelines (receivers -> processors -> exporters).
- Modelagem de dados dentro do Collector:
PData
(Traces, Metrics, Logs).
- Discutindo as implicações de performance do design de pipeline.
- 2.2 Desenvolvendo um Processador Customizado para o Collector (2.5h)
- Estrutura de um processador OTel Collector (Go).
- Passos para criar um novo processador:
- Definição da configuração (YAML).
- Implementação da lógica de processamento (e.g., adicionar/remover atributos, transformar nomes de spans/métricas, filtragem avançada).
- Registro do componente.
- Exemplo prático: um processador para anonimizar dados sensíveis ou enriquecer com informações de sistema externo.
- 2.3 Desenvolvendo um Exportador Customizado para o Collector (1.5h)
- Estrutura de um exportador OTel Collector (Go).
- Passos para criar um novo exportador:
- Definição da configuração.
- Implementação da lógica de envio para um sistema de destino não suportado nativamente (e.g., um serviço de ingestão proprietário, um banco de dados NoSQL).
- Tratamento de erros e retry mechanisms.
- Exemplo prático: exportador para um endpoint HTTP customizado.
Módulo III: Amostragem Avançada e Controle de Tráfego (5 horas)
- 3.1 Estratégias de Amostragem Client-Side vs. Server-Side (1.5h)
- Revisão dos Samplers no SDK e suas limitações para decisões complexas.
- Introdução à amostragem no Collector (Server-Side Sampling) e suas vantagens para controle global.
- Análise de tradeoffs: custo vs. visibilidade vs. overhead.
- 3.2 Amostragem Baseada em Cauda (Tail-Based Sampling) com
tail_sampling_processor
(2h)
- Princípios da amostragem baseada em cauda: decidir sobre o trace completo no final.
- Regras de decisão:
status_code
, attributes
, latency
, rate_limiting
, error_status
.
- Configuração e otimização do
tail_sampling_processor
no OpenTelemetry Collector.
- Exemplos práticos: amostrar 100% dos traces com erro, 10% dos traces lentos, ou traces de usuários específicos.
- 3.3 Amostragem Probabilística e Adaptativa (1h)
- Configuração do
probabilistic_sampler
no Collector.
- Introdução a conceitos de amostragem adaptativa (e.g., usando mecanismos externos para ajustar a taxa de amostragem).
- Casos de uso para amostragem em larga escala e ambientes de alta carga.
- 3.4 Filtragem Avançada de Telemetria (0.5h)
- Uso de
filter_processor
para descartar traces, métricas ou logs indesejados.
- Filtragem por atributos, nomes, tipos.
Módulo IV: Otimização de Pipelines e Enriquecimento de Dados (5 horas)
- 4.1 Processamento de Atributos e Metadados (2h)
attributes_processor
: Renomear, mover, copiar, remover atributos.
resource_processor
: Adicionar/modificar atributos de recursos (e.g., adicionar tags de ambiente, cluster, versão da aplicação).
k8sattributes_processor
: Enriquecer dados de telemetria com metadados do Kubernetes (Pod name, Namespace, Container ID).
transform_processor
: Linguagem de transformação (OTPL) para manipulação complexa de dados.
- Casos de uso: Padronização de nomes de atributos, enriquecimento de contexto.
- 4.2 Redução de Ruído e Agregação de Dados (1.5h)
batch_processor
: Otimização do envio de dados em lotes para exporters.
memory_limiter_processor
: Prevenção de estouro de memória no Collector.
spanmetrics_processor
: Geração de métricas a partir de traces para análise de dependência de serviço (Service Map).
cumulative_to_delta_processor
/ delta_to_cumulative_processor
: Conversão de tipos de métricas.
- 4.3 Roteamento Inteligente de Telemetria (1h)
routing_processor
: Enviar diferentes tipos de traces/métricas/logs para diferentes exportadores com base em atributos ou regras.
- Configuração de múltiplos pipelines para diferentes destinos de telemetria (e.g., traces de produção para Jaeger, traces de dev para console).
- 4.4 Auditoria e Validação do Pipeline (0.5h)
- Monitoramento do próprio OpenTelemetry Collector (métricas internas).
- Técnicas de depuração de configurações complexas do Collector.
- Ferramentas para validar o formato e o conteúdo dos dados OTLP.
Módulo V: Laboratório Avançado e Desafios (4 horas)
- 5.1 Workshop: Construindo um Pipeline de Observabilidade Customizado (2.5h)
- Cenário complexo: Aplicação distribuída que interage com um sistema legado via protocolo customizado.
- Desafio 1: Desenvolver um processador customizado para o Collector que enriqueça os traces com informações de um serviço de configuração externo.
- Desafio 2: Implementar uma estratégia de amostragem no Collector que garanta 100% de traces para transações críticas e 5% para transações comuns.
- Desafio 3: Criar um dashboard no Grafana que combine métricas de Service Map (geradas pelo
spanmetrics_processor
) com traces filtrados pelo critério de amostragem.
- 5.2 Troubleshooting e Otimização de Performance (1h)
- Simulação de problemas no pipeline (e.g., Collector travando, dados não chegando).
- Uso de ferramentas de depuração do Collector e logs para identificar a causa raiz.
- Otimização de recursos e configuração para lidar com alto volume de telemetria.
- Análise de impacto de diferentes configurações de amostragem e processamento.
- 5.3 Discussão de Casos de Uso Reais e Soluções (0.5h)
- Compartilhamento de experiências e desafios em ambientes de produção.
- Discussão sobre como os conceitos aprendidos podem ser aplicados para resolver problemas específicos dos participantes.
- Tendências futuras e desenvolvimentos no ecossistema OpenTelemetry.
TENHO INTERESSE