/metricsd-ruby

Metricsd is a pure Ruby client library for the MetricsD server

Primary LanguageRuby

Metricsd

Metricsd is a pure Ruby client library for the MetricsD server.

Installation

Add the "metricsd" gem to your Gemfile.

gem 'metricsd'

And run bundle install command.

Getting started

You can configure Metricsd connection parameters by accessing attributes of Metricsd module:

Metricsd.server_host = 'metrics.local'
Metricsd.server_port = 6311

There are few more setting, please check project documentation.

Now you should be able to record you metrics:

# Record success hit
Metricsd::Client.record_success("api.docs.upload")
# Record failure hit
Metricsd::Client.record_failure("api.docs.upload")
# Record timing info
Metricsd::Client.record_time("api.docs.upload", 0.14)
# Record complete success hit info (count + timing)
Metricsd::Client.record_hit("api.docs.upload", true, 0.14)
# Record an integer value
Metricsd::Client.record_value("user.password.size", 15)
Metricsd::Client.record_value("user.age", 26)

You can combine you metrics to send them in a single network packet for performance reason:

# Send all database pool stats
Metricsd::Client.record_values({
  'db.pool.reserved'  => db_stats[:reserved],
  'db.pool.available' => db_stats[:available],
  'db.pool.pending'   => db_stats[:pending],
}, :group => 'doc_timestamp')

You can specify message source using :source => 'src' option. In this case you will be able to see summary graphs and graphs per source:

# Generate graphs for all tables, and each single table.
Metricsd::Client.record_success("hbase.reads", :source => @hbase_table)

By default only summary statistics is calculated. You can enable per-host graphs by specifying the appropriate source:

# Generate summary graph for all hosts, and graphs for each single host.
Metricsd::Client.record_success("hbase.reads", :source => Metricsd::Client.source)
# ... or you can pass an empty string with the same effect.
Metricsd::Client.record_success("hbase.reads", :source => '')

You can group your metrics using :group option. In this case metrics will be displayed together on the summary page.

# Group metrics using :group option.
Metricsd::Client.record_success("reads", :source => @hbase_table, :group => 'hbase')
# Group metrics using special syntax "group$metric".
Metricsd::Client.record_success("hbase$reads", :source => @hbase_table)

More info

Check the Project Documentation or check the tests to find out how to use this client.