Package: wnpp Severity: wishlist Owner: deb...@thola.io * Package name : golang-github-inexio-go-monitoringplugin Version : 0.0~git20201117.ec06ef4-1 Upstream Author : inexio * URL : https://github.com/inexio/go-monitoringplugin * License : BSD-2-clause Programming Lang: Go Description : Golang package for writing monitoring check plugins for nagios, icinga2, zabbix, etc.
go-monitoringplugin Go Report Card (https://goreportcard.com/report/github.com/inexio/go-monitoringplugin) GitHub license (https://github.com/inexio/go-monitoringplugin/blob/master/LICENSE) Description Golang package for writing monitoring check plugins for nagios (https://www.nagios.org/), icinga2 (https://icinga.com/), zabbix (https://www.zabbix.com/), checkmk (https://checkmk.com/), etc. The package complies with the Monitoring Plugins Development Guidelines (https://www.monitoring-plugins.org/doc/guidelines.html). Example / Usagepackage main . import ( monitoringplugin "github.com/inexio/go-monitoringplugin" ) . func main() { //Creating response with a default ok message that will be displayed when the checks exits with status ok response := monitoringplugin.NewResponse("everything checked!") . //Set output delimiter (default is \n) //response.SetOutputDelimiter(" / ") . //updating check plugin status and adding message to the ouput (status only changes if the new status is worse than the current one) response.UpdateStatus(monitoringplugin.OK, "something is ok!") //check status stays ok response.UpdateStatus(monitoringplugin.CRITICAL, "something else is critical!") //check status updates to critical response.UpdateStatus(monitoringplugin.WARNING, "something else is warning!") //check status stays critical, but message will be added to the output . . //adding performance data err := response.AddPerformanceDataPoint(monitoringplugin.NewPerformanceDataPoint("response_time", 10, "s").SetWarn(10).SetCrit(20).SetMin(0)) if err != nil { //error handling } err = response.AddPerformanceDataPoint(monitoringplugin.NewPerformanceDataPoint("memory_usage", 50, "%").SetWarn(80).SetCrit(90).SetMin(0).SetMax(100)) if err != nil { //error handling } . response.OutputAndExit() /* exits program with exit code 2 and outputs: CRITICAL: something is ok! something else is critical! something else is warning! | 'response_time'=10s;10;20;0; 'memory_usage'=50%;80;90;0;100 */ }