MackerelCheckAutoRetirementFailツールを作った
やったこと
mackerelのauto-retirementに失敗し、ホストリストに存在するがメトリクスを取得できていないインスタンスを検出して通知させる
実装
■ mackerel-client-goを利用
- 登録されて5分以上経過して、メモリのメトリクスが取得できていないインスタンスが存在する場合にOrg名と登録名をSlackに通知する
- Statusが
Working
でメトリクス取得に失敗している場合を検知するために、今回はメモリのメトリクスが取得できない場合という条件にした。
- Statusが
■ Slackへの通知結果例
GitHub ( ソースコード )
実行方法
■ 環境変数として、セットする。
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実行させる。