Skip to content

cloudinsight/opentsdb-ruby

Repository files navigation

opentsdb-ruby

Ruby client for OpenTSDB HTTP Query API.

Gem Version Build Status Code Climate Test Coverage MIT licensed

Installation

Add this line to your application's Gemfile:

gem 'opentsdb-ruby', require 'opentsdb'

And then execute:

$ bundle

Or install it yourself as:

$ gem install opentsdb-ruby

Quick Start Guide

Configure opentsdb

#config/initializers/opentsdb.rb
#require 'opentsdb'
Opentsdb.configure do |config|
  config.host = 'localhost'  # opentsdb server host default: localhost
  config.port =  4242        # opentsdb server port default: 4242
end

Usage

# define simple query params
params = { begin: Time.now.ago(1.hour), q: 'avg:system.load.1{host=*}' }
client = Opentsdb::Client.new(params)
result = client.query
# => { status: 'ok', condition: #<Opentsdb::QueryParam: @metric="system.load.1",..., result: '[{"metric": "system.load.1", "tags": ... "dps":[...]}]}'

# complicate query params
params = { begin: Time.now.ago(1.hour), end: Time.now, q: 'avg:system.load.1{host=server1, host=server2, tagk=tagv}by{host}', interval: 360 }
client = Opentsdb::Client.new(params)
result = client.query
# => { status: 'ok', condition: #<Opentsdb::QueryParam: @metric="system.load.1",..., result: '[{"metric": "system.load.1", "tags": ... "dps":[...]}]}'

# reconfig opentsdb host and port
params = { host: '192.168.0.100', port: 8000, q: 'avg:system.load.1{host=*}' }
client = Opentsdb::Client.new(params)
result = client.query
# => { status: 'ok', condition: #<Opentsdb::QueryParam: @metric="system.load.1",..., result: '[{"metric": "system.load.1", "tags": ... "dps":[...]}]}'

#query exception
client = Opentsdb::Client.new(q: 'avg:unknown_metric')
result = client.query
# => { status: 'error', condition: #<Opentsdb::QueryParam: @metric="system.load.1",..., result: '{"error":{"code":400,"message":"No such name for 'metrics'...}}'

Contributing

Fork the Project

$ git https://github.com/cloudinsight/opentsdb-ruby.git
$ cd opentsdb-ruby
$ git remote add upstream https://github.com/cloudinsight/opentsdb-ruby.git  

Create a Toptic Branch

$ git checkout master
$ git pull upstream master
$ git checkout -b my-feature-branch

Run Test

$ bundle exec rake test

Make a Pull Request

Click the 'Pull Request' button and fill out the form.

License

MIT License. See LICENSE for details.