Hello.
I use tickscript for alerts. Tickscript works fine but undesired error logs are in excess.
lvl=error msg=“failed to evaluate WHERE expression” service=kapacitor task_master=main task=Alert node=alert6 err=“left reference value "beanTopic" is missing value”
Every time I use |log().quiet(), this error says it comes from a different node but still supplies the same error until eventually it says the error is coming from the lognode itself.
lvl=error msg=“failed to evaluate WHERE expression” service=kapacitor task_master=main task=Alert node=log8 err=“left reference value "beanTopic" is missing value”
I have also tried adding AND isPresent(“beanTopic”) to the working wherefilter.
var data = stream
|from()
.database(db)
.retentionPolicy(rp)
.measurement(measurement)
.groupBy(groupBy)
.where(whereFilter)
|log()
.quiet()
|window()
.period(period)
.every(every)
.align()var trigger = data
|deadman(threshold, period)
.message(message)
.id(idVar)
.idTag(idTag)
.levelTag(levelTag)
.messageField(messageField)
.durationField(durationField)
.details(details)
.stateChangesOnly()|log() .quiet()
DOT:
digraph Alert {
graph [throughput=“121.01 points/s”];stream0 [avg_exec_time_ns=“0s” errors=“0” working_cardinality=“0” ];
stream0 → from1 [processed=“40944”];from1 [avg_exec_time_ns=“14.708µs” errors=“237” working_cardinality=“0” ];
from1 → log2 [processed=“1206”];log2 [avg_exec_time_ns=“60.969µs” errors=“0” working_cardinality=“0” ];
log2 → window3 [processed=“1206”];
AND
isPresent(“beanTopic”)
window3 [avg_exec_time_ns=“6.04µs” errors=“0” working_cardinality=“39” ];
window3 → noop5 [processed=“273”];noop5 [avg_exec_time_ns=“0s” errors=“0” working_cardinality=“0” ];
stats4 [avg_exec_time_ns=“471.439µs” errors=“0” working_cardinality=“0” ];
stats4 → derivative6 [processed=“118”];derivative6 [avg_exec_time_ns=“3.078µs” errors=“0” working_cardinality=“40” ];
derivative6 → alert7 [processed=“78”];alert7 [alerts_inhibited=“0” alerts_triggered=“0” avg_exec_time_ns=“10.198µs” crits_triggered=“0” errors=“0” infos_triggered=“0” oks_triggered=“0” warns_triggered=“0” working_cardinality=“39” ];
alert7 → log8 [processed=“0”];log8 [avg_exec_time_ns=“0s” errors=“0” working_cardinality=“0” ];
}
I recognize that the beanTopic is not present for some points that are published. This is actually fine. But I am unable to reduce the logs. Can Kapacitor disable logs for a single alert altogether? The only alternative I see is to modify the actual application delivering points to submit those without the desired tag to a different measure to avoid this issue.