@@ -5,10 +5,16 @@ This module creates a set of monitoring alerts for Google Cloud Platform service
55Supported services:
66
77- Cloud SQL
8+
89 - CPU usage
910 - Storage usage
1011 - Memory usage
1112
13+ - Kyverno
14+
15+ - Error logs for admission-controller, background-controller, cleanup-controller, reports-controller
16+ - Metric threshold (optional)
17+
1218<!-- BEGIN_TF_DOCS -->
1319## Providers
1420
@@ -27,10 +33,10 @@ Supported services:
2733
2834| Name | Description | Type | Default | Required |
2935| ------| -------------| ------| ---------| :--------:|
30- | <a name =" input_auto_close " ></a > [ auto\_ close] ( #input\_ auto\_ close ) | n/a | ` string ` | ` "86400s" ` | no |
31- | <a name="input_cloud_sql"></a> [cloud\_sql](#input\_cloud\_sql) | n/a | <pre>object({<br> project = optional(string, null)<br> auto_close = optional(string, null)<br> notification_channels = optional(list(string), [])<br> instances = optional(map(object({<br> cpu_utilization = optional(list(object({<br> severity = optional(string, "WARNING"),<br> threshold = optional(number, 0.90)<br> alignment_period = optional(string, "120s")<br> duration = optional(string, "300s")<br> })), [<br> {<br> threshold = 0.85,<br> duration = "1200s",<br> },<br> {<br> severity = "CRITICAL",<br> threshold = 1,<br> duration = "300s",<br> alignment_period = "60s",<br> }<br> ])<br> memory_utilization = optional(list(object({<br> severity = optional(string, "WARNING"),<br> threshold = optional(number, 0.90)<br> alignment_period = optional(string, "300s")<br> duration = optional(string, "300s")<br> })), [<br> {<br> severity = "WARNING",<br> },<br> {<br> severity = "CRITICAL",<br> threshold = 0.95,<br> }<br> ])<br> disk_utilization = optional(list(object({<br> severity = optional(string, "WARNING"),<br> threshold = optional(number, 0.85)<br> alignment_period = optional(string, "300s")<br> duration = optional(string, "600s")<br> })), [<br> {<br> severity = "WARNING",<br> },<br> {<br> severity = "CRITICAL",<br> threshold = 0.95, <br> }<br> ])<br> })), {})<br> })</pre> | n/a | yes |
32- | <a name =" input_notification_channels " ></a > [ notification\_ channels] ( #input\_ notification\_ channels ) | n/a | ` list(string) ` | ` [] ` | no |
33- | <a name =" input_project " ></a > [ project] ( #input\_ project ) | n/a | ` string ` | ` null ` | no |
36+ | <a name="input_cloud_sql"></a> [cloud\_sql](#input\_cloud\_sql) | Configuration for Cloud SQL monitoring alerts. Supports customization of project, auto-close timing, notification channels, and per-instance alert thresholds for CPU, memory, and disk utilization. | <pre>object({<br/> project_id = optional(string, null)<br/> auto_close = optional(string, "86400s") # default 24h<br/> notification_channels = optional(list(string), [])<br/> instances = optional(map(object({<br/> cpu_utilization = optional(list(object({<br/> severity = optional(string, "WARNING"),<br/> threshold = optional(number, 0.90)<br/> alignment_period = optional(string, "120s")<br/> duration = optional(string, "300s")<br/> })), [<br/> {<br/> threshold = 0.85,<br/> duration = "1200s",<br/> },<br/> {<br/> severity = "CRITICAL",<br/> threshold = 1,<br/> duration = "300s",<br/> alignment_period = "60s",<br/> }<br/> ])<br/> memory_utilization = optional(list(object({<br/> severity = optional(string, "WARNING"),<br/> threshold = optional(number, 0.90)<br/> alignment_period = optional(string, "300s")<br/> duration = optional(string, "300s")<br/> })), [<br/> {<br/> severity = "WARNING",<br/> },<br/> {<br/> severity = "CRITICAL",<br/> threshold = 0.95,<br/> }<br/> ])<br/> disk_utilization = optional(list(object({<br/> severity = optional(string, "WARNING"),<br/> threshold = optional(number, 0.85)<br/> alignment_period = optional(string, "300s")<br/> duration = optional(string, "600s")<br/> })), [<br/> {<br/> severity = "WARNING",<br/> },<br/> {<br/> severity = "CRITICAL",<br/> threshold = 0.95,<br/> }<br/> ])<br/> })), {})<br/> })</pre> | n/a | yes |
37+ | <a name =" input_kyverno " ></a > [ kyverno] ( #input\_ kyverno ) | Configuration for Kyverno monitoring alerts. Allows customization of cluster name, project, notification channels, alert documentation, metric thresholds, auto-close timing, enablement, extra filters, and namespace. | <pre >object({<br /> cluster_name = string<br /> project_id = optional(string, null)<br /> notification_channels = optional(list(string), [ ] )<br /> notification_rate_limit = optional(string, "300s")<br /> alert_documentation = optional(string, null)<br /> use_metric_threshold = optional(bool, true)<br /> metric_threshold_count = optional(number, 2)<br /> metric_lookback_minutes = optional(number, 1)<br /> auto_close_seconds = optional(number, 3600)<br /> enabled = optional(bool, true)<br /> filter_extra = optional(string, "")<br /> namespace = optional(string, "kyverno")<br /> })</pre > | n/a | yes |
38+ | <a name =" input_notification_channels " ></a > [ notification\_ channels] ( #input\_ notification\_ channels ) | List of notification channel IDs to notify when an alert is triggered | ` list(string) ` | ` [] ` | no |
39+ | <a name =" input_project_id " ></a > [ project\_ id ] ( #input\_ project\_ id ) | The Google Cloud project ID where logging exclusions will be created | ` string ` | n/a | yes |
3440
3541## Outputs
3642
@@ -44,13 +50,15 @@ Supported services:
4450
4551| Name | Type |
4652| ------| ------|
53+ | [ google_logging_metric.kyverno_error_metric] ( https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/logging_metric ) | resource |
4754| [ google_monitoring_alert_policy.cloud_sql_cpu_utilization] ( https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy ) | resource |
4855| [ google_monitoring_alert_policy.cloud_sql_disk_utilization] ( https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy ) | resource |
4956| [ google_monitoring_alert_policy.cloud_sql_memory_utilization] ( https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy ) | resource |
57+ | [ google_monitoring_alert_policy.kyverno_logmatch_alert] ( https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy ) | resource |
58+ | [ google_monitoring_alert_policy.kyverno_metric_threshold_alert] ( https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy ) | resource |
5059
5160## Modules
5261
5362No modules.
5463
55-
5664<!-- END_TF_DOCS -->
0 commit comments