nesta semana , na quinta-feira , a gente volta até as lives do mesmo jeito que a gente tinha lá no ano passado , ao vivo pelo youtube , às 13h13 , quinta-feira .
semana passada a gente teve uma aula ali com quase quatro horas sobre open telemetry collector , desenvolvendo componente para open telemetry collector .
foi bem interessante , foi ótimo experimento , uma boa live inicial para o ano e foi a primeira live desse ano e de novo a gente começa , volta com toda força e essa semana aqui durante esse tempo aí entre as férias que eu peguei lá do meio de dezembro até agora vocês mandaram algumas perguntas né e aqui eu estou selecionando uma das perguntas para responder nesse vídeo no próximo vídeo vou responder mais uma pergunta e depois tem mais uma terceira pergunta que vou responder terceiro vídeo quem sabe aí na semana que vem mas a pergunta que vou responder aqui nesse vídeo é essa aqui .
então a pergunta veio ali pelo instagram , pergunta do pedro césar e ele pergunta assim o que seria exatamente a telemetria ?
qual a sua relação com observabilidade e monitoramento ?
primeiro , antes de tudo , obrigado aí pedro pela pergunta .
é uma pergunta ótima .
a gente já falou ali sobre as diferenças ou as semelhanças ou a relação entre monitoramento e observabilidade .
a gente já falou num vídeo mais lá atrás , dá uma procuradinha aí no histórico , no canal , no youtube .
mas vamos fazer resuminho aqui , vamos incluir telemetria aí no meio né .
então telemetria pedro , são aqueles dados que a gente gera da nossa na nossa aplicação , mas que não são dados de negócio , são dados que a gente usa para entender o comportamento da nossa aplicação .
então imagina que você tem ali o seu carro e você está dirigindo agora a sei lá 60 por hora , depois daqui a segundo está 61 , 62 , 60 de novo , 59 , 57 .
isso aí são todos dados que vão sendo gravados talvez pelo seu carro né e a ideia é esses dados serem gravados pela sua aplicação então com rápido a sua aplicação tá indo quantas requisições ela tá recebendo ali por segundo por minuto né a gente vai gravando esses dados bem básicos de telemetria e depois a gente pode fazer estudo analítico , estudo com estatístico também desses dados , a gente pode enviar esses dados por uma plataforma de inteligência de negócio talvez ou então como é mais comum mandar esses dados de telemetria para bancos de dados especializados em monitoramento e observabilidade .
então os dados de telemetria são nada mais nada menos do que esses dados , esses pontos de informação que a gente vai gravando com relação à execução da nossa aplicação .
então , nós geralmente falamos de três tipos de dados de telemetria .
nós falamos de logs , então logs são aqueles dados que quando a gente está desenvolvendo a nossa aplicação , a gente vai lá e coloca isso aqui aconteceu , aquilo ali aconteceu , passou por aqui , passou por ali .
a gente usa muito também para debugging , para depuração da nossa aplicação , para entender ali na hora do desenvolvimento o que está acontecendo direitinho .
as métricas a gente geralmente coloca para entender o agregado , como é que as coisas estão acontecendo num agregado .
por exemplo , qual o número atual de visitantes do nosso site ?
eu posso criar objeto ali de gauge , em inglês , ou então número fixo , como a gente poderia chamar isso em português , número fixo que ele pode ir para cima ou pode ir para baixo .
então , eu tenho lá novo visitante do nosso site , a gente vai lá e incrementa o contador aí nesse gage , esse número fixo , esse contador fixo .
e aí visitante saiu , a gente vai lá e diminui , a gente decrementa isso , a gente tira desse número .
de forma que a gente possa em qualquer momento , em qualquer parte da nossa aplicação , fazer uma consulta para esse valor e entender quantos usuários nós temos nesse exato momento no nosso site .
então , isso é métrica .
as métricas , é claro , não é só de ...
a gente não está só falando de números fixos , não está só falando de gauges , a gente está falando também de contadores que só vão para cima , por exemplo , quantas vezes uma determinada operação aconteceu , então quantas vezes esse endpoint meu aqui foi chamado ou então pode ser uma latência então quanto tempo levou para executar tal operação em comum as métricas são números né então independente do tipo de métrica que a gente tem elas elas são elas se resumem a números e elas geralmente fazem mais sentido quando a gente olha esses dados no correr do tempo então quantas requisições por segundo nós tivemos os últimos cinco minutos coisa assim então e aí nós temos os rastros também então os rastros são compostos de trechos né olha lá o nosso especial ali a gente já fez especial sobre métrica , a gente já fez especial sobre rastros , então vale a dar uma olhada para ver mais detalhes sobre isso .
mas rastros é outro tipo de telemetria que a gente tem e que a gente gera ali para entender a execução de uma determinada requisição , como ela acontece no nosso processo ou no nosso microserviços , através de outros processos ou num contexto pouco maior .
então nós temos aí esses três dados , três tipos básicos de dados de telemetria .
e aí nós temos , então , consumindo esses dados de telemetria , nós temos os conceitos de monitoramento e de observabilidade .
então , monitoramento é aquela ação que a gente tem quando a gente quer respostas para perguntas que a gente já tem .
então , imagina que eu sei que a minha aplicação , quando a cpu do meu servidor está ali a 90% , eu sei que eu preciso ser avisado , não é uma situação normal isso acontecer .
então eu quero ser avisado , quero ter alerta de quando minha cpu está 90% .
usando o exemplo do carro que a gente usou lá atrás , a velocidade 60 e por aí vai , a gente poderia dizer que monitoramento é nós termos alguma coisa no carro que nos avise se a gente vai acima de isso lá 90 por hora então eu tenho lá aparelhinho lá no meu dashboard no meu controle do carro que eu coloco lá o meu limite de velocidade é 70 por hora , por exemplo .
então se eu estiver indo a 75 o carro vai me alertar que eu estou indo acima da velocidade que eu gostaria de ir com o máximo , da minha velocidade máxima .
então esse é monitoramento e geralmente a gente faz alertas com monitoramento a gente não tem só o monitoramento a gente tem as perguntas pelas quais a gente quer resposta então é qual a velocidade que eu tenho agora e me avise caso eu esteja indo a acima desse valor dessa velocidade tal .
então isso é monitoramento .
observabilidade é uma derivação , é pouquinho diferente de monitoramento .
a observabilidade é a nossa capacidade de entender o que está acontecendo com o nosso sistema ao olhar os dados de telemetria .
e não só dados de telemetria clássicos , os que a gente falou aqui , de métricas , logs e rastros , mas a gente pode também estar falando de outras fontes de informação .
não necessariamente telemetria , não necessariamente dados que são gerados pela nossa aplicação , mas talvez informações que vão ser enviadas para o nosso sistema de observabilidade por uma outra fonte .
por exemplo , quando o arquivo de configuração muda , então isso é efeito relevante para mim .
a gente sabe que a maioria dos problemas que a gente encontra em produção são mudanças de configuração , configuração de rede , configuração da nossa aplicação , e por aí vai .
então a gente quer sim saber em algum lugar quais foram as mudanças que aconteceram na nossa infra , no nosso ambiente de execução ali .
então a gente quer saber quando que uma configuração de rede mudou , quando a configuração do meu serviço mudou , quando eu fiz novo deployment do meu serviço e por aí vai .
todas as informações relevantes eu tenho que ter para tomar uma boa decisão , para entender realmente o que está acontecendo com a minha aplicação .
isso é observabilidade .
observabilidade é a nossa capacidade de entender o que a nossa aplicação está fazendo naquele momento .
então se eu tenho perguntas sobre a minha aplicação , eu não necessariamente sabia dessas perguntas , eu não sabia que eu ia perguntar essas perguntas , fazer essas perguntas quando eu estava desenvolvendo a aplicação .
então , na hora que eu estou desenvolvendo a aplicação , eu gero os dados de telemetria e aí eu tenho que meio que contar com a sorte , que eu instrumentei da forma correta , que eu gerei esses dados de telemetria que depois eu iria precisar mas aí a diferença de novo entre monitoramento e observabilidade é monitoramento eu tenho as perguntas já de antemão então eu sei que eu não quero passar de 70 por hora enquanto que observabilidade eu vou eu vou ter a minha capacidade de olhar para todos os dados de telemetria para entender determinado comportamento .
então por exemplo se eu estou apertando no freio ali e a velocidade não está baixando tem alguma coisa de errada então eu vou lá e olho para os dados de telemetria para saber o que está acontecendo .
talvez eu possa procurar o evento de pressionar o pedal de freio .
então se eu não achei aquele evento , então talvez o meu freio esteja com problemas .
e é esse então o tipo de ...
essa diferença de monitoramento por observabilidade .
mas de novo a gente tem vídeo dedicado sobre esse assunto , onde a gente fala sobre monitoramento e observabilidade .
mas aí entra então essa nossa questão da telemetria .
então dados de telemetria , de novo resumão , dados de telemetria é uma das matéria prima , basicamente , do nosso monitoramento e uma das matérias primas para observabilidade também .
é isso então muito obrigado de novo pela pergunta pedro .
pessoal mandem perguntas aí , por onde você quiser essa pergunta veio pelo instagram mas manda pergunta aí como comentário no youtube ou então como pergunta no twitter , pergunta no slack , pergunta no canal telegram , temos canal telegram ali open telem to br , junte-se a nós ali , faça perguntas também e a gente responde aqui pra vocês em vídeo .
muito obrigado , até o próximo vídeo .