Bom, e falando aqui de observabilidade, eu particularmente gosto de separar em algumas etapas para as ferramentas, para as stacks, vamos dizer assim, que a gente utiliza em cada um desses pilares. os pilares tá é a primeira delas seria a camada de ingestão então se a gente vai falando ali de log por exemplo né a gente poderia tá falando aqui de um fluente bit de um fluente de um prontail um file bit né alguma coisa nesse sentido a gente vai ter uma camada de armazenamento e indexação, isso mais no caso de log, no caso de métrica, a gente não vai ter essa questão da indexação, mas a gente pode ter uma parada bem legal, que seria uma questão de enriquecimento também das próprias métricas, e a gente também consegue fazer isso com log e trace. A gente vai ter uma outra camada de visualização, que é onde a gente vai montar nossos dashboards, e por fim a gente vai ter a camada de alerta. Então, sempre que a gente for pensar em observabilidade, eu acho que a forma mais fácil é a gente meio que tentar olhar para isso e falar assim, putz, beleza, quais são as ferramentas que eu poderia encaixar em cada uma dessas etapas. Então, sei lá, vamos pegar a log aqui para pra gente poder começar a nossa conversa ou eu sei que eu vou precisar de uma ferramenta onde eu consiga olhar para os blogs fazer chip nesses blogs esses blogs eles vão ter que ser armazenados em algum lugar nesse processo eu posso ter algum é alguma etapa de enriquecimento né então exemplo, qual é o pod que está gerando esse log, qual é o cluster, qual é a região, então algumas informações de infraestrutura que a gente consegue capturar e fazer o enriquecimento para tornar esse log um pouco mais fácil de fazer depuração quando a gente tiver qualquer tipo de problema. A gente vai ter que armazenar esse log em alguma ferramenta, então seja lá, por exemplo, um Elasticsearch da vida, ou um CloudWatch Logs, ou de repente, sei lá, uma ferramenta como o Lock. A gente vai ter que ter uma ferramenta de visualização, que é o cara que a gente vai conseguir fazer as queries para consultar todo esse log, e possivelmente montar dashboards ali em cima desses caras, e uma outra ferramenta para geração de alerta. Então, eu consigo fazer, por exemplo, regras onde, sei sei lá se eu detectar que a gente tem algum tipo de match com a string error e algum log level error também, não sei, a gente tentar fazer alguma regra encadeada ali, a gente pode entender que isso é um possível problema e falar assim, eu quero gerar um alerta quando esse tipo de situação acontecer e ser notificado. Então, ser notificado de repente em um canal como um Slack, um Teams, ou receber um e-mail, ou de repente fazer uma integração com uma ferramenta de ItOM para a geração de um incidente. E aí quando a gente fala de métrica, não é diferente. Então a gente tem ferramentas que são amplamente utilizadas como promífios, que ela atua tanto nessa camada de fazer o scrape, que a gente chama dessas métricas que são geradas ali pelos nossos microserviços. Ele também consegue fazer o armazenamento dessas informações. Muitas vezes a gente acaba fazendo o que a gente chama de escrita remota para uma outra ferramenta, como um Thanos, para a gente conseguir ter essas informações por um período de retenção um pouco maior. A gente poderia ter na camada de visualização um Grafana, certo? Para a gente conseguir montar nossos dashboards, para a gente conseguir ter um acompanhamento. E os alertas poderiam ser feitos ou no próprio Grafana ou em uma ferramenta como o Alert Manager. E quando a gente fala de trace, a gente também tem aí diversas opções, né? Eu particularmente gosto da ideia da gente utilizar um Open Terameter, que é um cara que ele consegue ser mais agnóstico, né? Ele consegue ter um padrão aberto ali e fica mais fácil a gente integrar com outras ferramentas de armazenamento e visualização. Então, a gente poderia utilizar um OpenTelemetry ou, de repente, até um Istio, fazer a captura desses traces e integrar com alguma ferramenta para a gente conseguir ter esse armazenamento. Poderia ser um Jaeger, poderia ser uma ferramenta como o X-Ray da AWS. E nessas próprias ferramentas a gente já consegue ter essa questão da visualização também, onde ele basicamente monta um service map ali e a gente consegue ter toda a visibilidade do que aconteceu em uma requisição, por exemplo. Uma coisa que não é muito comum é a gente ter alertas baseados em traces. Então, a boa prática é sempre a gente trabalhar primeiro olhando para a métrica. Então, quando a gente desenvolver uma métrica, a gente trabalhar primeiro olhando para a métrica, então quando a gente desenvolver uma métrica, a gente desenvolver um microserviço, a gente também já pensar em como a gente consegue ter uma métrica para conseguir ter, capturar qualquer tipo de desvio de comportamento na nossa aplicação. Então sempre primeiro prioridades, a gente ter alertas baseadas em métricas a gente também pode ter alguns alertas baseados em logs, aquilo que fizer sentido e trace eu particularmente nunca vi, esse cara vai ficar mais como uma questão de auxílio ali mesmo pra gente conseguir de repente bater o olho nesse service map e já conseguir ser um pouco mais assertivo, em onde pode estar, em que momento, em qual integração, em que momento pode estar um problema de lentidão ou de erro, e aí a gente passar a olhar os logs e as métricas para esse componente, para essa integração em específico.