こんにちは。Mackerel SRE チームの id:heleeen です。
Mackerel 用の Terraform Provider において、先日リリースした v0.0.7 からサービスメトリックの一覧取得がサポートされました。これによってサービスメトリック名を Mackerel から取得して監視設定ができます。
mackerelio-labs/mackerel | Terraform Registry
こちらは Mackerel アンバサダー でもある @fujiwara さんが Pull Request をくださいました。機能追加にあたりご協力いただいた @fujiwara さん、ありがとうございます!
mackerel_service_metric_names
の使いかた
今回追加された mackerel_service_metric_names
は冒頭で述べたとおり、サービスメトリックの一覧を取得するための機能です。name
のみを指定するとそのサービスのサービスメトリック一覧を取得します。
data "mackerel_service_metric_names" "sample" { name = "sample" }
prefix
を合わせて指定すると前方一致での絞り込みが行なえます。
data "mackerel_service_metric_names" "sample" { name = "sample" prefix = "service-metric-name.prefix" }
これによりサービスメトリック名を一覧で取得でき、監視設定を複数のサービスメトリックへ設定しやすくなります。こちらが設定例です。
data "mackerel_service_metric_names" "sample" { name = "sample" prefix = "service-metric-name.prefix" } resource "mackerel_monitor" "service_metrics" { for_each = data.mackerel_service_metric_names.sample.metric_names name = format("%s is low", each.key) service_metric { service = "sample" metric = each.value operator = "<" duration = 1 warning = 5 critical = 10 } }
これを terraform plan
したときのイメージです。
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # mackerel_monitor.service_metrics["service-metric-name.prefix.one"] will be created + resource "mackerel_monitor" "service_metrics" { + id = (known after apply) + name = "service-metric-name.prefix.one is low" + notification_interval = 0 + service_metric { + critical = 10 + duration = 1 + max_check_attempts = 1 + metric = "service-metric-name.prefix.one" + operator = "<" + service = "sample" + warning = 5 } } # mackerel_monitor.service_metrics["service-metric-name.prefix.the-other"] will be created + resource "mackerel_monitor" "service_metrics" { + id = (known after apply) + name = "service-metric-name.prefix.the-other is low" + notification_interval = 0 + service_metric { + critical = 10 + duration = 1 + max_check_attempts = 1 + metric = "service-metric-name.prefix.the-other" + operator = "<" + service = "sample" + warning = 5 } }
サービスメトリックに対する監視がより少ない記述で設定できます。
MACKEREL_APIKEY
に対応しました
これまで環境変数から API キーを指定する場合は MACKEREL_API_KEY
のみに対応していましたが、mkr や mackerel-container-agent で利用されている MACKEREL_APIKEY
も利用できるようになりました。
MACKEREL_APIKEY
が MACKEREL_API_KEY
より優先されるため、MACKEREL_API_KEY
と MACKEREL_APIKEY
に異なるオーガニゼーションのAPIキーを設定している場合は実行先が変わりますのでご留意いただけますと幸いです。
そのほか Terraform Mackerel Provider についての詳しい説明は ドキュメント をご参照ください。
困ったときは
Mackerel の Slack Workspace にてご連絡ください!
https://mackerel-ug-slackin.herokuapp.com/
ぜひご利用ください
以上、 Mackerel の Terraform Provider の新機能についてご案内させていただきました。IaC によるモニタリング管理にぜひお役立てください。