O Prometheus é um conjunto de ferramentas de monitoramento e alerta de código aberto que cresceu em popularidade junto com o crescimento do Kubernetes. Originalmente criado no SoundCloud, o Prometheus pode rastrear as próprias raízes até um projeto de monitoramento no Google chamado Borgmon.
O Prometheus é o principal proponente da coleta de métricas dos aplicativos e da infraestrutura usando um modelo baseado em pull. Isso significa que o Prometheus enviará periodicamente uma solicitação aos seus destinos, e as métricas coletadas serão armazenadas em um banco de dados de série temporal. Em instâncias autogerenciadas do Prometheus, forneça a infraestrutura para coletar, armazenar e consultar as métricas. Nas versões gerenciadas do Prometheus, um fornecedor fornece toda a infraestrutura e um contrato de nível de serviço (SLA, na sigla em inglês) para o tempo de atividade do serviço.
O Prometheus fornece uma linguagem de consulta chamada PromQL para consultar dados da série temporal. Há muitos projetos que utilizam o PromQL, incluindo o Grafana e o Alertmanager, para ajudar com tarefas analíticas e operacionais, como visualização de dados, criação de alertas e escalonamento da infraestrutura de monitoramento.
O Prometheus é usado para coletar métricas dos aplicativos e da infraestrutura. Essas métricas podem ser usadas para rastrear a integridade dos sistemas, identificar possíveis problemas e resolvê-los.
Conheça alguns dos benefícios específicos do uso do Prometheus:
O Prometheus usa um modelo de pull para coletar métricas, o que significa que o servidor Prometheus pesquisa os sistemas ou aplicativos que está monitorando para métricas. Isso é diferente do modelo de push, usado por muitos outros sistemas de monitoramento, em que você modifica o código do aplicativo para enviar métricas ao servidor periodicamente.
O modelo de pull não requer que os sistemas ou aplicativos que estão sendo monitorados estejam cientes do servidor Prometheus. Portanto, ele pode ser adicionado a um sistema de monitoramento sem fazer alterações no código do aplicativo. O modelo de pull só coleta métricas quando elas são necessárias. Portanto, o Prometheus não desperdiça recursos ao coletar métricas que não estão sendo usadas.
Além disso, o Prometheus pode descobrir automaticamente origens de dados por meio dos seguintes meios:
Depois que o Prometheus descobre um recurso, ele analisa o recurso periodicamente para ver as métricas. As métricas são armazenadas no banco de dados do Prometheus, onde podem ser consultadas e visualizadas.
O PromQL é uma linguagem de consulta eficiente e flexível para as métricas coletadas pelo Prometheus, que pode ser usada para criar gráficos, tabelas e alertas ad hoc.
O PromQL usa uma linguagem de consulta funcional que permite ao usuário selecionar e agregar dados de série temporal em tempo real. O resultado de uma expressão pode ser mostrado como um gráfico, visualizado como dados tabulares no navegador de expressão do Prometheus ou consumido por sistemas externos por meio da API HTTP.
Veja alguns dos usos que o Prometheus e o PromQL podem ser usados:
Conheça alguns exemplos de consultas PromQL:
Para ver o uso médio da CPU por segundo de um aplicativo específico, use a seguinte consulta:
Para saber o número de solicitações feitas a um endpoint específico, use a seguinte consulta:
Para ver o número total de erros retornados de um endpoint específico, use a seguinte consulta: