The user scripts configuration can now be configured from the "User Scripts" entry under the cog
icon. It allows the creation of multiple configuration presets to be applied to hosts, networks and
interfaces.
Plugins are a convenient way to group together related lua scripts.
Their primary use case is to group user scripts and their alert/status
definition.
The builtin ntopng user scripts and definitions are now
packed into plugins directories. In future, we will support loading of
user created plugins.
Plugins are loaded at startup into some runtime directories and then
used. Other changes provided by this commit include:
- Add sample flow logger plugin
- Initial support for system user scripts
- Rename edge to threshold
- Migrate system probes to user scripts/plugins
- Migrate scripts to more explicit alerts_api.checkThresholdAlert api
NOTE: The existing alerts configuration of the users will be discarded.
Some code has been added to make the current gui on/off toggle work.
It is marked with the following comment:
-- TODO remove after implementing the new gui
- Add title label in hash table utilization gauges
- List Hash Tables charts and Periodic Activities charts in a single page
- Replace Periodic Activities max duration column with time utilization percentage
- Add api to add a straight line in the charts
- Show max duration time as a straight line in Periodic Activities charts
- Move dropped flow calls charts to the Peridic Activities page
- Fix expert view number of calls 0
- Fix interface/host/network trigger alert label
- Move chart icon to separate column in redis and influxdb pages
- Fix interface menu selection in Hash Tables and Periodic Activities
- Highlight issues with a warning triangle in Hash Tables and Periodic Activities
- Fix some page navigation issues with extra_params
- Fix wrong schema graph options passed to nv_graph_utils
This provides a ~10x speedup by performing the JSON serialization work in C
(and thus avoiding Lua->C overhead). This also implements two in-memory alerts
queues (one for sqlite and one for the notifications) in order to reduce Redis load.
Alerts queue are now global instead of per-interface as there is only 1 dequeing thread.