LoginSignup
2
0

More than 5 years have passed since last update.

GoでAWSのBilling情報をグラフ化するmackerel-pluginを作った

Last updated at Posted at 2019-01-05

公式プラグインでも利用しているGo言語でのカスタムメトリックプラグイン作成用ライブラリの
github.com/mackerelio/go-mackerel-plugin
を利用して、GoでAWSのBilling情報をMackerelダッシュボードにグラフ化するmackerel-pluginを初めて作りました。

Mackerelの公式サイト

開発環境と実行環境

  • 開発環境
    • Mac: 10.14.1
      • Golang: 1.11.2
      • Goland
  • 実行環境
    • AWS
      • EC2
        • Ubuntu16.04
        • mackerel-agent
        • IAMロール(Billingが取得できる権限をEC2に付与)

今回作ったmackerel-plugin-awsbillingのソースコードは以下

EC2のUbuntuサーバに設定

  • Macローカルでmain.goをUbuntu上で動くようにクロスコンパイルする。

    • GOOS=linux go build -o bin/mkr-plugin-aws-billing
  • このpluginを実行するにはAWSのAPIを実行できるIAMが必要です。

    • 今回はEC2インスタンスにBiliing情報を取得できるようにIAMロールを付与しました。
  • Ubuntuサーバの以下のパスに配置しました。

    • /usr/local/yhidetoshi/mackerel-plugin-aws-billing

mackerel-agentを設定

  • /etc/mackerel-agent/mackerel-agent.confを以下のように別ファイルの設定も有効にできるようにする。
apikey = "XXXXXXXXXXXXX"
include = "/etc/mackerel-agent/*"
  • /etc/mackerel-agent/get_billing
[plugin.metrics.awsbilling]
command = '/usr/local/yhidetoshi/mackerel-plugin-aws-billing -region=us-east-1'
  • mackerel-agentを再起動する
    • $ sudo systemctl restart mackerel-agent

Mackerelダッシュボードのグラフを確認

mackerel-agentに設定したホストにカスタムメトリックにグラフが追加された。

mkr-aws-billing-qiita.png

Mackerel公式のレジストリに登録する

mackerelのレジストに登録されれば、mkr plugin install プラグイン名 でインストールすることができるようになる。方法は以下のMackerel公式のブログでで説明されている。

GitHubでリリースを自動化するために、TravisCIを利用。コード等は以下でサンプルが用意されていたので利用しました。

TravisCIで自動リリースすると、以下のように、コンパイルしたものをzip化されたものが生成される。

スクリーンショット 2019-01-19 12.16.05.png

リリースまで完了したら、以下のリポジトリにPullRequestを投げる。PRを投げるときは、以下のリポジトリをForkしてからPRを作成しました。

mackerel-plugin-git.png

→ PRがMergeされて、mkr plugin install プラグイン名 でインストールすることができるようになりました。

$ sudo mkr plugin install mackerel-plugin-awsbilling
Password:
           Downloading https://github.com/yhidetoshi/mackerel-plugin-awsbilling/releases/download/v0.0.3/mackerel-plugin-awsbilling_darwin_amd64.zip
           /opt/mackerel-agent/plugins/bin/mackerel-plugin-awsbilling already exists. Skip installing for now
           Successfully installed mackerel-plugin-awsbilling

まとめ

Goを使って、mackerel-pluginを初めてつくりました。Pluginを作ることでGoの学習になりますし、またシステムを可視化することもできます。そして、作ったプラグインをmkrのレジストリに登録するところまでやりました。今後も別のプラグインを作っていければと思います。

2
0
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
0