手動作成したDatadogのアラートをTerraformで構成管理する
概要
Infrastructureは構成管理することで、コードのプラクティスを取り込む方法が進んでいる(IaC)。モニタリングツールも同様の考えがあるらしい。
FYI Monitoring as Code: What It Is and Why You Need It – The New Stack
個人としてはプルリクエストで「なぜこの変更を行うのか」が明確になるやり方を好んでいるため、Monitoring as Codeを意識し、アラートを構成管理してみる。
インポートして取り込み
Datadog Providerに例が記載してあるので、それから取り込むもよし。
今回はUI上で作成したものを取り込んでみる。
空の設定を用意
取り込むためには取り込み先が必要で、空の設定を用意する。
resource "datadog_monitor" "hoge" { }
インポート
記載した環境変数をセット。 セットしたら対象URLの値をコピーし、ターミナルでコマンドを実行する。
terraform import datadog_monitor.hoge URL末尾の数字
ステートからインポートした情報を確認する
下記コマンドを実行することで、インポート内容を確認することができる。
terraform state show 対象 etc.) terraform state show datadog_monitor.hoge
空の設定の中身を書く
インポートすることによって状態管理の中には、UIで作成したアラート内容が取り込まれる。
しかし、これだと実態のファイルは空のままで、apply
を実行すると画面の設定が飛んでしまう。
そこで状態管理を元に、コードの取り込みを行う。 取得したファイルはJSON形式で書かれているので、その中身をHCLに書き写していった。
キニナル
下記に2つはどちらかしてか設定できないというエラーが出る。手動で作成すると設定できている気がするので気になる。
new_group_delay new_host_delay
実行
取り込みが終わったらapply
を実行する。
これで完全に取り込みが終わった。