Skip to content

3.0.0-rc1

Pre-release
Pre-release

Choose a tag to compare

@RincewindsHat RincewindsHat released this 02 Dec 14:27
· 5 commits to master since this release

Almost time for a new Monitoring Plugins release

This is a pre release since there are a lot of changes and we would like to give peope some time for testing and to find the new bugs :-)

The core parts of this release are significant changes to the C part of this project, which should be mostly internal and
not change the results in a significant way (meaning the input parameters mostly stay as they are and the exit code should remain the
same if the parameters are the same in the old version and context did not change).
The reality is, that big changes have unintented consequences which are not covered in the test cases or some consequences were not in our scope at all.
Therefore the pre release.

What has changed?

The broad picture

The relevant changes were done in the C part mostly and were introduced to make working on the project easier.
The code is now uniformly formatted with clang-format (config file is in this repository) and a lot of refactoring went into getting more uniform and ideal "dumber" code (meaning easier to read and to think about).
Also some steps were taken to
get to a uniform code base regarding the output.

The idea here is, that each run of a Monitoring Plugin consists of one or more individual "tests" which are summed to present
the overall result state. These "tests" can either be dependent on each other (if one can not connect to a server via network, building a TLS connection and building a HTTP exchange after that is not possible) or independent of each other (check_disk tests different filesystems independently).
This idea was inspired by some other Monitoring Plugins and feel like a good abstraction for the use case.
The consequence is, that there are now data structures which contain individual tests (a test result like OK or CRITICAL , some output and the perfdata part) and they are put together when everything else is done.

Practically the output is not anymore generated by each plugin individually, but centrally by a library (at least for those plugins which were already migrated to that new structure).
This allows to format the ouptut on stdout centrally, currently there is only the default format and an experimental JSON ouptut format (for testing purposes! not stable!).

Plugins with the new output

These Plugins are already migrated:

  • check_apt
  • check_by_ssh
  • check_cluster
  • check_curl
  • check_dbi
  • check_disk
  • check_ftp
  • check_http
  • check_imap
  • check_jabber
  • check_ldap
  • check_mrtg
  • check_mrtgtraf
  • check_mysql
  • check_mysql_query
  • check_nntp
  • check_nntps
  • check_ntp
  • check_ntp_peer
  • check_ntp_time
  • check_pgsql
  • check_pop
  • check_simap
  • check_smtp
  • check_snmp
  • check_spop
  • check_ssh
  • check_ssmtp
  • check_swap
  • check_tcp
  • check_udp
  • check_users

What else changed?

Of course some bugfixes and even small features found their way into the code, too

check_curl

check_snmp

check_snmp links directly agains net-snmp instead of executing snmpget and parsing the output.

check_dig

  • check_dig: add -E/--require-flags and -X/--forbid-flags by @Decstasy in #2165

general changes regarding the Plugins and the library

Deprecations and removals

check_http

check_http is now deprecated and check_curl should be used as a replacement. The options are mostly identical, although for some cases the 1:1 migration is not possible. check_http is regarded as dead weight now and not maintained anymore.

check_nwstat

This Plugin has lost its purpose over time, there is not much stuff from Novell around. Therefore this Plugin was also removed to reduce ressource consumption and complexity in the project.

check_ntp

check_ntp has be deprecated for ages. Same arguments as above.

New Contributors

Special thanks

Some special thanks are due to nlnet, which granted us one BlueHats prize
some time ago. We are greatful for that and the prize money made it possible to free up some ressources to put more work
in to this very project.

Full Changelog: v2.4.0...v3.0.0-rc1