Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Observability Engineering: os protocolos, a com...

Observability Engineering: os protocolos, a comunidade e o estado da arte

Monitoramento de sistemas, análise de dados, estatísticas, logs, métricas e rastros de
aplicações sempre estiveram no ecossistema de engenharia de software. No entanto,
recentemente o conceito Observability ganhou muita relevância por justamente unir todas
essas coisas. Seus padrões, protocolos e ferramentas o colocaram em papel de destaque
quando o assunto é resiliência e visibilidade do comportamento das aplicações modernas.
Essa palestra visa justamente entrar nos detalhes sobre essa área e discutir os desafios,
o potencial e o estado da arte em que estamos.

Gustavo Pantuza

March 12, 2024
Tweet

More Decks by Gustavo Pantuza

Other Decks in Programming

Transcript

  1. Agenda ➢ Observability ➢ De onde viemos ➢ Onde estamos

    ➢ Protocolos ➢ Times de SRE ➢ Material complementar
  2. Observability “a measure of how well you can understand and

    explain any state your system can get into, no matter how novel or bizarre”
  3. De onde viemos • Artigo que introduziu o termo Observability

    (1960) • Troubleshooting baseado em logs • Majoritariamente stemas monolíticos e centralizados • Poucas chamadas externas Prompt: An old school computer science fellow, digital art
  4. De onde viemos • Telemetria era Monitoramento • Monitoramento especializado

    • Protocolos proprietários • Visualização proprietária • Difícil integração Prompt:Musty computer system monitoring dashboard, digital art
  5. Open Telemetry • APIs, SDKs e ferramentas • Gerar, coletar

    e exportar telemetria • Criado em 2019 • Incubado pela CNCF • Merge do OpenTracing e OpenCensus
  6. Open Telemetry • O que ele normaliza? ◦ Logs ◦

    Metrics ◦ Traces ◦ Profiles* * Profiling ainda está em desenvolvimento
  7. Open Telemetry • Logs ◦ Registro de eventos ◦ Auditoria

    ◦ Erros ◦ Transações ◦ Configurações Prompt: Computer programming log entries, digital art
  8. Open Telemetry message LogRecord { reserved 4; fixed64 time_unix_nano =

    1; fixed64 observed_time_unix_nano = 11; SeverityNumber severity_number = 2; string severity_text = 3; opentelemetry.proto.common.v1.AnyValue body = 5; uint32 dropped_attributes_count = 7; fixed32 flags = 8; bytes trace_id = 9; bytes span_id = 10; } Código de referência • Logs
  9. Open Telemetry • Métricas ◦ Saúde do sistema ◦ Desempenho

    ◦ Taxas de erros ◦ Escala ◦ Confiança Prompt: System metrics dashboard, digital art
  10. Open Telemetry message Metric { reserved 4, 6, 8; string

    name = 1; string description = 2; string unit = 3; oneof data { Gauge gauge = 5; Sum sum = 7; Histogram histogram = 9; ExponentialHistogram exponential_histogram = 10; Summary summary = 11; } repeated opentelemetry.proto.common.v1.KeyValue metadata = 12; } Código de referência • Métricas
  11. Open Telemetry • Traces (rastros) ◦ Intercomunicação ◦ Mudanças de

    estado ◦ Caminho de execução ◦ Diagnóstico de erros ◦ Insights operacionais Prompt: Computer systems tracing, digital art
  12. Open Telemetry message Span { bytes trace_id = 1; bytes

    span_id = 2; string trace_state = 3; bytes parent_span_id = 4; fixed32 flags = 16; string name = 5; enum SpanKind {...} SpanKind kind = 6; fixed64 start_time_unix_nano = 7; fixed64 end_time_unix_nano = 8; repeated opentelemetry.proto.common.v1.KeyValue attributes = 9; ... } Código de referência • Traces
  13. Open Telemetry • Protocolo comum para todos os vendors •

    gRPC por padrão de projeto ◦ HTTP 2 ◦ Protocolo de mensagem binário ◦ Criptografia
  14. Open Telemetry • Migração/adoção Caminho 1 Caminho 2 1. Adotar

    as bibliotecas na aplicação 2. Envia em OTLP para o coletor* 3. Coletor envia para os vendors 1. Apontar o código atual para o coletor 2. Coletor envia para os vendors Ideal a longo prazo, trabalhoso Solução de contorno, efeitos colaterais * O passo 2 do caminho 1 pode ser omitido
  15. Desafios Open Telemetry • Definir uma linguagem de query padrão

    • Machine Learning em cima da telemetria • Resolver o problema da alta cardinalidade • Profiling ainda está no começo • Visão centralizada de todas telemetrias Prompt: A technical challenge for the future, digital art
  16. Times (o11y) • Embedded ◦ Instrumenta as aplicações ◦ Define

    as métricas e atributos ◦ Cria os dashboards ◦ Investiga problemas locais ◦ Melhora resiliência • Consultor ◦ Cria serviços ◦ Cria bibliotecas ◦ Cria dashboards compartilhados ◦ Atua nos times periodicamente ◦ Investiga problemas globais
  17. Leituras complementares • Alerting on SLO • Reduce toil through

    better alerting • o11y news • Scaling to hundreds of millions of metrics Prompt: A female computer science student reading, digital art
  18. Livros • Observability engineering • SRE Book • SRE Work

    book • Accelerate Prompt: A pile of Computer Science books, digital art
  19. Palestras • Ingesting 6.5 Tb of Telemetry Data Daily Through

    Open Telemetry Protocol • A Theory and Practice of Alerting with Service Level Objectives • SREcon16 Europe - The Structure and Interpretation of Graphs
  20. Conferências • O11y Fest • Monitorama • SRE Con •

    SLO Conf • KubeCon Prompt: Computer Science Conference, digital art
  21. Pessoas • Liz Fong-Jones (Honeycomb) • Juraci Paixão (Grafana Labs)

    • Adriana Villela (Lightstep) • Michael Hausenblas (AWS) Prompt: A group of reference people on a subject, digital art
  22. Repositórios • A comunidade Open Telemetry • Open Telemetry Collector

    • Open Telemetry Contrib • Open Telemetry Spec Prompt: Open Source repositories, digital art