mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
56 lines
1.7 KiB
ReStructuredText
Executable file
56 lines
1.7 KiB
ReStructuredText
Executable file
============
|
|
python-munin
|
|
============
|
|
|
|
This library provides helper classes for writing plugins for the server
|
|
monitoring tool Munin. It also comes with some prebuilt plugins for
|
|
various services including PostgreSQL, Memcached, and Nginx.
|
|
|
|
See http://munin.projects.linpro.no/ for more about Munin.
|
|
|
|
Source
|
|
======
|
|
|
|
You can find the latest version of python-munin at
|
|
http://github.com/samuel/python-munin
|
|
|
|
Example
|
|
=======
|
|
|
|
Example plugin (loadavg)::
|
|
|
|
#!/usr/bin/env python
|
|
|
|
import os
|
|
from vendor.munin import MuninPlugin
|
|
|
|
class LoadAVGPlugin(MuninPlugin):
|
|
title = "Load average"
|
|
args = "--base 1000 -l 0"
|
|
vlabel = "load"
|
|
scale = False
|
|
category = "system"
|
|
|
|
@property
|
|
def fields(self):
|
|
warning = os.environ.get('load_warn', 10)
|
|
critical = os.environ.get('load_crit', 120)
|
|
return [("load", dict(
|
|
label = "load",
|
|
info = 'The load average of the machine describes how many processes are in the run-queue (scheduled to run "immediately").',
|
|
type = "GAUGE",
|
|
min = "0",
|
|
warning = str(warning),
|
|
critical = str(critical)))]
|
|
|
|
def execute(self):
|
|
if os.path.exists("/proc/loadavg"):
|
|
loadavg = open("/proc/loadavg", "r").read().strip().split(' ')
|
|
else:
|
|
from subprocess import Popen, PIPE
|
|
output = Popen(["uptime"], stdout=PIPE).communicate()[0]
|
|
loadavg = output.rsplit(':', 1)[1].strip().split(' ')[:3]
|
|
return dict(load=loadavg[1])
|
|
|
|
if __name__ == "__main__":
|
|
LoadAVGPlugin().run()
|