Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An experiment in exported metrics and monitoring
Ruby JavaScript
branch: master
Failed to load latest commit information.
app - rename some items, as checks are now ruby code, we probably want ke…
autotest - Add slashport
bin - Use ruby code for checks and ignores, now. Use binding and eval tri…
doc/rdoc/generators - Add slashport
lib - add '!=' op in checks
public - Add slashport
spec - Add more stuff.
.gitignore - Add slashport
README git-svn-id: 660…
Rakefile - Add slashport
slashport.gemspec - version bump


- replace snmpd on hosts, because extending snmpd sucks
- be easy to use and trivial to extend
- be simple, use common protocols and formats for easy of use by any language.

Standardize on exporting:
- state data/variables
- configuration

Exported data is simply a list of attributes.
An attribute is basically a key-value pair, where the key has multiple dimensions and the value can be multiple values.

A simple example is exporting data about a host network interface. We might have multiple dimensions that label each data point:
* component = host
* section = network
* interface = eth0
* interface_type = ethernet

Multiple state and statistics data can be pointed at by the above set of labels:
* packets and bytes received and transmitted
* link state
* link speed
* error counts
* etc...

In ruby, this might present itself as a hash where both key and value are hashes themselves:

attribute = {
  { "component" => "host", "section" => "network",
    "interface" => "eth0", "interface_type" => "ethernet" } =>
  { "link-state" => "UP", "link-speed": 1000,
    "tx-packets" => 29293857, "tx-bytes" => 298752983759827,

Something went wrong with that request. Please try again.