あれから一年半
inokara.hateblo.jp
何もしていなかったわけではないけど、ほぼ放置していた mruby-datadog を作り直しました。
github.com
目指したもの
オフィシャルの Ruby クライアント。
github.com
実装はともかく、メソッド名や引数についてはオフィシャルの Ruby クライアントの極力寄せていくのがポリシー。
サポートされている API
全てのメソッドを網羅出来てはいませんが、以下の API をサポートとしています。
引き続き、自分のスキルで実装出来るレベルでサポートする API は追加していく予定です。
example
リポジトリの example にもアップしているけど、以下のようなコードで Datadog を操作出来ます。
config = { :api_key => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", :app_key => "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" } # # Monitors # dog = Datadog::Monitors.new(config) res = dog.get_all_monitors p res.length res = dog.get_all_monitors(tags: "host:vagrant-ubuntu-trusty-64") p res.length res.each do |monitor| p monitor end puts dog.get_monitor(1234567) options = { 'notify_no_data' => true, 'no_data_timeframe' => 20 } tags = ['app:webserver', 'frontend'] puts dog.monitor("metric alert", \ "avg(last_1h):sum:system.net.bytes_rcvd{host:host0} > 100", \ :name => "Bytes received on host1", \ :message => "We may need to add web hosts if this is consistently high.", \ :tags => tags, \ :options => options) puts dog.monitor("metric alert", \ "avg(last_1h):sum:system.net.bytes_rcvd{host:host1} > 100") puts dog.update_monitor(1234567, "metric alert", \ "avg(last_1h):sum:system.net.bytes_rcvd{host:host1} > 100") puts dog.delete_monitor(1234567) puts dog.get_monitor(1234567) puts dog.mute_monitor(1234567) puts dog.unmute_monitor(1234567) puts dog.mute_monitors puts dog.unmute_monitors # # Metrics # dog = Datadog::Metrics.new(config) puts "response: #{dog.emit_points("mruby.test", 50, :host => "foo.bar.com")}" points = [[Time.now.to_i, 1], [Time.now.to_i + 10, 10], [Time.now.to_i + 20, 20]] puts "response: #{dog.emit_points("mruby.test2", points, :host => "foo.bar.com")}" from = Time.now.to_i - 3600 to = Time.now.to_i query = 'system.cpu.idle{*}by{host}' puts dog.get_points(query, from, to) # # Search # dog = Datadog::Search.new(config) dog.search("host:vagrant-ubuntu-trusty-64")
Datadog Agent をインストール出来ないような環境(ってあるのか解らないけど)等で動くアプリケーションのメトリクス収集等に使えるかなあ。
以上
mruby-datadog の簡単な紹介でした。
ということで、mruby-datadog を利用した mchihuahua に続く。