2022-09-02 18:42:29 +02:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
|
|
|
import hmac
|
|
|
|
import json
|
|
|
|
import os
|
|
|
|
import pprint
|
|
|
|
import socket
|
|
|
|
import time
|
|
|
|
|
|
|
|
import requests
|
|
|
|
|
|
|
|
|
|
|
|
hostname = socket.gethostbyaddr(socket.gethostname())[0]
|
|
|
|
|
|
|
|
def report_loadavg():
|
|
|
|
now = time.time()
|
|
|
|
load = os.getloadavg()
|
|
|
|
with open("config.json") as fh:
|
|
|
|
client_config = json.load(fh)
|
2022-09-04 12:47:20 +02:00
|
|
|
baseurl = client_config["server"]
|
2022-09-02 18:42:29 +02:00
|
|
|
|
|
|
|
while True:
|
|
|
|
report = []
|
|
|
|
for i, period in enumerate(("1m", "5m", "15m")):
|
|
|
|
node = hostname
|
|
|
|
timestamp = time.time()
|
|
|
|
msg = (node + " " + str(timestamp)).encode("UTF-8")
|
|
|
|
digest = hmac.new(client_config["key"].encode("UTF-8"), msg, "SHA-256").hexdigest()
|
|
|
|
report.append(
|
|
|
|
{
|
|
|
|
"description": {
|
|
|
|
"hostname": hostname,
|
|
|
|
"measure": "loadavg",
|
|
|
|
"unit": "processes",
|
|
|
|
"period": period,
|
|
|
|
},
|
|
|
|
"data": [
|
|
|
|
[ now, load[i] ]
|
|
|
|
],
|
|
|
|
"auth": {
|
|
|
|
"node": node,
|
|
|
|
"timestamp": timestamp,
|
|
|
|
"hmac": digest,
|
|
|
|
}
|
|
|
|
},
|
|
|
|
)
|
|
|
|
pprint.pp(report)
|
|
|
|
r = requests.post(baseurl + "report", json=report)
|
|
|
|
print(r)
|
|
|
|
return
|
|
|
|
|
|
|
|
report_loadavg()
|