HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //usr/lib/python2.7/site-packages/lap/failed_migration.py
#!/usr/bin/python
from pymongo import MongoClient
from pymongo import MongoClient
import redis
import datetime
from datetime import timedelta

def migration_report():
    client = MongoClient()
    db = client.mrq
    failed = db.mrq_jobs.find({"status": "failed"}).count()
    success = db.mrq_jobs.find({"status": "success"}).count()
    started = db.mrq_jobs.find({"status": "started"}).count()
    queued = db.mrq_jobs.find({"status": "queued"}).count()

    perfdata = []
    perfdata.append(("failed", str(failed) ))
    perfdata.append(("success", str(success) ))
    perfdata.append(("started", str(started) ))
    perfdata.append(("queued", str(queued) ))

    perfdata = "|".join([ "=".join(x) for x in perfdata])

    return perfdata

def __run__(params):
    prfdata = migration_report()
    r = redis.Redis()
    client = MongoClient()
    db = client.mrq
    dt = datetime.datetime.now()
    key = "error:%s:%s:%s:%s" % (dt.year,dt.month,dt.day,dt.hour)
    error   = int(db.mrq_jobs.find({"status": "failed"}).count())
    r.set(key,error)
    r.expire(key,86400)
    dt_old = dt - timedelta(hours=1)
    key_old = "error:%s:%s:%s:%s" % (dt_old.year,dt_old.month,dt_old.day,dt_old.hour)

    if r.exists(key_old):
        diff_err = int(r.get(key)) - int(r.get(key_old))
        if diff_err > params.get("errors_threshold",100):
            return [2,"CRITICAL - Too many errors: %d" % diff_err, prfdata]
        else:
            return [0,"OK - Errors in last hour: %d" % diff_err, prfdata]
    return [0,"OK" % prfdata]