Filtros e Funções
O que são filtros?
Filtros são métodos que permitem selecionar ou buscar elementos dentro de listas (arrays) baseados em condições específicas. No nosso template, temos dois filtros principais:
- filter(chave=valor): retorna uma lista (array) com todos os itens que possuem a chave com o valor especificado.
- find(chave=valor): retorna o primeiro item que atende à condição especificada.
Esses filtros ajudam a extrair dados específicos de listas complexas, como Alert ou interfaces.
Sintaxe Básica
${obj.caminho}
${obj[index].propriedade}
${obj.filter(chave=valor)[-1].propriedade}
${obj.find(chave=valor).propriedade}
${função(chave)}
Exemplos com Alert
| Expressão | Descrição |
|---|---|
${Alert[0].message} | Primeira mensagem de alerta. |
${Alert[-1].message} | Última mensagem de alerta. |
${Alert.filter(severity=info)[-1].message} | Último alerta com severidade info. |
${Alert.filter(resolved=false).length} | Total de alertas não resolvidos. |
${Alert.find(severity=height).message} | Primeiro alerta com severidade height. |
Exemplos com interfaces
| Expressão | Descrição |
|---|---|
${interfaces[0].ip} | IP da primeira interface. |
${interfaces.find(ip=192.168.63.185).type} | Tipo da interface com IP específico. |
${interfaces.filter(isAvailable=true)[0].ip} | IP da primeira interface ativa. |
${interfaces.filter(type=agent)[-1].ip} | IP da última interface do tipo "agent". |
Funções de Métricas (agent.item)
Funções disponíveis
| Função | Descrição |
|---|---|
last(key) | Retorna o último valor da métrica. |
avg(key) | Calcula a média dos valores da métrica. |
min(key) | Retorna o menor valor da métrica. |
max(key) | Retorna o maior valor da métrica. |
count(key) | Retorna a quantidade total de valores da métrica. |
sum(key) | Retorna a soma total dos valores da métrica. |
Exemplos
| Expressão | Descrição |
|---|---|
${last(cpu.load)} | Última leitura da carga da CPU. |
${avg(mem.usage)} | Média de uso de memória. |
${max(disk.usage)} | Valor máximo de uso de disco. |
${count(net.tx)} | Quantidade de registros de tráfego de saída. |
${sum(net.tx)} | Total de tráfego de saída somado. |
Dicas Avançadas
[-1]acessa o último item de uma lista.filter(...)retorna uma lista. Use[index]ou.propriedadepara acessar elementos.find(...)retorna o primeiro item que bate com o filtro.- É possível combinar filtros com funções:
${last(cpu.load)}
${Alert.filter(severity=height)[-1].message}
${interfaces.find(ip=192.168.1.10).type}