Nagios

check_welle-cli

Description:

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).

Current Version

1.0

Last Release Date

2021-01-02

Compatible With

  • Nagios 4.x

Owner

License

Other


Project Files
Project Notes
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.
Reviews (0) Add a Review
Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
0 (0)
Favorites
0
Views
3,189