Skip to main content

External metric

Grusher support getting metrics from another sources, system or script. 

зображення.png

You need to add Server (for example) and get device id.

зображення.png

This is a simple script on Python what send to Grusher  data (need to install psutilrequests 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)