読者です 読者をやめる 読者になる 読者になる

ravelll の日記

よしなに

Mackerel で金の買取相場を監視する

tech

去年末、社員旅行での抽選会で純金が当たった。

まだしばらく売る気はないのだけど、ひとまず金相場が見たい、ということで Mackerel で監視することにした。

稼働環境は Amazon EC2Amazon Linux)です。

手順

まずは mackerel-agent をインストール。APIKEY は各自のものに読み換えてください。

$ curl -fsSL https://mackerel.io/file/script/amznlinux/setup-all-yum.sh | MACKEREL_APIKEY='yourmackerelapikey' sh

次に監視するパラメータを取得・設定するスクリプトを設置。

#!/bin/bash

name="GoldPrice"
monitor_time=`date +%s`
market_rate=`curl http://gold.mmc.co.jp/market/gold-price/ | grep -A1 metalType1 | tail -1 | tr -d "\t" | tr -d "," | cut -b 4-7`
echo -e "${name}\t${market_rate}\t${monitor_time}"

設置したスクリプトを使いメトリックを作成するよう mackerel-agent.conf を修正。

$ sudo vim /etc/mackerel-agent/mackerel-agent.conf

[plugin.metrics.process]
command="bash /path/to/script.sh"
type="metric"

これでカスタムメトリックとして金相場のグラフが表示されます。

ラベルはグラフ右上の設定ページで変更できます。今回はストレートに「金相場」としました。

f:id:ravelll:20170214221215p:plain

よさそうです。

グラフが表示されないときは /var/log/mackerel-agent.log を見ると原因が特定できると思います。

今後

金相場の情報を取得しているページの更新が日に1回のようだし、不必要に高頻度なスクレイピングは行儀が悪いのでエージェントのフェッチ間隔を広げたい。

今は1分毎にメトリックに Post されており、ひたすら平坦なグラフが続いていて情報価値が低い。相場が上下する経過が見たいのだ。

plugin.metrics.* の実行間隔は設定できるのかなと mackerel-agent のコードを読んだのだけど、config/config.go#L214 の変数を toml からの入力で変更する箇所は無いように見えるのでできない…?

plugin.checks.* での check_interval や execution_interval のようなパラメータがあるのかなと思ったのだけど無いのかな。会社の有識者の方々に聞いてみよう。

追記

はてな社のセールスエンジニアである id:a-know さんより、サービスメトリックにするとよいとのアドバイスをいただきました。ありがとうございます!!