Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Directory Tree

check_welle-cli

Rating
0 votes
Favoured:
0
Current Version
1.0
Last Release Date
2021-01-02
Compatible With
  • Nagios 4.x
Owner
License
Other
Hits
3257
Files:
FileDescription
check_welle-cli.pycheck_welle-cli.py
Nagios CSP

Meet The New Nagios Core Services Platform

Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.

Monitoring Made Magically Better

  • Nagios Core on Overdrive
  • Powerful Monitoring Dashboards
  • Time-Saving Configuration Wizards
  • Open Source Powered Monitoring On Steroids
  • And So Much More!
This check reads the json output of welle-cli (Part of welle.io, a SDR DAB+ receiver) and checks if the audio of the selected DAB+ service (sid) is present at some level, along with some other DAB+ service parameters (bitrate, allotment, snr, dls).
This is a Python script. Python3 is needed.

These are the commandline parameters:
-hShows this help
Mandatory
--sidService ID (SID). E.g. 0x8064
--url The url to open. E.g. http://ip_of_welle_cli/
--file For testing purposes, to open a json file. E.g. file:///c:/path/to/
(--url or --file is mandatory)
Optional
--audio_low_warnAudio warning level threshold in dBFS. If audio is BELOW this threshold then a warning state is returned. E.g. -40.0
--audio_low_critSame, but for critical level
--audio_high_warnAudio warning level threshold in dBFS. If audio is ABOVE this threshold then a warning state is returned. E.g. -3.5
--audio_high_critSame, but for critical level
--time_secs_warnDefine the max age threshold in seconds of the last audio update before a warning state is returned. E.g. 60
--time_secs_critSame, but for critical level
--bitrate_warnDefine the bitrate warning threshold in kbps. E.g. 71 (a 72 kbps stream will return OK then)
--bitrate_critSame, but for critical level
--dls_secs_warnDefine the max age threshold in seconds of the last Dynamic Label Segment (DLS) update before a warning state is returned. E.g. 3600
--dls_secs_critSame, but for critical level
--snr_warnDefine the Signal to Noise Ratio (SNR) when a warning state is returned. E.g. 6.0
--snr_critSame, but for critical level
--channelSet welle-cli to this channel. E.g. 7B. If this parameter is not set, the current welle-cli channel is used to find the SID. If welle-cli needs to switch channels then this function might take several seconds waiting for welle-cli to demux the mux on that channel
--channelupdateTest mode. If set, the channel will always be updated to welle-cli, regardless if a real change of the channel is needed
--verboseTest mode. Verbose output


Example command definition:
# This command will check:
# 1. If the audio level is above -40 dBFS and below -3.3 dBFS.
# 2. If the audio level is updated less than 60 seconds ago.
# 3. If the bitrate is above 71 kbps.
# 4. If the dls is updated less then 1 hour ago.
define command{
command_name check_welle-cli
command_line $USER1$/check_welle-cli.py --url $ARG1$ --sid=$ARG2$ --audio_low_crit=-40 --audio_high_crit=-3.3 --time_secs_crit=60 --bitrate_crit=71 --dls_secs_crit=3600
}


Example service definition:
# This service will do the check for DAB+ service id 0x8064 on the DAB+ allotment where welle-cli is currently tuned into.
define service{
use generic-service
host_name dabreceiver
service_description Check RSM DAB+
check_command check_welle-cli!http://192.168.1.45/!0x8064
}


Example output:
OK - DAB+ Service 0x8064 (RSM) has audiolevel -5.3 dBFS at bitrate 72 kbps. Audiolevel updated 2 seconds ago at: 2021-01-05 17:08:57. DLS updated 11 seconds ago at: 2021-01-05 17:08:48. SNR: 7.0. Channel: 7B.