You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reworked the way that normal events are recorded: The decision as to whether to record a normal event is now made by the Anomalies class rather than by each ADOutlier derived class. Now all outlier algorithms will always have the normal event with the lowest score recorded, rather than just for HBOS
Added dedicated unit tests for Anomalies class
Anomalies class checks inserted events have the expected label (had to fix a lot of unit tests!)
The number of normal events in the Chimbuko log output now reflects the total number of normal events and not just the selection that were recorded
Disabled the ADMonitoring check that counters are on thread 0 because a recent TAU change has made this no longer true!
std::vector<CallListIterator_t> m_all_outliers; /**< Array of outliers */
42
-
std::unordered_map<unsignedlong, std::vector<CallListIterator_t> > m_func_outliers; /**< Map of function index to associated outliers */
43
-
44
57
std::vector<CallListIterator_t> m_all_normal_execs; /**< Array of normal executions (the algorithm will capture a limited number of these for comparison with outliers)*/
45
-
std::unordered_map<unsignedlong, std::vector<CallListIterator_t> > m_func_normal_execs; /**< Map of function index to associated normal executions */
58
+
std::unordered_map<unsignedlong, size_t> m_func_normal_exec_idx; /**< Map of function index to the index of the array entry containing the normal execution recorded for that function*/
59
+
60
+
size_t m_n_events_total; /**< Total number of events analyzed (both recorded and unrecorded)*/
if(anom_it->get_exclusive() < m_min_anom_time) continue; //skip executions with too short runtimes to avoid filling the database with irrelevant anomalies
if(cd.get_tid() != 0) recoverable_error("Expected counter to be on thread 0!");
60
+
//if(cd.get_tid() != 0) recoverable_error("Expected counter to be on thread 0! Info: "+ cd.get_json().dump()); //This doesn't seem to be true any more because Kevin made changes to the monitoring plugin
61
61
entry.value = cd.get_value();
62
62
entry.assigned = true;
63
63
m_timestamp = cd.get_ts(); //overwrite timestamp of update (all monitoring data in a dump should arrive at the same time)
}elseif(event->get_outlier_score() < m_all_normal_execs[eit->second]->get_outlier_score()){ //Replace the existing normal execution if the current has a lower score
0 commit comments