Aplicar Função rate e Filtros de Label
Nesta etapa, você refinará sua consulta usando filtros de rótulos e a função rate() para obter dados mais significativos. O valor bruto de um contador geralmente não é útil; geralmente estamos mais interessados em sua taxa de variação.
Primeiro, vamos filtrar os resultados para ver apenas o tempo de CPU gasto no modo idle. Você pode fazer isso adicionando um seletor de rótulo entre chaves {} à sua consulta.
- Insira a seguinte consulta no Navegador de Expressões e execute-a:
node_cpu_seconds_total{mode="idle"}
Esta consulta agora retorna apenas as séries temporais onde o rótulo mode é exatamente idle.
Em seguida, vamos calcular a taxa de variação por segundo para este contador. Para isso, usamos a função rate(). A função rate() precisa saber em qual período de tempo calcular a taxa. Especificamos isso com um seletor de vetor de intervalo (range vector selector), como [5m] para os últimos 5 minutos.
- Agora, modifique sua consulta para envolvê-la na função
rate() e adicione um seletor de intervalo de 5 minutos. Execute a consulta final:
rate(node_cpu_seconds_total{mode="idle"}[5m])
Vamos detalhar esta consulta avançada:
node_cpu_seconds_total{mode="idle"}: Este é o seletor de vetor instantâneo (instant vector selector) que filtra nossa métrica e rótulo desejados.
[5m]: Este é o seletor de intervalo (range selector), que informa ao Prometheus para obter todos os pontos de dados dos últimos 5 minutos para as séries temporais selecionadas.
rate(...): Esta é a função que pega o intervalo de 5 minutos de dados e calcula a taxa média por segundo na qual o contador aumentou.
O resultado não é mais um valor de contador grande, mas um valor tipicamente entre 0 e 1 (para um único núcleo de CPU). Um valor de 0.95 significaria que, nos últimos 5 minutos, a CPU esteve, em média, 95% ociosa. Esta é uma informação muito mais útil para monitoramento.