Sha256: 39222d25634aced561bdaf423f717cbcbbc74493bdd0434898861501882ac9ab

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

# 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

``` ruby
require "healthety"

Healthety.workers do
  host "localhost"
  port 41234

  worker :random do
    interval 1
    value rand(10)
  end
end
```

That's all you need to do to define a worker.

### 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.

``` ruby
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.

``` ruby
$:.unshift File.dirname(__FILE__)

require "healthety"
require "connection_helper"

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 :user_count do
    interval 5
    value mysql.query("SELECT COUNT(*) AS count FROM users").first["count"]
  end
end
```

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
healthety-0.0.7 README.md