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

KCD Brasil 2022 - Tudo o que você PRECISA saber sobre OpenTelemetry

KCD Brasil 2022 - Tudo o que você PRECISA saber sobre OpenTelemetry

OpenTelemetry é um dos projetos mais recentes da CNCF (Cloud Native Computing Foundation) na área de observabilidade e já é o segundo mais ativo. Nessa sessão, Juraci Paixão Kröhling vai falar sobre os diferentes sub-projetos e como dar os primeiros passos com eles. Ainda que você já tenha ouvido falar sobre OpenTelemetry antes, você vai deixar essa sessão com um entendimento ainda melhor sobre o que é OpenTelemetry, quais são as peças neste quebra-cabeças e como utilizá-las com eficácia em seus projetos.

Juraci Paixão Kröhling

January 18, 2022
Tweet

More Decks by Juraci Paixão Kröhling

Other Decks in Technology

Transcript

  1. Juraci Paixão Kröhling Engenheiro de software @jpkrohling • Origens do

    projeto OpenTelemetry • Padrões e especificações • Instrumentação • Conduíte (pipeline) • Futuro • Perguntas e respostas Quem sou eu Programa
  2. OpenTracing Objetivo: servir de padrão para rastreamento distribuído • Especificação:

    o que é um rastreador, rastro, trecho, … • Convenções semânticas: quais atributos usar em quais casos • API de instrumentação para diversas linguagens • Bibliotecas de instrumentação
  3. OpenCensus Objetivo: ser “a” biblioteca para captura de telemetria •

    SDKs para diversas linguagens: API e rastreador fazem parte da mesma biblioteca • Conduíte para dados de telemetria: opencensus-service • Suporte além de rastreamento: métricas disponível, suporte a logs viria em seguida • Bibliotecas de instrumentação
  4. OpenTelemetry OpenTracing + OpenCensus • Especificação • Convenções semânticas •

    API de instrumentação para diversas linguagens • API e SDK em módulos separados • Bibliotecas de instrumentação • Conduíte para processamento de dados de telemetria: opentelemetry-collector
  5. Especificação da API Como a API de instrumentação deve ser,

    independente do SDK usado Especificação do SDK Especificação de dados Como os SDKs devem se comportar, independente da linguagem e implementação Interface description language (IDL), especificando como os dados devem ser formatados e transmitidos ou recebidos Padrões e especificações
  6. Especificação de dados OTLP OpenTelemetry Line Protocol, um conjunto de

    arquivos proto, definindo tanto o transporte quanto o conteúdo da mensagem XKCD #927 Aposto que você pensou no XKCD #927 em algum momento desta apresentação
  7. Especificação de dados OTLP OpenTelemetry Line Protocol, um conjunto de

    arquivos proto, definindo tanto o transporte quanto o conteúdo da mensagem XKCD #927 Aposto que você pensou no XKCD #927 em algum momento desta apresentação
  8. Instrumentação manual Utilizando diretamente a API de instrumentação Bibliotecas de

    instrumentação Instrumentação automática Utilizando bibliotecas que integram com frameworks populares, como Spring, Servlets, JAX-RS, ... Geralmente por meios de manipulação de bytecode Instrumentação
  9. Middleware Prometheus endpoint Jaeger client OTLP client OpenTelemetry Collector Escrita

    Leitura Prometheus Receivers Processors attribute routing ... Prometheus OTLP Exporters Jaeger OTLP Receivers Processors attribute routing ... Jaeger OTLP Exporters OTLP
  10. awscontainerinsightreceiver awsecscontainermetricsreceiver awsxrayreceiver carbonreceiver cloudfoundryreceiver collectdreceiver dockerstatsreceiver dotnetdiagnosticsreceiver filelogreceiver fluentforwardreceiver

    googlecloudpubsubreceiver googlecloudspannerreceiver hostmetricsreceiver httpdreceiver influxdbreceiver jaegerreceiver jmxreceiver k8sclusterreceiver kafkametricsreceiver kafkareceiver kubeletstatsreceiver memcachedreceiver mongodbatlasreceiver mysqlreceiver nginxreceiver opencensusreceiver otlpreceiver podmanreceiver prometheusexecreceiver prometheusreceiver receivercreator redisreceiver sapmreceiver scraperhelper signalfxreceiver simpleprometheusreceiver splunkhecreceiver statsdreceiver syslogreceiver tcplogreceiver udplogreceiver wavefrontreceiver windowsperfcountersreceiver zipkinreceiver zookeeperreceiver Receivers attributesprocessor cumulativetodeltaprocessor deltatorateprocessor filterprocessor groupbyattrsprocessor groupbytraceprocessor k8sattributesprocessor metricsgenerationprocessor metricstransformprocessor probabilisticsamplerprocessor resourcedetectionprocessor resourceprocessor routingprocessor spanmetricsprocessor spanprocessor tailsamplingprocessor Processors alibabacloudlogserviceexporter awscloudwatchlogsexporter awsemfexporter awskinesisexporter awsprometheusremotewriteexporter awsxrayexporter azuremonitorexporter carbonexporter datadogexporter dynatraceexporter elasticexporter elasticsearchexporter f5cloudexporter fileexporter googlecloudexporter googlecloudpubsubexporter honeycombexporter humioexporter influxdbexporter jaegerexporter kafkaexporter loadbalancingexporter logzioexporter lokiexporter newrelicexporter observiqexporter opencensusexporter otlpexporter prometheusexporter prometheusremotewriteexporter sapmexporter sentryexporter signalfxexporter skywalkingexporter splunkhecexporter stackdriverexporter sumologicexporter tanzuobservabilityexporter zipkinexporter Exporters Componentes
  11. Onde me encontrar: jpkrohling @ twitter and github jpkroehling @

    Slack Faça parte do projeto: Obrigado pela atenção! #otel-collector (CNCF) #observabilidade