Resc 0.1.0 | Coderz Product

resc 0.1.0

Last updated:

0 purchases

resc 0.1.0 Image
resc 0.1.0 Images

Free

Languages

Categories

Add to Cart

Description:

resc 0.1.0

Resource checker
Resc check resources(CPU,memory,disk) of target host(local or remote) and execute script.
Install
pip install git+https://github.com/tatsuya4649/resc


Usage
example Python code.
from resc import Resc

resc = Resc(
cpu={"threshold": 80.0,"interval": 10},
memory={"threshold": 90.0},
disk={"threshold":75,"path":"/"},
)

@resc.register(
trigger="* * * * *", # crontab job time
rescdir="rescs", # output directory of compiled python script file
outputfile="output", # output file of crontab if it is fired when resource threshold is exceeded.(directory: ~/.resc/log/ + outputfile)
ip="13.231.122.182", # if check remote host,specify IP address
username="ubuntu", # if check remote host,remote host username
call_first=True, # call just now?
key_path="~/.aws/ExampleSSH.pem", # if check remote host, key file path to connect remote host with SSH.
)
def hello():
print("OVER RESOURCE!!!")

hello()

How does that work?


Register decorator is a decorator to prepare for resource check using given threshold of resources,host information,etc.
Decorated function(above def hello()) is called function when resource threshold is exceeded.
Make new python script for crontab.(~/.resc/ + rescdir)
Register crontab with 3.python script and interval info(trigger argument of register decorator).

If call_first argument is False(default False), decorated function is not called until resource threshold are exceeded.
WARNING: Because decorated function will be compiled, it must be coded as an independent scope.
bad example.
import math
class Bad:
@classmethod
def example(self):
return "hello world"

def bad():
# NameError: name 'math' is not defined
math.floor(10.9)
Bad.example()

good example.
def good():
import math
class Bad:
@classmethod
def example(self):
return "hello world"
math.floor(10.9)

Command Line

CPU or Memory or Disk must be not empty.
usage: resc [-h] [-c CPU_T] [--cpu_mode CPU_MODE] [-i CPU_INTERVAL] [-m MEM_T] [--mem_mode MEM_MODE] [-d DISK_T] [-p DISK_PATH]
[--disk_mode DISK_MODE] [--log LOG] [-s] [-q] [--not_found NOT_FOUND]

Resouce Checker.

optional arguments:
-h, --help show this help message and exit
-c CPU_T, --cpu_t CPU_T
CPU threshold value
--cpu_mode CPU_MODE CPU mode
-i CPU_INTERVAL, --cpu_interval CPU_INTERVAL
Time to confirm CPU threshold
-m MEM_T, --mem_t MEM_T
Memory threshold value
--mem_mode MEM_MODE Memory mode
-d DISK_T, --disk_t DISK_T
Disk threshold value
-p DISK_PATH, --disk_path DISK_PATH
Disk path
--disk_mode DISK_MODE
Disk mode
--log LOG Analize log file.receive path.
-s, --log_server Analize log file on GUI.
-q Quiet output
--not_found NOT_FOUND
for crontab. If not found script, write to log


Term
threshold(cpu): threshold that is system-wide CPU utilization as a percentage.int or float type.
interval(cpu): interval is check interval time(s).int or float type.
threshold(memory): threshold that is system memory utilization as a percentage.int or float type.
path(disk): check the capacity of the partition according to the given path.
threshold(disk): threshold that is partition utilization which containes given path.
Log Analyze Server
You can use the server to analyze the RescLog file.
in python code
from resc import start_server

# log server must be in main module.
if __name__ == "__main__":
start_server()

command line
resc --log-serkver

Defualt bind host is 127.0.0.1, bind port is 55555.
If you want to change them, set environment variebales. host is RESCLOGSERVER_IP, port is RESCLOGSERVER_PORT.
command line(custom port version)
RESCLOGSERVER_PORT=44444 resc --log-serkver

Then, start log server to analyze your Resc log file.
INFO: Uvicorn running on http://127.0.0.1:55555 (Press CTRL+C to quit)
INFO: Started reloader process [262092] using statreload
INFO: Started server process [262094]
INFO: Waiting for application startup.
INFO: Application startup complete.


If you accessed this url with web browser, display like this image.
Select log file, display result of analyzing.


Failure/Success: Whether a error has occured or not.
date: Logggine date. the date when the registered function was called.
over: Whether the threshold of the registered resource has been exceeded or not.
script file: Called python script(compiled script).
trigger function name: Registered function name.
remote host: Remote host that registered resources are checked.
source: 'trigger' function code.
stdout: Stdout of trigger function.
stderr: Stderr of trigger function.

Crontab
Crontab is a important element of this library.So, show 'man crontab or crontab -e' for detail of crontab
Required
Python3(>=3.6),Crontab,and python library in requirements.txt.
LICENCE
This project is licensed under the terms of the MIT license.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.