My Note

自己理解のためのブログ

MackerelCheckAutoRetirementFailツールを作った

やったこと

mackerelのauto-retirementに失敗し、ホストリストに存在するがメトリクスを取得できていないインスタンスを検出して通知させる

実装

■ mackerel-client-goを利用

github.com

  • 登録されて5分以上経過して、メモリのメトリクスが取得できていないインスタンスが存在する場合にOrg名と登録名をSlackに通知する
    • Statusが Working でメトリクス取得に失敗している場合を検知するために、今回はメモリのメトリクスが取得できない場合という条件にした。

■ Slackへの通知結果例

Alt Text

GitHub ( ソースコード )

github.com

実行方法

環境変数として、セットする。

username = os.Getenv("USERNAME")
slackURL = os.Getenv("SLACKURL")
mkrKey   = os.Getenv("MKRKEY")
strRole  = os.Getenv("STRROLE")
prodRole = os.Getenv("PRODROLE")
  • ROLEをカンマ区切りで環境変数にセットする(監視対象のロールをセットする)
    • STRROLE: web,bastion
    • PRODROLE: web,bastion

LambdaにGoランタイムで実行する。定期実行はCloudwatch Eventと連携してcron実行させる。