External metric
Grusher support getting metrics from another sources, system or script.
You need to add Server (for example) and get device id.
This is a simple script on Python what send to Grusher data (need to install psutil, requests pip packet)
import psutil
import requests
# set values
grusher_url = 'http://192.168.1.1/api?key=XXXX'
# This example for device ID.
device_id = 5649 # device ID in Grusher
# For IP use it
#ip = "192.168.1.1"
# And request must be like next
#requests.get(str(grusher_url) + 'cat=device&action=send_metrics&dip=' + str(ip) + '&metric=CPU&value=' + str(cpu), timeout=3)
#getting data:
cpu = psutil.cpu_percent(interval=1)
ram = psutil.virtual_memory().available * 100 / psutil.virtual_memory().total
swap = psutil.swap_memory().percent
disk = psutil.disk_usage('/').percent
in_tr = psutil.net_io_counters().bytes_sent/1024/1024
out_tr = psutil.net_io_counters().bytes_recv/1024/1024
in_tr_packet = psutil.net_io_counters().packets_sent
out_tr_packet = psutil.net_io_counters().packets_recv
in_tr_error = psutil.net_io_counters().errin
out_tr_error = psutil.net_io_counters().errout
in_tr_drop = psutil.net_io_counters().dropin
out_tr_drop = psutil.net_io_counters().dropout
# sending data
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=CPU&value=' + str(cpu), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=RAM&value=' + str(ram), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=HDD LOAD&value=' + str(disk), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=HDD LOAD SWAP&value=' + str(swap), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK IN&value=' + str(in_tr), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK OUT&value=' + str(out_tr), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK PACKETS IN&value=' + str(in_tr_packet), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK PACKETS OUT&value=' + str(out_tr_packet), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK ERROR IN&value=' + str(in_tr_error), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK ERROR OUT&value=' + str(out_tr_error), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK DROP IN&value=' + str(in_tr_drop), timeout=3)
requests.get(str(grusher_url) + 'cat=device&action=send_metrics&device_id=' + str(device_id) + '&metric=NETWORK DROP OUT&value=' + str(out_tr_drop), timeout=3)


No comments to display
No comments to display