Skip to content
Sends JSON wrapped data via UDP packets to a given host
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
README.md
Rakefile
healthety.gemspec

README.md

Ruby Worker

The Ruby Worker sends JSON wrapped data via UDP packets to a given host at a defined interval.

Installation

$ gem install healthety

Usage

require "healthety"

Healthety.workers do
  host "localhost"
  port 41234

  worker :load_average do
    interval 0.5
    # Gets load average with a system call (Mac OS X)
    value `w | head -n1 | cut -f4 -d":" | cut -f2 -d" "`.to_f
  end

  worker :random do
    interval 2
    value rand(10)
  end
end

That's all you need to do to define two different workers.

Defining helpers

If you want to define some helper methods create a new module first. Note the helpers method at the end to include your module into the workers. In this case a new file called connection_helper.rb contains the MySQL connection handling.

require "mysql2"

module Healthety
  module ConnectionHelper
    def mysql
      @client ||= Mysql2::Client.new(:host => "localhost", :username => "root")
    end
  end

  helpers ConnectionHelper
end

In your workers you can now use the helper method. Since the MySQL connection gets saved into a class instance variable the connection gets established only once.

$:.unshift File.dirname(__FILE__)

require "healthety"
require "connection_helper"

Healthety.workers do
  host "localhost"
  port 41234

  worker :user_count do
    interval 5
    value mysql.query("SELECT COUNT(*) AS count FROM users").first["count"]
  end
end
Something went wrong with that request. Please try again.