Slide 1

Slide 1 text

Observability Engineering os protocolos, a comunidade e o estado da arte Gustavo Pantuza @gpantuza

Slide 2

Slide 2 text

Agenda ➢ Observability ➢ De onde viemos ➢ Onde estamos ➢ Protocolos ➢ Times de SRE ➢ Material complementar

Slide 3

Slide 3 text

Observability “a measure of how well you can understand and explain any state your system can get into, no matter how novel or bizarre”

Slide 4

Slide 4 text

Observability “A habilidade de fazer perguntas ao seu ambiente de produção”

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Onde estamos CNCF Landscape

Slide 8

Slide 8 text

Open Telemetry ● APIs, SDKs e ferramentas ● Gerar, coletar e exportar telemetria ● Criado em 2019 ● Incubado pela CNCF ● Merge do OpenTracing e OpenCensus

Slide 9

Slide 9 text

Open Telemetry ● O que ele normaliza? ○ Logs ○ Metrics ○ Traces ○ Profiles* * Profiling ainda está em desenvolvimento

Slide 10

Slide 10 text

Open Telemetry ● Logs ○ Registro de eventos ○ Auditoria ○ Erros ○ Transações ○ Configurações Prompt: Computer programming log entries, digital art

Slide 11

Slide 11 text

Open Telemetry ● Logs syslog graylog

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Open Telemetry ● Métricas ○ Saúde do sistema ○ Desempenho ○ Taxas de erros ○ Escala ○ Confiança Prompt: System metrics dashboard, digital art

Slide 14

Slide 14 text

Open Telemetry ● Métricas

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Open Telemetry ● Traces

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Open Telemetry ● Protocolo comum para todos os vendors ● gRPC por padrão de projeto ○ HTTP 2 ○ Protocolo de mensagem binário ○ Criptografia

Slide 20

Slide 20 text

Open Telemetry ● Permite auto-instrumentação ● Bibliotecas oficiais de linguagens ● Fácil migração (vendor neutral)

Slide 21

Slide 21 text

Open Telemetry ● Open Telemetry Collector

Slide 22

Slide 22 text

Open Telemetry ● Open Telemetry Collector

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Times ● SRE como parte do time (embedded) times SRE ● SRE atuando como consultor

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

Livros ● Observability engineering ● SRE Book ● SRE Work book ● Accelerate Prompt: A pile of Computer Science books, digital art

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Conferências ● O11y Fest ● Monitorama ● SRE Con ● SLO Conf ● KubeCon Prompt: Computer Science Conference, digital art

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Repositórios ● A comunidade Open Telemetry ● Open Telemetry Collector ● Open Telemetry Contrib ● Open Telemetry Spec Prompt: Open Source repositories, digital art

Slide 33

Slide 33 text

Observability Engineering os protocolos, a comunidade e o estado da arte Gustavo Pantuza @gpantuza