Três pilares da observabilidade: logs, métricas e rastreios

Vista aérea de ponte suspensa com tráfego moderado

Autor

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

Muitas estruturas e órgãos governamentais contam com três pilares para ajudar a garantir o sucesso. As práticas de responsabilidade corporativa se concentram na sustentabilidade ambiental, social e financeira para orientar as práticas de negócios. 

As empresas que buscam passar pela transformação digital frequentemente usam três pilares (pessoas, processos e tecnologia) para orientá-las durante a transição. Esse framework incentiva os tomadores de decisão a se concentrar na retenção de especialistas técnicos criativos e colaborativos (pessoas); usar práticas de gerenciamento e segurança de dados estruturadas e meticulosas (processos); e contar com ferramentas e plataformas avançadas para gerar progresso. 

E os três pilares que sustentam o Scrum (um conjunto de frameworks e princípios que possibilitam o gerenciamento ágil de projetos) são transparência, inspeção e adaptação. Em cada um desses casos, os pilares são distintos e essenciais, mas incompletos. Cada um tem sua própria latitude e prioridades, mas seu verdadeiro poder está na forma como colaboram e interagem para apoiar objetivos maiores. A observabilidade não é diferente.

Em um contexto de TI, a observabilidade usa três pilares de dados de telemetria (métricas, logs e rastreios) para facilitar a visualização e a compreensão de vastas redes de computação. Ela permite que os desenvolvedores entendam o estado interno de um sistema com base em suas saídas externas. Quando uma rede é observável, o pessoal de TI pode identificar a causa raiz de qualquer problema de desempenho observando os dados que ela produz, sem necessidade de testes ou programação adicionais.

As soluções de observabilidade usam os dados de saída brutos de um sistema para concluir análises de dados, fornecendo às equipes visibilidade de rede de ponta a ponta e os insights praticáveis de que precisam para solucionar problemas e depurar.

Arquiteturas observáveis ajudam equipes de engenharia e administradores de redes a gerenciar a complexidade das redes de computação modernas. Atualmente, isso significa manter redes de computação maciças e altamente dinâmicas, que frequentemente incluem configurações de nuvem híbrida e multinuvem e uma variedade de aplicações nativas da nuvem, microsserviços e contêineres Kubernetes.

Ferramentas de observabilidade (como a solução de código aberto OpenTelemetry) fornecem às empresas uma visão abrangente e contextualizada da integridade do sistema. A visibilidade full stack ajuda as equipes a identificar padrões de dados anômalos e gargalos de desempenho antes que afetem os usuários finais. Dessa forma, a observabilidade pode ajudar as empresas a minimizar o downtime da rede e manter a confiabilidade do serviço em diversos casos de uso.

No entanto, independentemente da complexidade da rede, a observabilidade depende dos "eventos" do sistema e dos seus três pilares primários. Os pilares permitem que as plataformas de observabilidade coletem e analisem dados de aplicações de front-end, serviços de back-end, pipelines de CI/CD e pipelines de dados de streaming que operam em sistemas distribuídos.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionados por especialistas e notícias sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

O que são eventos do sistema?

A observabilidade requer uma coleta meticulosa de dados de cada componente de uma rede para determinar o “o que”, “onde” e “por que” dos eventos do sistema e para esclarecer como os eventos podem afetar o desempenho de toda a arquitetura. Portanto, os eventos são a base do monitoramento e da telemetria.

Os eventos são ocorrências distintas em uma rede que acontecem em horários específicos e normalmente produzem dados valiosos para logs, métricas e rastreios, tornando-os tão essenciais para a observabilidade quanto os três pilares. Os eventos existem dentro de um contexto mais amplo.

Quando, por exemplo, um cliente solicita recursos de um servidor empresarial, o cliente direciona a solicitação ao endpoint da API apropriado usando a URL do endpoint. O servidor recebe a solicitação, verifica as credenciais de autenticação (como uma chave de API) e as permissões do cliente e, supondo que sejam válidas, processa a solicitação de acordo com as especificações da API(por exemplo, garantindo que a resposta esteja formatada corretamente). O servidor, então, envia uma resposta ao cliente com os dados solicitados.

Os eventos acionam ações distintas em momentos precisos. Portanto, as ferramentas de observabilidade dependem deles para iniciar os processos de rastreamento, análise e correlação que ajudam as equipes de DevOps a visualizar seus ambientes de TI e otimizar suas redes.

Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

O que são métricas?

As métricas fornecem insights quantitativos sobre o desempenho do sistema, ao medir vários parâmetros da rede. Elas ajudam as equipes a entender "o que" dos problemas do sistema. Tipos de métricas:

  • Métricas de host: uso de memória, disco e CPU
  • Métricas de desempenho de rede: tempo de atividade, latência, taxa de transferência
  • Métricas de aplicativos: tempos de resposta, taxas de solicitação e de erro
  • Métricas do pool de servidores: total de instâncias, número de instâncias em execução
  • Métricas de dependências externas: disponibilidade, status do serviço

Métricas comuns (como uso de memória e latência) alinham-se intuitivamente à integridade do sistema. No entanto, muitas outras métricas e indicadores-chave de desempenho (KPI) podem revelar problemas no sistema. Por exemplo, os cabos do sistema operacional (SO) esgotados podem tornar o sistema mais lento e, frequentemente, exigem uma reinicialização para restaurar a funcionalidade.

As métricas frequentemente são agregadas para fornecer uma visão resumida que usa dashboards e outras visualizações (como gráficos de séries temporais) para ajudar os desenvolvedores a avaliar rapidamente a integridade geral do sistema, analisar tendências de dados e responder a problemas de rede. Elas também informam decisões sobre escalonamento e alocação de recursos, tornando as métricas essenciais para um planejamento de capacidade e gerenciamento de carga eficazes.

É crítico que as equipes selecionem cuidadosamente quais métricas rastrear e as analisem continuamente, pois algumas métricas podem ajudá-las a prever possíveis problemas antes que ocorram.

As equipes podem estabelecer limites de métricas que, quando violados, acionam alertas para notificar a equipe de TI sobre problemas atuais ou iminentes. As métricas também permitem que as ferramentas de observabilidade detectem problemas (como vazamento no identificador do SO) que se acumulam ao longo do tempo, começando muito antes de interromperem a experiência do cliente.

No entanto, as métricas frequentemente fornecem um contexto limitado e, portanto, em geral exigem correlação com logs e rastreios para dar aos desenvolvedores uma compreensão abrangente dos eventos do sistema. Métricas de alta resolução também geram enormes quantidades de dados, que podem ser difíceis de armazenar e gerenciar de forma eficiente. Portanto, a observabilidade frequentemente requer soluções de armazenamento de alta qualidade a longo prazo que possam lidar com dados de métricas e ajudar a garantir que permaneçam disponíveis para análise.

O que são logs?

Os logs são registros imutáveis e completos de eventos discretos que ocorrem em um sistema. Eles ajudam as equipes a entender o "por que" dos problemas do sistema.

Os arquivos de logs armazenam informações detalhadas sobre o comportamento do sistema e os processos de aplicações, incluindo:

  • Carimbos de data/horário de eventos
  • IDs de transações
  • Endereços IP e IDs de usuários
  • Detalhes de eventos e processos
  • Mensagens de erro
  • Tentativas de conexão
  • Alterações na configuração

Os logs de eventos podem ser binários, não estruturados (como em texto simples) ou estruturados (como no formato JSON). Todos os arquivos de logs são úteis no contexto certo, mas o registro estruturado aborda o texto de estrutura e os metadados à medida que são gerados, tornando mais simples verificar e analisar.

As funcionalidades de registro nas ferramentas de observabilidade agregam arquivos de logs de sistemas operacionais, dispositivos de rede, aplicações internas e de terceiros e dispositivos de Internet das coisas (IoT) para ajudar as equipes de desenvolvimento a diagnosticar erros e entender as falhas do sistema. Quando ocorre um erro, uma violação de segurança ou um problema de conformidade, os logs fornecem os detalhes necessários para rastrear a causa raiz e entender o que saiu errado.

Os logs oferecem insights valiosos sobre eventos e problemas do sistema, mas, sozinhos, eles pintam um quadro incompleto. Assim como ocorre com as métricas, as ferramentas de observabilidade devem analisar e correlacionar dados de logs com métricas e rastreios para maximizar seu valor. E, assim como as métricas, os logs aumentam significativamente o volume de dados; portanto, as empresas frequentemente devem investir em ferramentas sofisticadas de gerenciamento de logs para lidar com a carga de dados.

Além disso, o registro abrangente de eventos pode ocultar informações importantes sob dados menos relevantes, criando "ruído" que complica a identificação de problemas para a equipe de TI. É por isso que as soluções modernas de observabilidade dependem de fluxos de trabalho de automação orientados por IA e aprendizado de máquina (ML) para refinar as práticas de alertas e diferenciar entre alertas críticos e ruído.

O que são rastreios?

Os rastreios, que combinam algumas das funcionalidades de métricas e logs, mapeiam os dados entre os componentes da rede para mostrar o fluxo de trabalho de uma solicitação. Eles representam a jornada de ponta a ponta de uma solicitação pela rede, capturando o caminho e a vida útil de cada componente envolvido no processamento da solicitação. Resumindo, o rastreamento ajuda os engenheiros de confiabilidade local (SREs) e as equipes de engenharia de software a entender o "onde" e o "como" dos eventos e problemas do sistema.

Os dados de rastreio podem incluir:

  • A duração dos eventos e operações da rede
  • O fluxo de pacotes de dados que passam pela arquitetura
  • A ordem em que as solicitações atravessam os serviços de rede
  • A causa raiz dos erros do sistema

O rastreio (mais especificamente o rastreio distribuído) é útil em arquiteturas de microsserviços, onde as solicitações podem percorrer vários serviços geograficamente dispersos antes de chegar a seu destino. Ele fornece insights sobre as dependências e interações entre diferentes componentes e serviços e pode ajudar as equipes de TI a entender quanto tempo leva para os usuários concluírem ações específicas.

As funcionalidades de rastreio nas ferramentas de observabilidade são essenciais para as análises de latência, que ajudam os engenheiros a identificar componentes problemáticos e serviços com baixo desempenho, que podem criar gargalos de desempenho para os usuários.

Elas facilitam os processos de depuração, ao ilustrar fluxos de solicitação-resposta e relações causais entre elementos da rede. Além disso, durante a análise da causa raiz, os rastreios ajudam as equipes a identificar a origem dos problemas de rede em fluxos de trabalho complexos para uma resolução de problemas mais rápida e precisa.

Ao contrário de métricas e logs, os rastreios podem fornecer informações contextuais para ajudar a enriquecer os insights. No entanto, o rastreio por si só não pode revelar tendências ou padrões de dados. A configuração de rastreios distribuídos também requer instrumentação em implementações de serviços, o que pode tornar o processo especialmente complexo e demorado. E, se não for gerenciado adequadamente, o rastreio (e o poder de computação que ele exige) pode introduzir mais latência no ambiente.

Como os três pilares trabalham juntos?

A combinação dos três pilares permite que as equipes de desenvolvimento e operações tenham uma visão holística e compreensão granular do comportamento complexo do sistema. Enquanto as métricas são usadas para alertar as equipes sobre problemas, os rastreios mostram seu caminho de execução, e os logs fornecem o contexto necessário para resolvê-los.

Juntos, eles ajudam a acelerar a identificação e a resolução de problemas, oferecendo às equipes ferramentas complementares para lidar com problemas, otimizar o desempenho da rede e permitir a full stack observability.

Existem outros "pilares"?

Métricas, registros e rastreios são amplamente conhecidos como os pilares primários da observabilidade, mas isso não impede a existência de outros componentes fundamentais. Alguns argumentariam que contexto, correlação e alertas também são pilares da observabilidade.

Afinal, o contexto enriquece métricas, logs e rastreios ao fornecer informações adicionais sobre o ambiente de rede (topologia, funções de dispositivos e dependências de aplicações, por exemplo). Sem contexto, os dados de observabilidade não teriam significado praticável.

A correlação une métricas, logs, rastreios e informações contextuais para apresentar uma visão coesa dos eventos em diferentes camadas da stack de rede. E, sem alertas, as ferramentas de observabilidade não seriam capazes de enviar notificações de prompts quando surgissem problemas.

No entanto, a criação de perfis está emergindo como outra característica principal da observabilidade.

A criação de perfis (também chamada de criação de perfis contínua) é o processo de execução de uma aplicação e coleta contínua de dados detalhados sobre o estado da execução de código em momentos específicos. Por exemplo, os perfis podem revelar se os encadeamentos Java estão em um estado RUNNING ou WAIT. Ou, se um aplicativo estiver tendo problemas de vazamento de memória, os perfis podem ajudar a esclarecer qual parte do código está consumindo recursos em excesso.

Portanto, os perfis servem como raios-X sobre o funcionamento interno de componentes de sistemas únicos.

A criação de perfis é útil para identificar problemas de baixo nível, como aqueles que afetam funções individuais ou blocos de código. Ela ajuda as equipes de TI a identificar caminhos de código ocupados, localizar e descontinuar caminhos não utilizados e priorizar caminhos críticos para eventos e interações futuros.

Embora os perfis não sejam um dos três pilares, os recursos de criação de perfis evoluíram significativamente. Projetos como o Berkeley Packet Filter (eBPF) estendido para o kernel Linux simplificaram o desenvolvimento de perfis, simplificando os processos de criação de perfis para as equipes de desenvolvimento.

As equipes de desenvolvimento podem usar perfis de rastreio, amostragem e instrumentação para obter visões mais detalhadas e granulares do código das aplicações. E, quando usada junto com outros pilares da observabilidade, a criação de perfis pode fornecer insights em tempo real sobre o desempenho das aplicações, acelerar o ciclo de vida do desenvolvimento de software e ajudar as empresas a otimizar as estratégias de DevOps.

Soluções relacionadas
Observabilidade automatizada full stack

Identifique e corrija rapidamente a fonte do problema. Dados em tempo real e de alta fidelidade oferecem visibilidade total sobre os ambientes dinâmicos das aplicações e da infraestrutura.

Saiba mais sobre observabilidade full stack
Consultoria de AIOps

Eleve a automação e as operações de TI com a IA generativa, alinhando todos os aspectos da sua infraestrutura de TI com as prioridades do negócio.

Saiba mais sobre a consultoria de AIOps
IBM SevOne Network Performance Management

O IBM SevOne Network Performance Management é um software de monitoramento e análise que oferece visibilidade em tempo real e insights sobre redes complexas.

Monitorar o desempenho da rede
Dê o próximo passo

Descubra como a IA para operações de TI oferece os insights necessários para ajudar a impulsionar um desempenho excepcional nos negócios.

Explore soluções AIOps Agende uma demonstração em tempo real