LoginSignup
2
2

More than 5 years have passed since last update.

MackerelにAPI経由でホストメトリックを投稿する

Posted at

Mackerelにホストメトリックを投稿するにはAgentのプラグインを作成する以外にも、API経由で投稿することも可能です。
MackerelのAPIドキュメントはこちらです。

サンプルコード

サンプルコードは以下のような感じです。

require 'net/https'
require 'json'

HOST_ID = File.read('/var/lib/mackerel-agent/id')
MACKEREL_API_KEY = '*****'

uri = URI.parse('https://mackerel.io/api/v0/tsdb')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

req = Net::HTTP::Post.new(uri.path)
req["X-Api-Key"] = MACKEREL_API_KEY
req["Content-Type"] = "application/json"
req.body = [
  { hostId: HOST_ID, name: "custom.test.a", time: Time.now.to_i, value: Random.rand(100.0) },
  { hostId: HOST_ID, name: "custom.test.b", time: Time.now.to_i, value: Random.rand(100.0) },
  { hostId: HOST_ID, name: "custom.test.c", time: Time.now.to_i, value: Random.rand(100.0) },
].to_json
res = http.request(req)

Hostsのカスタムメトリックのグラフにはこのような形で表示されます。

スクリーンショット 2016-12-09 20.16.07.png

Mackerelが生成するホストIDは /var/lib/mackerel-agent/id から取得できます。(FAQ)
リクエストヘッダの X-Api-Key にAPIキーを付与する必要があります。リクエストヘッダについてはmackerel-client-rubyが参考になります。
メトリクスの名前(name)ですが、試した時点では custom. から始めないとServicesのメトリクスに表示されなかったので注意が必要です。(Hostsのカスタムメトリックには表示された)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2