Put the loadavg1min.rb
to jobs/loadavg1min.rb
.
Add the code from loadavg1min.erb to the desired dashboard.
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> | |
<div data-id="loadavg1min" data-view="Graph" data-title="Server load" style="background-color:#47bbb3;" data-moreinfo="1 min intervals" ></div> | |
</li> |
# Populate the graph with 0.00 results | |
points = [] | |
(1..10).each do |i| | |
points << { x: i, y: 0 } | |
end | |
last_x = points.last[:x] | |
SCHEDULER.every '1m' do | |
points.shift | |
last_x += 1 | |
uptime = %x('uptime') | |
points << { x: last_x, y: uptime[-17..-14].to_f } | |
send_event('loadavg1min', points: points) | |
end |
Someone knows how to get info of another machines?
Maybe try to get load info by running script like this (on remote machine, using cron):
X=$(uptime | cut -c46-49)
LOAD='{ "auth_token": "YOUR_AUTH_TOKEN", "value" : '$X' }'
curl -d "${LOAD}" \http://dashing_url:3030/widgets/widget_name
I used the following to get this to work on both OS X and Linux:
uptime = %x('uptime').gsub(/.*: /, '\1').gsub(/,/, '\1')
points << { x: last_x, y: uptime[0..3].to_f }
Ok, I'm no longer using IO.popen to prevent the zombies