Autor do Kapacitor aqui ...
Em expressões lambda Kapacitor, aspas simples x aspas duplas têm significados diferentes.
- As aspas simples indicam um literal de string
- As aspas duplas são uma referência a um campo ou tag dos dados.
Esta expressão .where(lambda: "type" == "percent")
diz apenas que os pontos de dados que são type
field ou tag value são iguais ao valor do campo ou tag percent
. De acordo com o err
[cpu_alert:stream1] 2016/04/28 13:00:51 E! error while evaluating WHERE expression: name "percent" is undefined. Names in scope: time,value,host,instance,type,type_instance
O campo ou tag percent
não existe.
Você precisa usar aspas simples se quiser filtrar os pontos cujo valor de tipo é igual ao percent
literal.
.where(lambda: "type" == 'percent')
O mesmo é provavelmente verdadeiro para a sua próxima expressão também.
.where(lambda: "type_instance" == 'idle')
Você também pode usar AND
expressões se desejar
.where(lambda: "type" == 'percent' AND "type_instance" == 'idle')
Quando o Kapacitor encontra várias instruções where
adjacentes, converte-as em uma expressão do And'ed sob o capô.
Veja os documentos relevantes que explicam as diferenças entre aspas link
Por que não há gravações, não posso responder sem mais contexto sobre como você tentou criar uma gravação.