mirror of
https://github.com/netdata/netdata.git
synced 2025-04-23 04:50:22 +00:00

* apache units fix * beanstalk * bind_rndc * boinc * ceph * chrony * couchdb * dns_query * dnsdist * dockerd * dovecot * elasticsearch by @vlvkobal <3 * example * exim * fail2ban * freeradius minor fixes * freeradius minor fixes * freeradius minor fixes * go_expvar * haproxy * hddtemp * httpcheck * icecast * ipfs * isc_dhcpd * litespeed * logind * megacli * memcached * mongodb * monit * mysql * nginx * nginx_plus * nsd * ntpd * nvidia_smi * openldap * ovpn_status * phpfm * portcheck * postfix * postgres * powerdns * proxysql * puppet * rabbitmq * redis * restroshare * samba * sensors * smartdlog * spigotmc * springboot * squid * retroshare * tomcat * retroshare * tor * traefik * traefik * unbound * uwsgi * varnish * w1sensor * web_log * ok codacy * retroshare * ipfs
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Description: postfix netdata python.d module
|
|
# Author: Pawel Krupa (paulfantom)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
from bases.FrameworkServices.ExecutableService import ExecutableService
|
|
|
|
POSTQUEUE_COMMAND = 'postqueue -p'
|
|
|
|
ORDER = [
|
|
'qemails',
|
|
'qsize',
|
|
]
|
|
|
|
CHARTS = {
|
|
'qemails': {
|
|
'options': [None, 'Postfix Queue Emails', 'emails', 'queue', 'postfix.qemails', 'line'],
|
|
'lines': [
|
|
['emails', None, 'absolute']
|
|
]
|
|
},
|
|
'qsize': {
|
|
'options': [None, 'Postfix Queue Emails Size', 'KiB', 'queue', 'postfix.qsize', 'area'],
|
|
'lines': [
|
|
['size', None, 'absolute']
|
|
]
|
|
}
|
|
}
|
|
|
|
|
|
class Service(ExecutableService):
|
|
def __init__(self, configuration=None, name=None):
|
|
ExecutableService.__init__(self, configuration=configuration, name=name)
|
|
self.order = ORDER
|
|
self.definitions = CHARTS
|
|
self.command = POSTQUEUE_COMMAND
|
|
|
|
def _get_data(self):
|
|
"""
|
|
Format data received from shell command
|
|
:return: dict
|
|
"""
|
|
try:
|
|
raw = self._get_raw_data()[-1].split(' ')
|
|
if raw[0] == 'Mail' and raw[1] == 'queue':
|
|
return {'emails': 0,
|
|
'size': 0}
|
|
|
|
return {'emails': raw[4],
|
|
'size': raw[1]}
|
|
except (ValueError, AttributeError):
|
|
return None
|