mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Fix to checking metrics thresholds at the end of the break interval ($every field).
This commit is contained in:
parent
4bb8babb45
commit
3ca0333294
1 changed files with 16 additions and 5 deletions
|
@ -143,7 +143,7 @@ event Metrics::cluster_filter_request(uid: string, id: string, filter_name: stri
|
||||||
event Metrics::send_data(uid, id, filter_name, store[id, filter_name]);
|
event Metrics::send_data(uid, id, filter_name, store[id, filter_name]);
|
||||||
|
|
||||||
# Lookup the actual filter and reset it, the reference to the data
|
# Lookup the actual filter and reset it, the reference to the data
|
||||||
# currently stored will be maintained interally by the send_data event.
|
# currently stored will be maintained internally by the send_data event.
|
||||||
reset(filter_store[id, filter_name]);
|
reset(filter_store[id, filter_name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,6 +232,10 @@ event Metrics::cluster_filter_response(uid: string, id: string, filter_name: str
|
||||||
{
|
{
|
||||||
#print fmt("MANAGER: receiving results from %s", get_event_peer()$descr);
|
#print fmt("MANAGER: receiving results from %s", get_event_peer()$descr);
|
||||||
|
|
||||||
|
# Mark another worker as being "done" for this uid.
|
||||||
|
if ( done )
|
||||||
|
++done_with[uid];
|
||||||
|
|
||||||
local local_data = filter_results[uid, id, filter_name];
|
local local_data = filter_results[uid, id, filter_name];
|
||||||
for ( index in data )
|
for ( index in data )
|
||||||
{
|
{
|
||||||
|
@ -239,11 +243,18 @@ event Metrics::cluster_filter_response(uid: string, id: string, filter_name: str
|
||||||
local_data[index] = merge_result_vals(local_data[index], data[index]);
|
local_data[index] = merge_result_vals(local_data[index], data[index]);
|
||||||
else
|
else
|
||||||
local_data[index] = data[index];
|
local_data[index] = data[index];
|
||||||
}
|
|
||||||
|
|
||||||
# Mark another worker as being "done" for this uid.
|
# If a filter is done being collected, thresholds for each index
|
||||||
if ( done )
|
# need to checked so we're doing it here to avoid doubly iterating
|
||||||
++done_with[uid];
|
# over each index.
|
||||||
|
if ( Cluster::worker_count == done_with[uid] )
|
||||||
|
{
|
||||||
|
if ( check_thresholds(filter_store[id, filter_name], index, local_data[index], 1.0) )
|
||||||
|
{
|
||||||
|
threshold_crossed(filter_store[id, filter_name], index, local_data[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# If the data has been collected from all peers, we are done and ready to log.
|
# If the data has been collected from all peers, we are done and ready to log.
|
||||||
if ( Cluster::worker_count == done_with[uid] )
|
if ( Cluster::worker_count == done_with[uid] )
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue