Skip to main content

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ãoDescriçã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ãoDescriçã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çãoDescriçã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ãoDescriçã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 .propriedade para 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}