Project

gmetric

0.04
No commit activity in last 3 years
No release in over 3 years
Pure Ruby interface for generating Ganglia gmetric packets
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

GMetric

A pure Ruby client for generating Ganglia 3.1.x+ gmetric meta and metric packets and talking to your gmond / gmetad nodes over UDP protocol. Supports host spoofing, and all the same parameters as the gmetric command line executable.

http://www.igvita.com/2010/01/28/cluster-monitoring-with-ganglia-ruby/

Example: Sending a gmetric to a gmond over UDP

Ganglia::GMetric.send("127.0.0.1", 8670, {
  :name => 'pageviews',
  :units => 'req/min',
  :type => 'uint8',
  :value => 7000,
  :tmax => 60,
  :dmax => 300,
  :group => 'test'
})

Example: Generating the Meta and Metric packets

g = Ganglia::GMetric.pack(
  :slope => 'positive',
  :name => 'ruby',
  :value => rand(100),
  :tmax => 60,
  :units => '',
  :dmax => 60,
  :type => 'uint8'
)

# g[0] = meta packet
# g[1] = gmetric packet

s = UDPSocket.new
s.connect("127.0.0.1", 8670)
s.send g[0], 0
s.send g[1], 0

Spoofing a hostname in gmetrics

To spoof a hostname with the gmetric library you will need to add the following keys to your gmetric. This works with both GMetric.send() and GMetric.pack().

  • spoof - takes a value of 1 or True
  • hostname - expects a value of ip_address:hostname.

License

The MIT License, Copyright (c) 2009 Ilya Grigorik