Skip to content

Commit d7a562e

Browse files
committed
cloud_run_alerts: add flexible json-based log indicators and policies
1 parent ed3653b commit d7a562e

File tree

3 files changed

+114
-40
lines changed

3 files changed

+114
-40
lines changed

modules/alerts_cloud_run/README.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<!-- BEGIN_TF_DOCS -->
21
## Examples
32

43
```terraform
@@ -106,23 +105,24 @@ module "cloud_run_service_alerts" {
106105

107106
| Name | Description | Type | Default | Required |
108107
|------|-------------|------|---------|:--------:|
109-
| <a name="input_built_in_container_util_indicators"></a> [built\_in\_container\_util\_indicators](#input\_built\_in\_container\_util\_indicators) | Map for Cloud Run container utilization indicators. The window must be in seconds. Threshold should be represented | <pre>map(object({<br> metric = string<br> window = number<br> threshold = number<br> p_value = optional(number)<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> }))</pre> | `{}` | no |
110-
| <a name="input_built_in_forward_progress_indicators"></a> [built\_in\_forward\_progress\_indicators](#input\_built\_in\_forward\_progress\_indicators) | Map for forward progress Cloud Run indicators. The window must be in seconds. | <pre>map(object({<br> metric = string<br> window = number<br> threshold = number<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> }))</pre> | `{}` | no |
111-
| <a name="input_cloud_run_resource"></a> [cloud\_run\_resource](#input\_cloud\_run\_resource) | One of either service name or job name which will dictate the Cloud Run resource to monitor. | <pre>object({<br> service_name = optional(string)<br> job_name = optional(string)<br> })</pre> | n/a | yes |
108+
| <a name="input_built_in_container_util_indicators"></a> [built\_in\_container\_util\_indicators](#input\_built\_in\_container\_util\_indicators) | Map for Cloud Run container utilization indicators. The window must be in seconds. Threshold should be represented | <pre>map(object({<br/> metric = string<br/> window = number<br/> threshold = number<br/> p_value = optional(number)<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> }))</pre> | `{}` | no |
109+
| <a name="input_built_in_forward_progress_indicators"></a> [built\_in\_forward\_progress\_indicators](#input\_built\_in\_forward\_progress\_indicators) | Map for forward progress Cloud Run indicators. The window must be in seconds. | <pre>map(object({<br/> metric = string<br/> window = number<br/> threshold = number<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> }))</pre> | `{}` | no |
110+
| <a name="input_cloud_run_resource"></a> [cloud\_run\_resource](#input\_cloud\_run\_resource) | One of either service name or job name which will dictate the Cloud Run resource to monitor. | <pre>object({<br/> service_name = optional(string)<br/> job_name = optional(string)<br/> })</pre> | n/a | yes |
112111
| <a name="input_enable_built_in_container_indicators"></a> [enable\_built\_in\_container\_indicators](#input\_enable\_built\_in\_container\_indicators) | A flag to enable or disable the creation of built in container utilization indicators. | `bool` | `false` | no |
113112
| <a name="input_enable_built_in_forward_progress_indicators"></a> [enable\_built\_in\_forward\_progress\_indicators](#input\_enable\_built\_in\_forward\_progress\_indicators) | A flag to enable or disable the creation of built in forward progress indicators. | `bool` | `false` | no |
114113
| <a name="input_enable_log_based_json_indicators"></a> [enable\_log\_based\_json\_indicators](#input\_enable\_log\_based\_json\_indicators) | A flag to enable or disable the creation of log based JSON indicators. | `bool` | `false` | no |
115114
| <a name="input_enable_log_based_text_indicators"></a> [enable\_log\_based\_text\_indicators](#input\_enable\_log\_based\_text\_indicators) | A flag to enable or disable the creation of log based text indicators. | `bool` | `false` | no |
116-
| <a name="input_job_failure_configuration"></a> [job\_failure\_configuration](#input\_job\_failure\_configuration) | Configuration applied to the job failure alert policy. Only applies to jobs. | <pre>object({<br> enabled = bool<br> window = number<br> threshold = number<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> })</pre> | <pre>{<br> "additional_filters": "",<br> "additional_group_by_fields": [],<br> "enabled": false,<br> "threshold": 0,<br> "window": 300<br>}</pre> | no |
117-
| <a name="input_log_based_json_indicators"></a> [log\_based\_json\_indicators](#input\_log\_based\_json\_indicators) | Map for log based indicators using JSON payload. Payload message is a regex match. | <pre>map(object({<br> log_name_suffix = string<br> severity = string<br> condition_threshold = object({<br> window = number<br> threshold = number<br> })<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> }))</pre> | `{}` | no |
118-
| <a name="input_log_based_text_indicators"></a> [log\_based\_text\_indicators](#input\_log\_based\_text\_indicators) | Map for log based indicators using text payload. Payload message is a regex match. | <pre>map(object({<br> log_name_suffix = string<br> severity = string<br> text_payload_message = string<br> condition_threshold = object({<br> window = number<br> threshold = number<br> })<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> }))</pre> | `{}` | no |
115+
| <a name="input_job_failure_configuration"></a> [job\_failure\_configuration](#input\_job\_failure\_configuration) | Configuration applied to the job failure alert policy. Only applies to jobs. | <pre>object({<br/> enabled = bool<br/> window = number<br/> threshold = number<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> })</pre> | <pre>{<br/> "additional_filters": "",<br/> "additional_group_by_fields": [],<br/> "enabled": false,<br/> "threshold": 0,<br/> "window": 300<br/>}</pre> | no |
116+
| <a name="input_log_based_json_alert_policies"></a> [log\_based\_json\_alert\_policies](#input\_log\_based\_json\_alert\_policies) | Definition of alert policies, each potentially referencing multiple metrics. | <pre>map(object({<br/> metric_keys = list(string)<br/> condition_threshold = object({<br/> window = number<br/> threshold = number<br/> })<br/> additional_group_by_fields = optional(list(string), [])<br/> runbook_url = optional(string)<br/> }))</pre> | `{}` | no |
117+
| <a name="input_log_based_json_indicators"></a> [log\_based\_json\_indicators](#input\_log\_based\_json\_indicators) | Map for log-based indicators with custom label extraction. | <pre>map(object({<br/> log_name_suffix = string<br/> severity = string<br/> condition_threshold = object({<br/> window = number<br/> threshold = number<br/> })<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> label_extractors = optional(map(string), {})<br/> }))</pre> | `{}` | no |
118+
| <a name="input_log_based_text_indicators"></a> [log\_based\_text\_indicators](#input\_log\_based\_text\_indicators) | Map for log based indicators using text payload. Payload message is a regex match. | <pre>map(object({<br/> log_name_suffix = string<br/> severity = string<br/> text_payload_message = string<br/> condition_threshold = object({<br/> window = number<br/> threshold = number<br/> })<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> }))</pre> | `{}` | no |
119119
| <a name="input_notification_channels_non_paging"></a> [notification\_channels\_non\_paging](#input\_notification\_channels\_non\_paging) | List of notification channels to alert. | `list(string)` | `[]` | no |
120120
| <a name="input_project_id"></a> [project\_id](#input\_project\_id) | The GCP project ID. | `string` | n/a | yes |
121-
| <a name="input_runbook_urls"></a> [runbook\_urls](#input\_runbook\_urls) | URLs of markdown files. | <pre>object({<br> forward_progress = optional(string)<br> container_util = optional(string)<br> bad_request = optional(string)<br> server_fault = optional(string)<br> request_latency = optional(string)<br> max_conns = optional(string)<br> job_failure = optional(string)<br> text_based_logs = optional(string)<br> json_based_logs = optional(string)<br> })</pre> | n/a | yes |
122-
| <a name="input_service_4xx_configuration"></a> [service\_4xx\_configuration](#input\_service\_4xx\_configuration) | Configuration applied to the 4xx alert policy. Only applies to services. | <pre>object({<br> enabled = bool<br> window = number<br> threshold = number<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> })</pre> | <pre>{<br> "additional_filters": "",<br> "additional_group_by_fields": [],<br> "enabled": false,<br> "threshold": 0,<br> "window": 300<br>}</pre> | no |
123-
| <a name="input_service_5xx_configuration"></a> [service\_5xx\_configuration](#input\_service\_5xx\_configuration) | Configuration applied to the 5xx alert policy. Only applies to services. | <pre>object({<br> enabled = bool<br> window = number<br> threshold = number<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> })</pre> | <pre>{<br> "additional_filters": "",<br> "additional_group_by_fields": [],<br> "enabled": false,<br> "threshold": 0,<br> "window": 300<br>}</pre> | no |
124-
| <a name="input_service_latency_configuration"></a> [service\_latency\_configuration](#input\_service\_latency\_configuration) | Configuration applied to the request latency alert policy. Only applies to services. | <pre>object({<br> enabled = bool<br> window = number<br> threshold_ms = number<br> p_value = number<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> })</pre> | <pre>{<br> "additional_filters": "",<br> "additional_group_by_fields": [],<br> "enabled": false,<br> "p_value": 95,<br> "threshold_ms": 0,<br> "window": 300<br>}</pre> | no |
125-
| <a name="input_service_max_conns_configuration"></a> [service\_max\_conns\_configuration](#input\_service\_max\_conns\_configuration) | Configuration applied to the max connections alert policy. Only applies to services. | <pre>object({<br> enabled = bool<br> window = number<br> threshold = number<br> p_value = number<br> additional_filters = optional(string)<br> additional_group_by_fields = optional(list(string))<br> })</pre> | <pre>{<br> "additional_filters": "",<br> "additional_group_by_fields": [],<br> "enabled": false,<br> "p_value": 95,<br> "threshold": 0,<br> "window": 300<br>}</pre> | no |
121+
| <a name="input_runbook_urls"></a> [runbook\_urls](#input\_runbook\_urls) | URLs of markdown files. | <pre>object({<br/> forward_progress = optional(string)<br/> container_util = optional(string)<br/> bad_request = optional(string)<br/> server_fault = optional(string)<br/> request_latency = optional(string)<br/> max_conns = optional(string)<br/> job_failure = optional(string)<br/> text_based_logs = optional(string)<br/> json_based_logs = optional(string)<br/> })</pre> | n/a | yes |
122+
| <a name="input_service_4xx_configuration"></a> [service\_4xx\_configuration](#input\_service\_4xx\_configuration) | Configuration applied to the 4xx alert policy. Only applies to services. | <pre>object({<br/> enabled = bool<br/> window = number<br/> threshold = number<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> })</pre> | <pre>{<br/> "additional_filters": "",<br/> "additional_group_by_fields": [],<br/> "enabled": false,<br/> "threshold": 0,<br/> "window": 300<br/>}</pre> | no |
123+
| <a name="input_service_5xx_configuration"></a> [service\_5xx\_configuration](#input\_service\_5xx\_configuration) | Configuration applied to the 5xx alert policy. Only applies to services. | <pre>object({<br/> enabled = bool<br/> window = number<br/> threshold = number<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> })</pre> | <pre>{<br/> "additional_filters": "",<br/> "additional_group_by_fields": [],<br/> "enabled": false,<br/> "threshold": 0,<br/> "window": 300<br/>}</pre> | no |
124+
| <a name="input_service_latency_configuration"></a> [service\_latency\_configuration](#input\_service\_latency\_configuration) | Configuration applied to the request latency alert policy. Only applies to services. | <pre>object({<br/> enabled = bool<br/> window = number<br/> threshold_ms = number<br/> p_value = number<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> })</pre> | <pre>{<br/> "additional_filters": "",<br/> "additional_group_by_fields": [],<br/> "enabled": false,<br/> "p_value": 95,<br/> "threshold_ms": 0,<br/> "window": 300<br/>}</pre> | no |
125+
| <a name="input_service_max_conns_configuration"></a> [service\_max\_conns\_configuration](#input\_service\_max\_conns\_configuration) | Configuration applied to the max connections alert policy. Only applies to services. | <pre>object({<br/> enabled = bool<br/> window = number<br/> threshold = number<br/> p_value = number<br/> additional_filters = optional(string)<br/> additional_group_by_fields = optional(list(string))<br/> })</pre> | <pre>{<br/> "additional_filters": "",<br/> "additional_group_by_fields": [],<br/> "enabled": false,<br/> "p_value": 95,<br/> "threshold": 0,<br/> "window": 300<br/>}</pre> | no |
126126

127127
## Outputs
128128

@@ -161,4 +161,3 @@ No outputs.
161161
## Modules
162162

163163
No modules.
164-
<!-- END_TF_DOCS -->

0 commit comments

Comments
 (0)