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

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

公式プラグインでも利用している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/mkr-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/mkr-plugin-aws-billing -region us-east-1' 
  • mackerel-agentを再起動する

    • $ sudo systemctl restart mackerel-agent


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

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



mkr-aws-billing-qiita.png



まとめ

Goを使って、mackerel-pluginを初めてつくりました。Pluginを作ることでGoの学習になりますし、またシステムを可視化することもできます。今後も別のプラグインを作っていきたいと思います。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)