Skip to main content

Class library for writing monitoring (Nagios/Icinga) plugins

Project description

This is a fork of the nagiosplugin. Changes:

  • Drop support for Python versions 3.9 and below

  • Add type hints

  • Remove deprecated code: ScalarResult

  • Rename all four service state objects to lower-class names. For example, Ok was renamed to ok, and so on

  • Rename the warning state from warn to warning

  • Export the class ServiceState

  • Convert all namped tuples in classes (Metric, Performance, ServiceState)

  • Remove compat.py

  • Replace the result_cls attribute with a result method

  • Add helper methods ok(), warning(), critical(), unknown() in Context

  • Add the setup_argparse function

  • Add the timespan() function to convert time interval strings, such as 2h30min, into seconds.

  • Merge all code into a single source file,

  • Merge the entire code base into a single file to make it easier to embed the code in a monitoring plugin instead of importing it. This allows a plugin to be implemented without dependencies.

About

mplugin is a Python class library which helps writing Nagios or Icinga compatible plugins easily in Python. It cares for much of the boilerplate code and default logic commonly found in monitoring checks, including:

  • Monitoring Plugin API compliant parameters and output formatting

  • Full monitoring range syntax support

  • Automatic threshold checking

  • Multiple independend measures

  • Custom status line to communicate the main point quickly

  • Long output and performance data

  • Timeout handling

  • Persistent “cookies” to retain state information between check runs

  • Resume log file processing at the point where the last run left

  • No dependencies beyond the Python standard library.

mplugin runs on POSIX and Windows systems. It is compatible with and Python 3.10 and later.

Feedback and Suggestions

mplugin is currently maintained by Josef Friedrich <josef@friedrich.rocks>. A public issue tracker can be found at <https://github.com/Josef-Friedrich/mplugin/issues> for bugs, suggestions, and patches.

License

The mplugin package is released under the Zope Public License 2.1 (ZPL), a BSD-style Open Source license.

Documentation

Comprehensive documentation is available online. The examples mentioned in the tutorials can also be found in the examples directory of the source distribution.

Acknowledgements

mplugin was originally written and maintained by Christian Kauhaus <kc@flyingcircus.io>. Additional contributions from the community are acknowledged in the file CONTRIBUTORS.txt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mplugin-2.0.0.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mplugin-2.0.0-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file mplugin-2.0.0.tar.gz.

File metadata

  • Download URL: mplugin-2.0.0.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mplugin-2.0.0.tar.gz
Algorithm Hash digest
SHA256 80af0c4aa67c1520426764853248583b4c325f3eed4053c13160986cd3c4af47
MD5 0b539ee3a6fdf4fe6ca7fbec888af95b
BLAKE2b-256 edc13f586437f02a21a4b83a9964840b9826a90469ada3e0d72ddd43024a63ab

See more details on using hashes here.

File details

Details for the file mplugin-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: mplugin-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mplugin-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e550898316828cd1b763e4c424579376d511e32a4dd290315a3bc12a3f21b750
MD5 a2a4c9aa4590ba03f17ddd5607bb999a
BLAKE2b-256 bef23ab0dd405276c225f1ac9520bf01a21535323b2e48411ef821109025b8a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page