PATH:
usr
/
local
/
lib
/
python3.9
/
site-packages
/
agent360
/
plugins
#!/usr/bin/env python # -*- coding: utf-8 -*- #from past.builtins import basestring # pip install future try: from urllib.parse import urlparse, urlencode from urllib.request import urlopen, Request from urllib.error import HTTPError except ImportError: from urlparse import urlparse from urllib import urlencode from urllib2 import urlopen, Request, HTTPError import sys import time import plugins import json class Plugin(plugins.BasePlugin): __name__ = 'phpfpm' def run(self, config): ''' php-fpm status page metrics ''' def ascii_encode_dict(data): ascii_encode = lambda x: x.encode('ascii') if isinstance(x, unicode) else x return dict(map(ascii_encode, pair) for pair in data.items()) results = dict() next_cache = dict() my_pools = config.get(__name__, 'status_page_url').split(',') prev_cache = self.get_agent_cache() # Get absolute values from previous check for pool in my_pools: request = Request(pool) raw_response = urlopen(request) try: data = raw_response.read().decode('utf-8') # pprint.pprint(data) if sys.version_info >= (3,): j = json.loads(data) else: j = json.loads(data, object_hook=ascii_encode_dict) results[j['pool']] = {} next_cache['%s_ts' % j['pool']] = time.time() for k, v in j.items(): results[j['pool']][k.replace(" ", "_")] = v next_cache['%s_accepted_conn' % j['pool']] = int(results[j['pool']]['accepted_conn']) except Exception as e: return e try: if next_cache['%s_accepted_conn' % j['pool']] >= prev_cache['%s_accepted_conn' % j['pool']]: results[j['pool']]['accepted_conn_per_second'] = \ (next_cache['%s_accepted_conn' % j['pool']] - prev_cache['%s_accepted_conn' % j['pool']]) / \ (next_cache['%s_ts' % j['pool']] - prev_cache['%s_ts' % j['pool']]) else: # Was restarted after previous caching results[j['pool']]['accepted_conn_per_second'] = \ next_cache['%s_accepted_conn' % j['pool']] / \ (next_cache['%s_ts' % j['pool']] - prev_cache['%s_ts' % j['pool']]) except KeyError: # No cache yet, can't calculate results[j['pool']]['accepted_conn_per_second'] = 0.0 # Cache absolute values for next check calculations self.set_agent_cache(next_cache) return results if __name__ == '__main__': Plugin().execute()
[-] wp-toolkit.py
[open]
[+]
..
[-] plugins.py
[open]
[-] yum-updates.py
[open]
[-] proftpd.py
[open]
[-] sleeper.py
[open]
[-] network.py
[open]
[+]
__pycache__
[-] bird.py
[open]
[-] diskusage.py
[open]
[-] exim.py
[open]
[-] cpanel.py
[open]
[-] loggedin.py
[open]
[-] memory.py
[open]
[-] megacli.py
[open]
[-] phpfpm.py
[open]
[-] rabbitmq.py
[open]
[-] elasticsearch.py
[open]
[-] mysql.py
[open]
[-] iostat.py
[open]
[-] plesk-cgroups.py
[open]
[-] fail2ban.py
[open]
[-] loadavg.py
[open]
[-] dirsize.py
[open]
[-] openvpn.py
[open]
[-] apt-updates.py
[open]
[-] postfix.py
[open]
[-] diskstatus.py
[open]
[-] tcpports.py
[open]
[-] haproxy.py
[open]
[-] ping.py
[open]
[-] unbound.py
[open]
[-] dovecot.py
[open]
[-] memcached.py
[open]
[-] bitninja.py
[open]
[-] powerdns.py
[open]
[-] mailq.py
[open]
[-] gpu.py
[open]
[-] system.py
[open]
[-] cloudlinux.py
[open]
[-] cpu_freq.py
[open]
[-] janus.py
[open]
[-] nginx.py
[open]
[-] bind.py
[open]
[-] cpu.py
[open]
[-] litespeed.py
[open]
[-] swap.py
[open]
[-] temp.py
[open]
[-] kamailio.py
[open]
[-] httpd.py
[open]
[-] diskstatus-nvme.py
[open]
[-] process.py
[open]
[-] mongodb.py
[open]
[-] __init__.py
[open]
[-] minecraft.py
[open]
[-] docker.py
[open]
[-] vms.py
[open]
[-] asterisk.py
[open]
[-] redis_stat.py
[open]
[-] mdstat.py
[open]
[-] cloudlinux-dbgov.py
[open]
[-] diskinodes.py
[open]