alert_policies |
Alert policy configuration objects |
list(object({ alert_strategy = optional(object({ notification_rate_limit = optional(object({ period = optional(number) })) auto_close = optional(string) })) combiner = string conditions = list(object({ condition_absent = optional(object({ aggregations = list(object({ alignment_period = optional(string) cross_series_reducer = optional(string) # validate group_by_fields = optional(string) # ?? per_series_aligner = optional(string) # validate })) duration = string # Valid: minutes in seconds: must be /60 filter = optional(string) trigger = optional(object({ count = optional(number) percent = optional(number) })) })) condition_matched_log = optional(object({ filter = optional(string) label_extractors = optional(map(string)) })) condition_monitoring_query_language = optional(object({ duration = string evaluation_missing_data = optional(string) # validate query = string trigger = optional(object({ count = optional(number) percent = optional(number) })) })) condition_threshold = optional(object({ aggregations = optional(list(object({ alignment_period = optional(string) # validate cross_series_reducer = optional(string) # validate group_by_fields = optional(list(string)) # ?? per_series_aligner = optional(string) # validate }))) comparison = string # validate [COMPARISON_GT COMPARISON_GE COMPARISON_LT COMPARISON_LE COMPARISON_EQ COMPARISON_NE] denominator_aggregations = optional(object({ alignment_period = optional(string) cross_series_reducer = optional(string) # validate group_by_fields = optional(string) # ?? per_series_aligner = optional(string) # validate })) denominator_filter = optional(string) duration = string evaluation_missing_data = optional(string) # validate filter = optional(string) threshold_value = optional(number) trigger = optional(object({ count = optional(number) percent = optional(number) })) })) display_name = string })) display_name = string documentation = object({ content = string mime_type = optional(string, "text/markdown") subject = optional(string) }) enabled = optional(bool, true) notification_channels = optional(list(string), []) severity = optional(string) # validate: CRITICAL, ERROR, WARNING user_labels = optional(map(string)) })) |
[ { "combiner": "", "conditions": [ { "display_name": "" } ], "display_name": "", "documentation": { "content": "" } } ] |
no |
custom_services |
List of Custom Service configuration objects |
list(object({ display_name = optional(string) service_id = optional(string) telemetry = optional(object({ resource_name = optional(string) })) user_labels = optional(map(string)) })) |
[] |
no |
dashboard_sources_path |
Path to process dashboard source files |
string |
"" |
no |
dashboard_sources_pattern |
Dashboard json files pattern |
string |
"**" |
no |
enable_alert_policies |
Enable managing Alert Polices |
bool |
false |
no |
enable_dashboards |
Enable managing Dashboards |
bool |
false |
no |
enable_groups |
Enable managing Groups |
bool |
false |
no |
enable_log_metrics |
Enable managing Log Metrics |
bool |
false |
no |
enable_logging |
Enable managing central Logging |
bool |
false |
no |
enable_metric_descriptors |
Enable managing Metric Descriptors |
bool |
false |
no |
enable_notification_channels |
Enable managing Notification Channels |
bool |
false |
no |
enable_project_scope |
Enable managing Project metric scopes |
bool |
false |
no |
enable_services |
Enable managing Services |
bool |
false |
no |
enable_slo |
Enable managing SLOs |
bool |
false |
no |
enable_uptime_checks |
Enable managing Uptime Checks |
bool |
false |
no |
gcp_project |
GCP project to put monitoring in |
string |
n/a |
yes |
groups |
List of group confiiguration object |
list(object({ display_name = string filter = string is_cluster = optional(bool) parent_name = optional(string) })) |
[ { "display_name": "", "filter": "" } ] |
no |
logging_bucket |
Logging Bucket name |
string |
"" |
no |
logging_metrics |
List of logging metric configuration objects |
list(object({ name = string bucket_name = optional(string) bucket_options = optional(object({ explicit_buckets = optional(object({ bounds = string })) exponential_buckets = optional(object({ growth_factor = optional(number) num_finite_buckets = optional(number) scale = optional(number) })) linear_buckets = optional(object({ num_finite_buckets = optional(number) offset = optional(string) width = optional(number) })) })) description = optional(string) filter = string label_extractors = optional(map(string)) metric_descriptor = optional(object({ description = optional(string) # Not supported display_name = optional(string) labels = optional(list(object({ description = optional(string) key = string value_type = optional(string) }))) metric_kind = string # validate type = string # Not supported unit = optional(string) # validate value_type = string # validate })) value_extractor = optional(string) })) |
[ { "filter": "", "name": "" } ] |
no |
metric_descriptors |
List of Metric Dedscriptor configuration objects |
list(object({ description = string display_name = string labels = optional(object({ description = optional(string) key = string value_type = optional(string) # validate })) launch_stage = optional(string) # validate metadata = optional(object({ ingest_delay = optional(string) sample_period = optional(string) })) metric_kind = string # validate type = string unit = optional(string) value_type = string # validate })) |
[ { "description": "", "display_name": "", "metric_kind": "", "type": "", "value_type": "" } ] |
no |
notification_channels |
Notification channel configuration objects |
list(object({ description = string display_name = string enabled = bool labels = optional(map(string)) sensitive_labels = optional(object({ auth_token = optional(string) password = optional(string) service_key = optional(string) })) user_labels = optional(map(string)) type = string })) |
[ { "description": "", "display_name": "", "enabled": false, "type": "sms" } ] |
no |
organization_name |
Organization name |
string |
"" |
no |
organization_sink |
Organization Sink name |
string |
"" |
no |
services |
List of Service configuration objects |
list(object({ basic_service = optional(object({ service_labels = optional(map(string)) service_type = optional(string) # validate })) display_name = string service_id = string user_labels = optional(map(string)) })) |
[ { "display_name": "", "service_id": "" } ] |
no |
slos |
List of SLO configuration objects |
list(object({ basic_sli = optional(object({ availability = optional(object({ enabled = optional(bool) })) latency = optional(object({ threshold = string })) location = optional(string) method = optional(string) version = optional(string) })) # validate calendar_period = optional(string) # validate display_name = string goal = string request_based_sli = optional(object({ distribution_cut = optional(object({ distribution_filter = string range = object({ max = optional(string) min = optional(string) }) })) good_total_ratio = optional(object({ bad_service_filter = optional(string) good_service_filter = optional(string) #map(string) ? total_service_filter = optional(string) })) })) # validate rolling_period_days = optional(string) service = string slo_id = optional(string) user_labels = optional(map(string)) windows_based_sli = optional(object({ good_bad_metric_filter = optional(string) good_total_ratio_threshold = optional(object({ basic_sli_performance = optional(object({ availability = optional(object({ enabled = optional(bool) })) latency = optional(object({ threshold = string })) location = optional(string) method = optional(string) version = optional(string) })) performance = optional(object({ distribution_cut = optional(object({ distribution_filter = string range = object({ max = optional(string) min = optional(string) }) })) good_total_ratio = optional(object({ bad_service_filter = optional(string) good_service_filter = optional(string) total_service_filter = optional(string) })) })) threshold = optional(string) })) metric_mean_in_range = optional(object({ range = object({ max = optional(string) min = optional(string) }) time_series = string })) metric_sum_in_range = optional(object({ range = object({ max = optional(string) min = optional(string) }) time_series = string })) window_period = optional(string) })) # validate })) |
[ { "display_name": "", "goal": "", "service": "" } ] |
no |
uptime_checks |
Uptime check configuration objects |
list(object({ checker_type = optional(string) content_matchers = optional(object({ content = string matcher = optional(string) json_path_matcher = optional(object({ json_path = string json_matcher = optional(string) })) })) display_name = string http_check = optional(object({ accepted_response_status_codes = optional(list(object({ status_class = optional(string) status_value = optional(string) # validate }))) auth_info = optional(object({ password = string username = string })) body = optional(string) content_type = optional(string) headers = optional(map(string)) mark_headers = optional(bool) path = optional(string) port = optional(string) request_method = optional(string) use_ssl = optional(bool) validate_ssl = optional(bool) })) monitored_resource = optional(object({ # validate labels = object({ cluster_name = optional(string) host = optional(string) instance_id = optional(string) location = optional(string) namespace_name = optional(string) project_id = optional(string) service_name = optional(string) zone = optional(string) }) type = string })) period = optional(string) # validate resource_group = optional(object({ group_id = optional(string) resource_type = optional(string) # validate })) # Requires 3. Either global (default) or 3 US regions selected_regions = optional(list(string)) # validate tcp_check = optional(object({ port = string })) timeout = string # validate })) |
[ { "display_name": "", "monitored_resource": { "labels": { "project_id": "" }, "type": "uptime_url" }, "timeout": "10s" } ] |
no |