[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#981565: ITP: golang-github-inexio-go-monitoringplugin -- Golang package for writing monitoring check plugins for nagios, icinga2, zabbix, etc.



Package: wnpp
Severity: wishlist
Owner: debian@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 */
 }


Reply to: