A library for interacting with Scout, a hosted server monitoring service. Query for metric data, manage servers, and more.
Install the gem if you haven’t already:
gem install scout_api
Require the gem and authenticate to get your Scout on:
require 'scout_api' scout = Scout::Account.new('youraccountname', '[email protected]', 'sekret')
You can query for the following high-level objects:
-
{Scout::Server}
-
{Scout::Group}
-
{Scout::Metric}
Each of the classes have Rails-like finder methods. For example:
# all servers Scout::Server.all # first server Scout::Server.first # first metric with ID=1 Scout::Metric.first(1) # all groups with name =~ 'Web' Scout::Group.all(:name => 'Web')
Access your metric data stored in Scout. You can retrieve data for a specific metric, a group of metrics, and aggregated metrics. For example:
# average value of the metric with ID=1 over the past hour Scout::Metric.average(1) # maximum rate of insert queries over the previous 24 hours Scout::Server.first(:name => "DB Server").metrics.maximum(:name => 'inserts', :start => Time.now.utc-(24*3600)*2,:end => Time.now.utc-(24*3600) ) # average memory used across all servers in the 'web servers' group Scout::Group.first(:name => 'web servers').metrics.average(:name => 'Memory Used') Scout::Group.first(:name => 'web servers').metrics.average(:name => 'Memory Used').to_sparkline Scout::Group.first(:name => 'web servers').metrics.average(:name => 'Memory Used').to_a # total throughput across web servers Scout::Group.first(:name => 'web servers').metrics.average(:name => 'request_rate', :aggregate => true)
Create and delete servers:
# create a server using the server with id=6 as the template. Scout::Server.create('heavy metal',:id => 6) => <#Scout::Server> # delete the server with id=10 Scout::Server.delete(10)
scout_api has been tested against Ruby 1.8.7, and Ruby 1.9.2.
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright © 2011 Jesse Newland, Derek Haynes. See LICENSE for details.