0.0
No commit activity in last 3 years
No release in over 3 years
A ruby client library for querying data by OpenTSDB HTTP API.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.13
>= 3.0.8, ~> 3.0
~> 5.0
~> 1.1
~> 0.10
~> 10.0
~> 0.40

Runtime

~> 0.10
 Project Readme

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.