'Terraform event monitor migration

Trying to migrate event monitors according to migration steps

resource "datadog_monitor" "cache_event" {
  name    = "${var.cache_replication_group} :: Event"
  type    = "event-v2 alert"
  message = join(" ", ["Cache event occured in ${var.cache_replication_group}.", join(" ", var.recipients.general)])

  query = "events(\"source:elasticache tags:(replication_group:${var.cache_replication_group}) NOT(Finished)\").rollup(\"count\").last(\"15m\") > 0"
  require_full_window = false

  tags = concat(var.tags, ["cache:${var.cache_replication_group}", "monitor:stability"])
}

But when trying to apply changes Terraform returns the error Error: error creating monitor: event-v2 alert is not a valid MonitorType, but according to their documentation event-v2 alert is a valid type. DataDog provider version at the moment is 3.10.0, hence it should support this type



Solution 1:[1]

My bad. After changing the provider version, I didn't reinitialise the state file.

Edit: Before monitor migration, I used an older DataDog provider version. After adjusting query to be complient with a new event monitor format, I bumped DataDog provider version to the one that supports new v2 monitors, but instead of deleting .terraform folder and triggering init Terraform command, I just went straight with apply. Instead I should have initialized it first (init).

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1