Hi,
Please let me know how I can do this
@999cgm, welcome to the community!
Here are three key concepts in NetBeez:
- Alerts: Triggered when specific alert conditions are met. These conditions are assessed on a per-test basis.
- Incidents: Triggered when alerting thresholds surpass a per-entity limit, such as Agent, Target, or Wifi network.
- Notifications: Sent to configured channels (e.g., email, Slack, Splunk, MS Teams, Pagerduty) when an Alert or Incident is activated.
For Incidents, Agent and Wifi incidents are assessed on a per test-type basis (e.g., all ping tests are grouped). However, Target incidents are evaluated on a per-test-template basis (e.g., all ping tests to google.co.uk are grouped separately from those to google.com).
From your query, it seems you want to tally tests of a target on a per test-type basis, as done for Agents and Wifi, and apply this only for specific targets, retaining the default functionality for others.
Currently, our frontend doesn’t offer this feature. However, I discovered it’s feasible via the backend. If you’re acquainted with our backend, follow these steps:
Step 1: Establish a new Target Incident Detector for per-test-type incident evaluation.
Enter the rails console:
# as root:
$ dxec docker-compose_nb-api_1 bundle exec rails c
then within the console:
> incident_detector = IncidentDetector.create(name: "Target Incident Detector by TestType", threshold_mix: {merge: [{filter: [{filter: [{var:""},{'==':[{var:"test_type_id"}, 1]}]}, {'>=': [{var:"percentage_alerting"}, 0.8]}]}, {filter: [{filter: [{var:""},{'==':[{var:"test_type_id"}, 2]}]}, {'>=': [{var:"percentage_alerting"}, 0.8]}]}, {filter: [{filter: [{var:""},{'==':[{var:"test_type_id"}, 3]}]}, {'>=': [{var:"percentage_alerting"}, 0.8]}]}, {filter: [{filter: [{var:""},{'==':[{var:"test_type_id"}, 4]}]}, {'>=': [{var:"percentage_alerting"}, 0.8]}]}]}, group_by_clause: ["test_type_id"], incident_reporting_entity_type: "NbTarget")
> incident_detector.id
=> 4
This command provides the id for the incident detector, activating when 80% of similar tests signal an alert.
Step 2: Modify the Incident Detector for the desired target.
> target = NbTarget.find_by_name("My target name")
> target.incident_detector_instances.last.update(incident_detector_id: 4)
Step 3: Reboot the message server service to apply the change.
$ nb-docker-compose up -d --force-recreate --no-deps nb-msgsrv nb-commsrv
If you need assistance, DM me or submit a support ticket. We’re here to help.
Regards,
Panickos