From eeb25238e1b899e0c9b6b485501ae973daf93004 Mon Sep 17 00:00:00 2001 From: Patryk Gudalewicz Date: Wed, 1 Mar 2023 18:32:57 +0100 Subject: [PATCH 1/6] "Migrating from Monaco to Terraform for management zone: CD_am-store" --- CN_PREPROD/alerting/cd_am-store_int.tf | 38 +++ CN_PREPROD/dashboard/cd_am-store_int.tf | 297 ++++++++++++++++++++++ CN_PREPROD/dashboard/cd_am-store_test.tf | 297 ++++++++++++++++++++++ CN_PREPROD/management_zone/cd_am-store.tf | 95 +++++++ 4 files changed, 727 insertions(+) create mode 100644 CN_PREPROD/alerting/cd_am-store_int.tf create mode 100644 CN_PREPROD/dashboard/cd_am-store_int.tf create mode 100644 CN_PREPROD/dashboard/cd_am-store_test.tf create mode 100644 CN_PREPROD/management_zone/cd_am-store.tf diff --git a/CN_PREPROD/alerting/cd_am-store_int.tf b/CN_PREPROD/alerting/cd_am-store_int.tf new file mode 100644 index 00000000..b70c5192 --- /dev/null +++ b/CN_PREPROD/alerting/cd_am-store_int.tf @@ -0,0 +1,38 @@ +# DEFINE dynatrace_alerting.CD_am-store_INT.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACRmYzM1YzRmZi1kYmU1LTRjMDAtOGFkNC0yNjUyZTRiMGUyMje-71TeFdrerQ +data "dynatrace_management_zone" "CD_am-store_INT"{ name="CD_am-store" } +resource "dynatrace_alerting" "CD_am-store_INT" { + name = "CD_am-store INT" + management_zone = data.dynatrace_management_zone.CD_am-store_INT.id + rules { + rule { + delay_in_minutes = 0 + include_mode = "INCLUDE_ALL" + severity_level = "AVAILABILITY" + tags = [ "Component:am-store", "Environment:INT" ] + } + rule { + delay_in_minutes = 10 + include_mode = "INCLUDE_ALL" + severity_level = "CUSTOM_ALERT" + tags = [ "Component:am-store", "Environment:INT" ] + } + rule { + delay_in_minutes = 10 + include_mode = "INCLUDE_ALL" + severity_level = "ERRORS" + tags = [ "Component:am-store", "Environment:INT" ] + } + rule { + delay_in_minutes = 30 + include_mode = "INCLUDE_ALL" + severity_level = "PERFORMANCE" + tags = [ "Component:am-store", "Environment:INT" ] + } + rule { + delay_in_minutes = 30 + include_mode = "INCLUDE_ALL" + severity_level = "RESOURCE_CONTENTION" + tags = [ "Component:am-store", "Environment:INT" ] + } + } +} \ No newline at end of file diff --git a/CN_PREPROD/dashboard/cd_am-store_int.tf b/CN_PREPROD/dashboard/cd_am-store_int.tf new file mode 100644 index 00000000..c6908828 --- /dev/null +++ b/CN_PREPROD/dashboard/cd_am-store_int.tf @@ -0,0 +1,297 @@ +# DEFINE dynatrace_dashboard.CD_am-store_INT.id = 0685a933-ad9e-49ce-92b5-de76a1fd830c +data "dynatrace_management_zone" "CD_am-store_INT"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_INT" { + dashboard_metadata { + name = "CD_am-store INT" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/CN_PREPROD/dashboard/cd_am-store_test.tf b/CN_PREPROD/dashboard/cd_am-store_test.tf new file mode 100644 index 00000000..a3c1f178 --- /dev/null +++ b/CN_PREPROD/dashboard/cd_am-store_test.tf @@ -0,0 +1,297 @@ +# DEFINE dynatrace_dashboard.CD_am-store_TEST.id = 0ba2afad-7f88-457c-920a-045e2250ef2d +data "dynatrace_management_zone" "CD_am-store_TEST"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_TEST" { + dashboard_metadata { + name = "CD_am-store TEST" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/CN_PREPROD/management_zone/cd_am-store.tf b/CN_PREPROD/management_zone/cd_am-store.tf new file mode 100644 index 00000000..fe452554 --- /dev/null +++ b/CN_PREPROD/management_zone/cd_am-store.tf @@ -0,0 +1,95 @@ +# DEFINE dynatrace_management_zone.CD_am-store.id = 2054728345122846851 +resource "dynatrace_management_zone" "CD_am-store" { + name = "CD_am-store" + rules { + type = "CLOUD_APPLICATION" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "CLOUD_APPLICATION_NAMESPACE" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAMESPACE_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "HOST" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "HOST_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "PROCESS_GROUP" + enabled = true + propagation_types = [ "PROCESS_GROUP_TO_HOST" ] + conditions { + key { + type = "STATIC" + attribute = "PROCESS_GROUP_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "SERVICE" + enabled = true + propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ] + conditions { + key { + type = "STATIC" + attribute = "SERVICE_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } +} From 3e68b0c61280f8a615ff443b6bd257e4b54b4f74 Mon Sep 17 00:00:00 2001 From: Patryk Gudalewicz Date: Wed, 1 Mar 2023 18:51:05 +0100 Subject: [PATCH 2/6] "Migrating from Monaco to Terraform for management zone: CD_am-store" --- CN_PROD/alerting/cd_am-store_prod.tf | 51 +++++ CN_PROD/dashboard/cd_am-store_e2e.tf | 294 ++++++++++++++++++++++++ CN_PROD/dashboard/cd_am-store_prod.tf | 297 +++++++++++++++++++++++++ CN_PROD/management_zone/cd_am-store.tf | 95 ++++++++ 4 files changed, 737 insertions(+) create mode 100644 CN_PROD/alerting/cd_am-store_prod.tf create mode 100644 CN_PROD/dashboard/cd_am-store_e2e.tf create mode 100644 CN_PROD/dashboard/cd_am-store_prod.tf create mode 100644 CN_PROD/management_zone/cd_am-store.tf diff --git a/CN_PROD/alerting/cd_am-store_prod.tf b/CN_PROD/alerting/cd_am-store_prod.tf new file mode 100644 index 00000000..0e1697f4 --- /dev/null +++ b/CN_PROD/alerting/cd_am-store_prod.tf @@ -0,0 +1,51 @@ +# DEFINE dynatrace_alerting.CD_am-store_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACRkYTk1Mzk5Yi02ZDUzLTQ3ZWMtYTVhZC1hYTc5ZGU4ZGRkNGa-71TeFdrerQ +data "dynatrace_management_zone" "CD_am-store_PROD"{ name="CD_am-store" } +resource "dynatrace_alerting" "CD_am-store_PROD" { + name = "CD_am-store PROD" + management_zone = data.dynatrace_management_zone.CD_am-store_PROD.id + filters { + filter { + custom { + title { + enabled = true + # case_sensitive = false + negate = true + operator = "CONTAINS" + value = "Wirkkette \"CD Store Mobile\" - Reliability of key requests" + } + } + } + } + rules { + rule { + delay_in_minutes = 0 + include_mode = "INCLUDE_ALL" + severity_level = "AVAILABILITY" + tags = [ "Component:am-store", "Environment:PROD" ] + } + rule { + delay_in_minutes = 10 + include_mode = "INCLUDE_ALL" + severity_level = "CUSTOM_ALERT" + tags = [ "Component:am-store", "Environment:PROD" ] + } + rule { + delay_in_minutes = 10 + include_mode = "INCLUDE_ALL" + severity_level = "ERRORS" + tags = [ "Component:am-store", "Environment:PROD" ] + } + rule { + delay_in_minutes = 30 + include_mode = "INCLUDE_ALL" + severity_level = "PERFORMANCE" + tags = [ "Component:am-store", "Environment:PROD" ] + } + rule { + delay_in_minutes = 30 + include_mode = "INCLUDE_ALL" + severity_level = "RESOURCE_CONTENTION" + tags = [ "Component:am-store", "Environment:PROD" ] + } + } +} \ No newline at end of file diff --git a/CN_PROD/dashboard/cd_am-store_e2e.tf b/CN_PROD/dashboard/cd_am-store_e2e.tf new file mode 100644 index 00000000..83c4acd3 --- /dev/null +++ b/CN_PROD/dashboard/cd_am-store_e2e.tf @@ -0,0 +1,294 @@ +# DEFINE dynatrace_dashboard.CD_am-store_E2E.id = 9b4327ee-1320-4da0-865c-13d18b78080c +data "dynatrace_management_zone" "CD_am-store_E2E"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_E2E" { + dashboard_metadata { + name = "CD_am-store E2E" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_E2E.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/CN_PROD/dashboard/cd_am-store_prod.tf b/CN_PROD/dashboard/cd_am-store_prod.tf new file mode 100644 index 00000000..4602b95a --- /dev/null +++ b/CN_PROD/dashboard/cd_am-store_prod.tf @@ -0,0 +1,297 @@ +# DEFINE dynatrace_dashboard.CD_am-store_PROD.id = 090d5c22-2cac-4039-8fa0-e0f04acf19f7 +data "dynatrace_management_zone" "CD_am-store_PROD"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_PROD" { + dashboard_metadata { + name = "CD_am-store PROD" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_PROD.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/CN_PROD/management_zone/cd_am-store.tf b/CN_PROD/management_zone/cd_am-store.tf new file mode 100644 index 00000000..3feef462 --- /dev/null +++ b/CN_PROD/management_zone/cd_am-store.tf @@ -0,0 +1,95 @@ +# DEFINE dynatrace_management_zone.CD_am-store.id = -7231574652166188433 +resource "dynatrace_management_zone" "CD_am-store" { + name = "CD_am-store" + rules { + type = "CLOUD_APPLICATION" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "CLOUD_APPLICATION_NAMESPACE" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAMESPACE_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "HOST" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "HOST_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "PROCESS_GROUP" + enabled = true + propagation_types = [ "PROCESS_GROUP_TO_HOST" ] + conditions { + key { + type = "STATIC" + attribute = "PROCESS_GROUP_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "SERVICE" + enabled = true + propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ] + conditions { + key { + type = "STATIC" + attribute = "SERVICE_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } +} From 7b945878186190de4b93b45fdc160f50fa9caae0 Mon Sep 17 00:00:00 2001 From: Patryk Gudalewicz Date: Wed, 1 Mar 2023 18:56:03 +0100 Subject: [PATCH 3/6] "Migrating from Monaco to Terraform for management zone: CD_am-store" --- EMEA_PREPROD/dashboard/cd_am-store_int.tf | 357 +++++++++++++++++++ EMEA_PREPROD/dashboard/cd_am-store_test.tf | 360 ++++++++++++++++++++ EMEA_PREPROD/management_zone/cd_am-store.tf | 151 ++++++++ 3 files changed, 868 insertions(+) create mode 100644 EMEA_PREPROD/dashboard/cd_am-store_int.tf create mode 100644 EMEA_PREPROD/dashboard/cd_am-store_test.tf create mode 100644 EMEA_PREPROD/management_zone/cd_am-store.tf diff --git a/EMEA_PREPROD/dashboard/cd_am-store_int.tf b/EMEA_PREPROD/dashboard/cd_am-store_int.tf new file mode 100644 index 00000000..53eb22c1 --- /dev/null +++ b/EMEA_PREPROD/dashboard/cd_am-store_int.tf @@ -0,0 +1,357 @@ +# DEFINE dynatrace_dashboard.CD_am-store_INT.id = f0f0492b-09ae-4f13-aef6-fc082ac9b7c3 +data "dynatrace_management_zone" "CD_am-store_INT"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_INT" { + dashboard_metadata { + name = "CD_am-store INT" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "CD_am-store" ] + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:INT" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:INT" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Environment:INT" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:INT" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Environment:INT" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/EMEA_PREPROD/dashboard/cd_am-store_test.tf b/EMEA_PREPROD/dashboard/cd_am-store_test.tf new file mode 100644 index 00000000..c3499fd2 --- /dev/null +++ b/EMEA_PREPROD/dashboard/cd_am-store_test.tf @@ -0,0 +1,360 @@ +# DEFINE dynatrace_dashboard.CD_am-store_TEST.id = dc4c27e7-91bb-46ff-a7fb-47a24a8e1c76 +data "dynatrace_management_zone" "CD_am-store_TEST"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_TEST" { + dashboard_metadata { + name = "CD_am-store TEST" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "CD_am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:TEST" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:TEST" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Environment:TEST" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:TEST" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Environment:TEST" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/EMEA_PREPROD/management_zone/cd_am-store.tf b/EMEA_PREPROD/management_zone/cd_am-store.tf new file mode 100644 index 00000000..b34a1578 --- /dev/null +++ b/EMEA_PREPROD/management_zone/cd_am-store.tf @@ -0,0 +1,151 @@ +# DEFINE dynatrace_management_zone.CD_am-store.id = 3106960719787831782 +resource "dynatrace_management_zone" "CD_am-store" { + name = "CD_am-store" + entity_selector_based_rule { + enabled = true + selector =<<-EOT + type(HOST),tag("ms-id:CD-Store-Backend-IF80","ms-id:CD-Store-Backend-IF70","ms-id:CD-Store-Backend-IF81") + EOT + } + entity_selector_based_rule { + # enabled = false + selector = "type(SERVICE),databaseName.exists(),toRelationship.calls(type(SERVICE),tag('msid:CD-Store-Backend-IF80','msid:CD-Store-Backend-IF70','msid:CD-Store-Backend-IF81'))" + } + entity_selector_based_rule { + enabled = true + selector =<<-EOT + type(Service),tag("ms-id:CD-Store-Backend-IF80","ms-id:CD-Store-Backend-IF70","ms-id:CD-Store-Backend-IF81") + EOT + } + entity_selector_based_rule { + # enabled = false + selector = "type(Service),tag('ms-id:CD-Store-Backend-IF80','ms-id:CD-Store-Backend-IF70','ms-id:CD-Store-Backend-IF81')" + } + entity_selector_based_rule { + # enabled = false + selector = "type(PROCESS_GROUP_INSTANCE),tag('ms-id:CD-Store-Backend-IF80','ms-id:CD-Store-Backend-IF70','ms-id:CD-Store-Backend-IF81')" + } + entity_selector_based_rule { + # enabled = false + selector = "type(HOST),tag('msid:CD-Store-Backend-IF80','msid:CD-Store-Backend-IF70','msid:CD-Store-Backend-IF81')" + } + entity_selector_based_rule { + # enabled = false + selector = "type(SERVICE),databaseName.exists(),toRelationship.calls(type(SERVICE),tag('ms-id:CD-Store-Backend-IF80','ms-id:CD-Store-Backend-IF70','ms-id:CD-Store-Backend-IF81'))" + } + entity_selector_based_rule { + enabled = true + selector =<<-EOT + type(PROCESS_GROUP_INSTANCE),tag("ms-id:CD-Store-Backend-IF80","ms-id:CD-Store-Backend-IF70","ms-id:CD-Store-Backend-IF81") + EOT + } + entity_selector_based_rule { + # enabled = false + selector = "type(Service),tag('msid:CD-Store-Backend-IF80','msid:CD-Store-Backend-IF70','msid:CD-Store-Backend-IF81')" + } + entity_selector_based_rule { + # enabled = false + selector = "type(PROCESS_GROUP_INSTANCE),tag('msid:CD-Store-Backend-IF80','msid:CD-Store-Backend-IF70','msid:CD-Store-Backend-IF81')" + } + entity_selector_based_rule { + # enabled = false + selector = "type(HOST),tag('ms-id:CD-Store-Backend-IF80','ms-id:CD-Store-Backend-IF70','ms-id:CD-Store-Backend-IF81')" + } + entity_selector_based_rule { + enabled = true + selector =<<-EOT + type(SERVICE),databaseName.exists(),toRelationship.calls(type(SERVICE),tag("ms-id:CD-Store-Backend-IF80","ms-id:CD-Store-Backend-IF70","ms-id:CD-Store-Backend-IF81")) + EOT + } + rules { + type = "CLOUD_APPLICATION" + # enabled = false + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "CLOUD_APPLICATION_NAMESPACE" + # enabled = false + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAMESPACE_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "HOST" + # enabled = false + conditions { + key { + type = "STATIC" + attribute = "HOST_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "PROCESS_GROUP" + # enabled = false + propagation_types = [ "PROCESS_GROUP_TO_HOST" ] + conditions { + key { + type = "STATIC" + attribute = "PROCESS_GROUP_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "SERVICE" + # enabled = false + propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ] + conditions { + key { + type = "STATIC" + attribute = "SERVICE_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } +} From a737523ed77996fcd00777fe72649cb3db78da12 Mon Sep 17 00:00:00 2001 From: Patryk Gudalewicz Date: Wed, 1 Mar 2023 18:58:51 +0100 Subject: [PATCH 4/6] "Migrating from Monaco to Terraform for management zone: CD_am-store" --- EMEA_PROD/alerting/cd_am-store_prod.tf | 38 + EMEA_PROD/dashboard/cd_am-store_e2e.tf | 324 +++ EMEA_PROD/dashboard/cd_am-store_prod-emea.tf | 2467 ++++++++++++++++++ EMEA_PROD/dashboard/cd_am-store_prod.tf | 324 +++ EMEA_PROD/management_zone/cd_am-store.tf | 104 + 5 files changed, 3257 insertions(+) create mode 100644 EMEA_PROD/alerting/cd_am-store_prod.tf create mode 100644 EMEA_PROD/dashboard/cd_am-store_e2e.tf create mode 100644 EMEA_PROD/dashboard/cd_am-store_prod-emea.tf create mode 100644 EMEA_PROD/dashboard/cd_am-store_prod.tf create mode 100644 EMEA_PROD/management_zone/cd_am-store.tf diff --git a/EMEA_PROD/alerting/cd_am-store_prod.tf b/EMEA_PROD/alerting/cd_am-store_prod.tf new file mode 100644 index 00000000..60f08829 --- /dev/null +++ b/EMEA_PROD/alerting/cd_am-store_prod.tf @@ -0,0 +1,38 @@ +# DEFINE dynatrace_alerting.CD_am-store_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQ1MWFiZTk5MC1mMTQzLTNjODgtYWU3MS1kMjY0MDFjOTAwMzG-71TeFdrerQ +data "dynatrace_management_zone" "CD_am-store_PROD"{ name="CD_am-store" } +resource "dynatrace_alerting" "CD_am-store_PROD" { + name = "CD_am-store PROD" + management_zone = data.dynatrace_management_zone.CD_am-store_PROD.id + filters { + filter { + custom { + title { + enabled = true + # case_sensitive = false + negate = true + operator = "CONTAINS" + value = "Wirkkette \"CD Store Mobile\" - Reliability of key requests" + } + } + } + } + rules { + rule { + delay_in_minutes = 0 + include_mode = "INCLUDE_ALL" + severity_level = "AVAILABILITY" + tags = [ "Component:am-store", "Environment:PROD", "service name:StoreOfferResourceV6" ] + } + rule { + delay_in_minutes = 10 + include_mode = "NONE" + severity_level = "CUSTOM_ALERT" + } + rule { + delay_in_minutes = 10 + include_mode = "INCLUDE_ALL" + severity_level = "ERRORS" + tags = [ "Component:am-store", "service name:StoreOfferResourceV6", "Environment:PROD" ] + } + } +} \ No newline at end of file diff --git a/EMEA_PROD/dashboard/cd_am-store_e2e.tf b/EMEA_PROD/dashboard/cd_am-store_e2e.tf new file mode 100644 index 00000000..87f185fe --- /dev/null +++ b/EMEA_PROD/dashboard/cd_am-store_e2e.tf @@ -0,0 +1,324 @@ +# DEFINE dynatrace_dashboard.CD_am-store_E2E.id = c2f24aec-7ffe-4fdf-b254-83afc4929687 +data "dynatrace_management_zone" "CD_am-store_E2E"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_E2E" { + dashboard_metadata { + name = "CD_am-store E2E" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_E2E.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/EMEA_PROD/dashboard/cd_am-store_prod-emea.tf b/EMEA_PROD/dashboard/cd_am-store_prod-emea.tf new file mode 100644 index 00000000..930a0011 --- /dev/null +++ b/EMEA_PROD/dashboard/cd_am-store_prod-emea.tf @@ -0,0 +1,2467 @@ +# DEFINE dynatrace_dashboard.CD_am-store_PROD-EMEA.id = e3fa1fed-ac3d-4c21-b1ee-e7f27d6cae3a +data "dynatrace_management_zone" "CD_am-store_PROD-EMEA"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_PROD-EMEA" { + dashboard_metadata { + name = "CD_am-store PROD-EMEA" + owner = "Aziza.Grimm@partner.bmw.de" + # preset = false + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 532 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_PROD-EMEA.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 0 + width = 1140 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 266 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 266 + left = 190 + top = 38 + width = 152 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 266 + left = 0 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "Service or request" + assigned_entities = [ "SERVICE_METHOD-A2C2CDC7AA551F5F", "SERVICE-2BF6A12A7CECE881" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 0 + top = 3116 + width = 342 + } + } + tile { + name = "StoreBasketResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-A77E2B0BA1B488DB", "SERVICE-4E37387AD5AC58F7" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 342 + left = 0 + top = 2394 + width = 418 + } + } + tile { + name = "VouchersResourceV1 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-12DCB012FC4E3D73", "SERVICE-3E1D695E30479D90" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 0 + top = 3762 + width = 1140 + } + } + tile { + name = "StoreSubmitResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-5FFA24749EBEEEAA", "SERVICE-213E0DD4E94EDABA" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 342 + left = 0 + top = 950 + width = 646 + } + } + tile { + name = "IBM MQ Queue Listener - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-ED365AAC0A878646", "SERVICE-0A7B4C1DC256A898" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 0 + top = 4104 + width = 1140 + } + } + tile { + name = "StoreProviderV2 - buffet-if* - prod" + assigned_entities = [ "SERVICE_METHOD-24607A4EA75358FE", "SERVICE-E798163F5A075EAD" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 0 + top = 3420 + width = 342 + } + } + tile { + name = "StoreOfferResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-12BA06A29F58D167", "SERVICE-F12F50114AAA1FAE" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 798 + top = 3116 + width = 342 + } + } + tile { + name = "StoreOfferResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-0A3487D9CB46209B", "SERVICE-2BF6A12A7CECE881" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 342 + left = 0 + top = 2774 + width = 608 + } + } + tile { + name = "StoreOfferResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-AAF72C67CEBA6F6A", "SERVICE-2BF6A12A7CECE881" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 342 + top = 3116 + width = 456 + } + } + tile { + name = "StoreOfferResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-A43AF100E7D290D7", "SERVICE-2BF6A12A7CECE881" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 342 + top = 3420 + width = 798 + } + } + tile { + name = "StoreOrderResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE_METHOD-BD79E8B0305E1C5B", "SERVICE-89ED9A710B048CBB" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 0 + top = 2052 + width = 608 + } + } + tile { + name = "Response time, Request Count and Number of Errors" + configured = true + custom_name = "Response time, Request Count and Number of Errors" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=null\u0026(builtin:service.response.time:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:am-store~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)):limit(100):names,(builtin:service.requestCount.total:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:am-store~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\"))))):splitBy():value:auto:sort(value(sum,descending)):limit(10)):limit(100):names,(builtin:service.errors.total.count:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:am-store~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\"))))):splitBy():value:auto:sort(value(sum,descending)):limit(10)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "id": "A", + "metricSelector": "builtin:service.response.time:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:am-store~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)", + "rate": "NONE", + "splitBy": [], + "timeAggregation": "DEFAULT" + }, + { + "enabled": true, + "id": "B", + "metricSelector": "builtin:service.requestCount.total:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:am-store~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\"))))):splitBy():value:auto:sort(value(sum,descending)):limit(10)", + "rate": "NONE", + "splitBy": [], + "timeAggregation": "DEFAULT" + }, + { + "enabled": true, + "id": "C", + "metricSelector": "builtin:service.errors.total.count:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:am-store~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\"))))):splitBy():value:auto:sort(value(sum,descending)):limit(10)", + "rate": "NONE", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [ + { + "defaultAxis": true, + "displayName": "", + "max": "AUTO", + "min": "AUTO", + "position": "LEFT", + "queryIds": [ + "A" + ], + "visible": true + }, + { + "defaultAxis": true, + "displayName": "", + "max": "AUTO", + "min": "AUTO", + "position": "RIGHT", + "queryIds": [ + "B", + "C" + ], + "visible": true + } + ] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + }, + { + "matcher": "B:", + "properties": { + "color": "DEFAULT", + "seriesType": "COLUMN" + }, + "seriesOverrides": [] + }, + { + "matcher": "C:", + "properties": { + "color": "DEFAULT", + "seriesType": "COLUMN" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "GRAPH_CHART" + } + }) + bounds { + height = 266 + left = 0 + top = 646 + width = 1140 + } + } + tile { + name = "HTTP requests without client side errors" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.client.successCount:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"activateOnlineEntertainment~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getOffersByVin~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getMarketOffers~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStorePrivateCart~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStoreCart~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getOffersAndPortfolio~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"submitOrderV6~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"retrieveOffer~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"checkout~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getOffers~\")\")),in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"checkOfferValidityForVin~\")\"))))):splitBy(\"dt.entity.service_method\"):avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "getOffersByVin" + }, + { + "evaluator": "IN", + "value": "getMarketOffers" + }, + { + "evaluator": "IN", + "value": "retrieveOffer" + }, + { + "evaluator": "IN", + "value": "getOffers" + }, + { + "evaluator": "IN", + "value": "submitOrderV6" + }, + { + "evaluator": "IN", + "value": "getOffersAndPortfolio" + }, + { + "evaluator": "IN", + "value": "activateOnlineEntertainment" + }, + { + "evaluator": "IN", + "value": "checkout" + }, + { + "evaluator": "IN", + "value": "getStorePrivateCart" + }, + { + "evaluator": "IN", + "value": "getStoreCart" + }, + { + "evaluator": "IN", + "value": "checkOfferValidityForVin" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.client.successCount", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [ + "dt.entity.service_method" + ], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Number of calls without client side errors", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 266 + left = 684 + top = 38 + width = 456 + } + } + tile { + name = "SubmitOrderV6 HTTP requests Success count" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.client.successCount:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"submitOrderV6~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "submitOrderV6" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.client.successCount", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Number of calls without client side errors", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 950 + width = 494 + } + } + tile { + name = "Service or request" + assigned_entities = [ "SERVICE_METHOD-5062879A1E41D0CD", "SERVICE-C34A40CE1F496E96" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 342 + left = 0 + top = 1330 + width = 646 + } + } + tile { + name = "Service or request" + assigned_entities = [ "SERVICE_METHOD-2FDADF822F1FE7E3", "SERVICE-C34A40CE1F496E96" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 342 + left = 0 + top = 1672 + width = 646 + } + } + tile { + name = "HTTP requests Success count" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.client.successCount:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStoreCart~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "getStoreCart" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.client.successCount", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Number of calls without client side errors", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1330 + width = 494 + } + } + tile { + name = "Failure rate(HTTP 5xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStoreCart~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "getStoreCart" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fivexx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1444 + width = 494 + } + } + tile { + name = "Failure rate(HTTP 4xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fourxx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStoreCart~\")\"))))):splitBy(\"dt.entity.service_method\"):avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "getStoreCart" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fourxx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [ + "dt.entity.service_method" + ], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1558 + width = 494 + } + } + tile { + name = "HTTP requests Success count" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.client.successCount:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStorePrivateCart~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "getStorePrivateCart" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.client.successCount", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Number of calls without client side errors", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1672 + width = 494 + } + } + tile { + name = "Failure rate(HTTP 5xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStorePrivateCart~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "getStorePrivateCart" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fivexx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1786 + width = 494 + } + } + tile { + name = "Failure rate(HTTP 4xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fourxx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"getStorePrivateCart~\")\"))))):splitBy(\"dt.entity.service_method\"):avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "getStorePrivateCart" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fourxx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [ + "dt.entity.service_method" + ], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1900 + width = 494 + } + } + tile { + name = "SUBMIT V6 Create order" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 912 + width = 1140 + } + } + tile { + name = "Store performance" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 304 + width = 1140 + } + } + tile { + name = "Calculate shopping cart" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 1292 + width = 1140 + } + } + tile { + name = "Checkout (check customer data for payment,BFF,GCDM)" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 2014 + width = 1140 + } + } + tile { + name = "StoreOfferResourceV6 - am-store - prod" + assigned_entities = [ "SERVICE-2C3F0AE344483BAC" ] + configured = true + tile_type = "SERVICE_VERSATILE" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 608 + top = 2052 + width = 532 + } + } + tile { + name = "Basket validation- /am-store/store/v6/basket/vin/validation" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 2356 + width = 1140 + } + } + tile { + name = "Offer browsing" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 2736 + width = 1140 + } + } + tile { + name = "Redeem voucher" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 3724 + width = 1140 + } + } + tile { + name = "STORE queues" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 0 + top = 4066 + width = 1140 + } + } + tile { + name = "Failure rate(HTTP 5xx errors)-submitStorev6" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"submitOrderV6~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "submitOrderV6" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fivexx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540", + "value": 0 + }, + { + "color": "#f5d30f", + "value": 3 + }, + { + "color": "#dc172a", + "value": 5 + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1064 + width = 494 + } + } + tile { + name = "Failure rate(HTTP 4xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fourxx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName(~\"submitOrderV6~\")\"))))):splitBy(\"dt.entity.service_method\"):avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "value": "submitOrderV6" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fourxx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [ + "dt.entity.service_method" + ], + "timeAggregation": "DEFAULT" + } + ], + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540", + "value": 0 + }, + { + "color": "#f5d30f", + "value": 3 + }, + { + "color": "#dc172a", + "value": 5 + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 646 + top = 1178 + width = 494 + } + } + tile { + name = "Service-level objective" + assigned_entities = [ "a01cc45e-8369-3623-a156-1b261e6f4c98" ] + configured = true + metric = "METRICS=true;LEGEND=true;PROBLEMS=true;decimals=10;customTitle=AM-Store - checkOfferValidityForVin Success Rate;" + tile_type = "SLO" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 0 + top = 494 + width = 380 + } + } + tile { + name = "Service-level objective" + assigned_entities = [ "15c29ec3-71a7-3298-9e99-aad2e5bf347c" ] + configured = true + metric = "METRICS=true;LEGEND=true;PROBLEMS=true;decimals=10;customTitle=AM-Store - getOffersAndPortfolio Success Rate;" + tile_type = "SLO" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 0 + top = 342 + width = 380 + } + } + tile { + name = "Service-level objective" + assigned_entities = [ "caf17e8e-5459-3fbc-b074-f6a7b7616ee8" ] + configured = true + metric = "METRICS=true;LEGEND=true;PROBLEMS=true;decimals=10;customTitle=AM-Store - retrieveOffer Success Rate;" + tile_type = "SLO" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 380 + top = 342 + width = 380 + } + } + tile { + name = "Service-level objective" + assigned_entities = [ "0ea3ed9f-141c-363e-9fa9-7a3601d0a136" ] + configured = true + metric = "METRICS=true;LEGEND=true;PROBLEMS=true;decimals=10;customTitle=AM-Store - submitOrderv6 Success Rate;" + tile_type = "SLO" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 760 + top = 342 + width = 380 + } + } + tile { + name = "Service-level objective" + assigned_entities = [ "e315e811-69fc-3758-99b9-49dcb47daa09" ] + configured = true + metric = "METRICS=true;LEGEND=true;PROBLEMS=true;decimals=10;customTitle=BFF - getStoreCart Success Rate;" + tile_type = "SLO" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 380 + top = 494 + width = 380 + } + } + tile { + name = "Service-level objective" + assigned_entities = [ "8297a4a8-83ea-3638-983f-75e467c4fd0e" ] + configured = true + metric = "METRICS=true;LEGEND=true;PROBLEMS=true;decimals=10;customTitle=BFF - getStorePrivateCart Success Rate;" + tile_type = "SLO" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 760 + top = 494 + width = 380 + } + } + tile { + name = "Failure rate(HTTP 5xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName.equals(~\"getOffersAndPortfolio~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "matchExactly": true, + "value": "getOffersAndPortfolio" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fivexx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "queriesSettings": { + "resolution": "" + }, + "visualConfig": { + "axes": { + "xAxis": { + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "honeycombSettings": { + "showHive": true, + "showLabels": false, + "showLegend": true + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 608 + top = 2888 + width = 532 + } + } + tile { + name = "Failure rate(HTTP 4xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fourxx.rate:splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "nestedFilters": [] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fourxx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "queriesSettings": { + "resolution": "" + }, + "visualConfig": { + "axes": { + "xAxis": { + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "honeycombSettings": { + "showHive": true, + "showLabels": false, + "showLegend": true + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 608 + top = 3002 + width = 532 + } + } + tile { + name = "Number of calls withour errors" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fivexx.successCount:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName.equals(~\"getOffersAndPortfolio~\")\"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "matchExactly": true, + "value": "getOffersAndPortfolio" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fivexx.successCount", + "rate": "NONE", + "spaceAggregation": "SUM", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "queriesSettings": { + "resolution": "" + }, + "visualConfig": { + "axes": { + "xAxis": { + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "honeycombSettings": { + "showHive": true, + "showLabels": false, + "showLegend": true + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 608 + top = 2774 + width = 532 + } + } + tile { + name = "Number of calls withour errors" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fivexx.successCount:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName.equals(~\"checkOfferValidityForVin~\")\"))))):splitBy():sum:auto:sort(value(sum,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "matchExactly": true, + "value": "checkOfferValidityForVin" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fivexx.successCount", + "rate": "NONE", + "spaceAggregation": "SUM", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "queriesSettings": { + "resolution": "" + }, + "visualConfig": { + "axes": { + "xAxis": { + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "honeycombSettings": { + "showHive": true, + "showLabels": false, + "showLegend": true + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 418 + top = 2394 + width = 380 + } + } + tile { + name = "Failure rate(HTTP 5xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName.equals(~\"checkOfferValidityForVin~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "matchExactly": true, + "value": "checkOfferValidityForVin" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fivexx.rate", + "rate": "NONE", + "spaceAggregation": "AVG", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "queriesSettings": { + "resolution": "" + }, + "visualConfig": { + "axes": { + "xAxis": { + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "honeycombSettings": { + "showHive": true, + "showLabels": false, + "showLegend": true + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 418 + top = 2508 + width = 380 + } + } + tile { + name = "Failure rate(HTTP 4xx errors)" + configured = true + custom_name = "Failure rate(HTTP 5xx errors)" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=Inf\u0026(builtin:service.keyRequest.errors.fourxx.rate:filter(and(or(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityName.equals(~\"checkOfferValidityForVin~\")\"))))):splitBy():count:auto:sort(value(avg,descending)):limit(20)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "filterBy": { + "criteria": [], + "filterOperator": "AND", + "nestedFilters": [ + { + "criteria": [ + { + "evaluator": "IN", + "matchExactly": true, + "value": "checkOfferValidityForVin" + } + ], + "entityAttribute": "entityName", + "filter": "dt.entity.service_method", + "filterOperator": "OR", + "filterType": "NAME", + "nestedFilters": [] + } + ] + }, + "id": "A", + "metric": "builtin:service.keyRequest.errors.fourxx.rate", + "rate": "NONE", + "spaceAggregation": "COUNT", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "queriesSettings": { + "resolution": "" + }, + "visualConfig": { + "axes": { + "xAxis": { + "visible": true + }, + "yAxes": [] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "honeycombSettings": { + "showHive": true, + "showLabels": false, + "showLegend": true + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "DEFAULT", + "seriesType": "LINE" + }, + "seriesOverrides": [] + } + ], + "tableSettings": {}, + "thresholds": [ + { + "axisTarget": "LEFT", + "columnId": "Failure rate (HTTP 5xx errors)", + "queryId": "", + "rules": [ + { + "color": "#7dc540" + }, + { + "color": "#f5d30f" + }, + { + "color": "#dc172a" + } + ], + "visible": true + } + ], + "type": "TOP_LIST" + } + }) + bounds { + height = 114 + left = 418 + top = 2622 + width = 380 + } + } + tile { + name = "Basket validation 500Err" + configured = true + custom_name = "Data explorer results" + tile_type = "DATA_EXPLORER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false, + "metricExpressions": [ + "resolution=null\u0026(builtin:service.keyRequest.errors.fivexx.count:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-A77E2B0BA1B488DB~\")\")))):splitBy():value:auto:sort(value(sum,descending)):limit(10)):limit(100):names" + ], + "queries": [ + { + "enabled": true, + "id": "A", + "metricSelector": "builtin:service.keyRequest.errors.fivexx.count:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-A77E2B0BA1B488DB~\")\")))):splitBy():value:auto:sort(value(sum,descending)):limit(10)", + "rate": "NONE", + "splitBy": [], + "timeAggregation": "DEFAULT" + } + ], + "queriesSettings": { + "resolution": "" + }, + "visualConfig": { + "axes": { + "xAxis": { + "displayName": "", + "visible": true + }, + "yAxes": [ + { + "defaultAxis": true, + "displayName": "", + "max": "AUTO", + "min": "AUTO", + "position": "LEFT", + "queryIds": [ + "A" + ], + "visible": true + } + ] + }, + "global": { + "hideLegend": false + }, + "graphChartSettings": { + "connectNulls": false + }, + "heatmapSettings": { + "yAxis": "VALUE" + }, + "honeycombSettings": { + "showHive": true, + "showLabels": false, + "showLegend": true + }, + "rules": [ + { + "matcher": "A:", + "properties": { + "color": "RED", + "seriesType": "STACKED_COLUMN" + }, + "seriesOverrides": [], + "valueFormat": "auto" + } + ], + "tableSettings": { + "isThresholdBackgroundAppliedToCell": false + }, + "thresholds": [ + { + "axisTarget": "LEFT", + "queryId": "", + "rules": [ + { + "color": "#7dc540", + "value": 0 + }, + { + "color": "#f5d30f", + "value": 50 + }, + { + "color": "#dc172a", + "value": 100 + } + ], + "visible": true + } + ], + "type": "STACKED_COLUMN" + } + }) + bounds { + height = 342 + left = 798 + top = 2394 + width = 342 + } + } +} +# DEFINE dynatrace_dashboard_sharing.CD_am-store_PROD-EMEA.id = e3fa1fed-ac3d-4c21-b1ee-e7f27d6cae3a +resource "dynatrace_dashboard_sharing" "CD_am-store_PROD-EMEA" { + enabled = true + dashboard_id = dynatrace_dashboard.CD_am-store_PROD-EMEA.id + # preset = false + permissions { + permission { + type = "ALL" + level = "VIEW" + } + permission { + type = "USER" + id = "roland.selmeier@partner.bmw.de" + level = "VIEW" + } + permission { + type = "USER" + id = "dana.langkabel@partner.bmw.de" + level = "VIEW" + } + permission { + type = "GROUP" + id = "a404fb37-6566-4b5c-99f8-9cb679b8d860" + level = "VIEW" + } + } +} \ No newline at end of file diff --git a/EMEA_PROD/dashboard/cd_am-store_prod.tf b/EMEA_PROD/dashboard/cd_am-store_prod.tf new file mode 100644 index 00000000..325949cd --- /dev/null +++ b/EMEA_PROD/dashboard/cd_am-store_prod.tf @@ -0,0 +1,324 @@ +# DEFINE dynatrace_dashboard.CD_am-store_PROD.id = bfd89177-45f2-4751-9a34-497ca07128d4 +data "dynatrace_management_zone" "CD_am-store_PROD"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_PROD" { + dashboard_metadata { + name = "CD_am-store PROD" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_PROD.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/EMEA_PROD/management_zone/cd_am-store.tf b/EMEA_PROD/management_zone/cd_am-store.tf new file mode 100644 index 00000000..c1aea5a4 --- /dev/null +++ b/EMEA_PROD/management_zone/cd_am-store.tf @@ -0,0 +1,104 @@ +# DEFINE dynatrace_management_zone.CD_am-store.id = -2189390331381689182 +resource "dynatrace_management_zone" "CD_am-store" { + name = "CD_am-store" + dimensional_rule { + enabled = true + applies_to = "METRIC" + condition { + type = "METRIC_KEY" + key = "calc:service.am_store_checkoffervalidityforvin_success_rate" + match = "BEGINS_WITH" + } + } + rules { + type = "CLOUD_APPLICATION" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "CLOUD_APPLICATION_NAMESPACE" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAMESPACE_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "HOST" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "HOST_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "PROCESS_GROUP" + enabled = true + propagation_types = [ "PROCESS_GROUP_TO_HOST" ] + conditions { + key { + type = "STATIC" + attribute = "PROCESS_GROUP_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "SERVICE" + enabled = true + propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ] + conditions { + key { + type = "STATIC" + attribute = "SERVICE_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } +} From c56b52891c584f14ea73a66a28d0687026cbd578 Mon Sep 17 00:00:00 2001 From: Patryk Gudalewicz Date: Wed, 1 Mar 2023 19:07:57 +0100 Subject: [PATCH 5/6] "Migrating from Monaco to Terraform for management zone: CD_am-store" --- NA_PREPROD/dashboard/cd_am-store_int.tf | 321 ++++++++++++++++++++++ NA_PREPROD/dashboard/cd_am-store_test.tf | 321 ++++++++++++++++++++++ NA_PREPROD/management_zone/cd_am-store.tf | 95 +++++++ 3 files changed, 737 insertions(+) create mode 100644 NA_PREPROD/dashboard/cd_am-store_int.tf create mode 100644 NA_PREPROD/dashboard/cd_am-store_test.tf create mode 100644 NA_PREPROD/management_zone/cd_am-store.tf diff --git a/NA_PREPROD/dashboard/cd_am-store_int.tf b/NA_PREPROD/dashboard/cd_am-store_int.tf new file mode 100644 index 00000000..38b7a2df --- /dev/null +++ b/NA_PREPROD/dashboard/cd_am-store_int.tf @@ -0,0 +1,321 @@ +# DEFINE dynatrace_dashboard.CD_am-store_INT.id = efcb68f8-25b9-4a9e-a829-6ea043292d8c +data "dynatrace_management_zone" "CD_am-store_INT"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_INT" { + dashboard_metadata { + name = "CD_am-store INT" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_INT.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:INT" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/NA_PREPROD/dashboard/cd_am-store_test.tf b/NA_PREPROD/dashboard/cd_am-store_test.tf new file mode 100644 index 00000000..395afbfc --- /dev/null +++ b/NA_PREPROD/dashboard/cd_am-store_test.tf @@ -0,0 +1,321 @@ +# DEFINE dynatrace_dashboard.CD_am-store_TEST.id = 242c8ebf-65ee-49c1-8f10-bcb54cd45ce7 +data "dynatrace_management_zone" "CD_am-store_TEST"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_TEST" { + dashboard_metadata { + name = "CD_am-store TEST" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_TEST.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:TEST" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/NA_PREPROD/management_zone/cd_am-store.tf b/NA_PREPROD/management_zone/cd_am-store.tf new file mode 100644 index 00000000..63369601 --- /dev/null +++ b/NA_PREPROD/management_zone/cd_am-store.tf @@ -0,0 +1,95 @@ +# DEFINE dynatrace_management_zone.CD_am-store.id = 3470489111128925886 +resource "dynatrace_management_zone" "CD_am-store" { + name = "CD_am-store" + rules { + type = "CLOUD_APPLICATION" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "CLOUD_APPLICATION_NAMESPACE" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAMESPACE_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "HOST" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "HOST_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "PROCESS_GROUP" + enabled = true + propagation_types = [ "PROCESS_GROUP_TO_HOST" ] + conditions { + key { + type = "STATIC" + attribute = "PROCESS_GROUP_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "SERVICE" + enabled = true + propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ] + conditions { + key { + type = "STATIC" + attribute = "SERVICE_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } +} From a6f38a3f290cdad46722dfeb1356e52186024f90 Mon Sep 17 00:00:00 2001 From: Patryk Gudalewicz Date: Wed, 1 Mar 2023 19:11:09 +0100 Subject: [PATCH 6/6] "Migrating from Monaco to Terraform for management zone: CD_am-store" --- NA_PROD/alerting/cd_am-store_prod.tf | 36 +++ NA_PROD/dashboard/cd_am-store_e2e.tf | 324 +++++++++++++++++++++++++ NA_PROD/dashboard/cd_am-store_prod.tf | 324 +++++++++++++++++++++++++ NA_PROD/management_zone/cd_am-store.tf | 95 ++++++++ 4 files changed, 779 insertions(+) create mode 100644 NA_PROD/alerting/cd_am-store_prod.tf create mode 100644 NA_PROD/dashboard/cd_am-store_e2e.tf create mode 100644 NA_PROD/dashboard/cd_am-store_prod.tf create mode 100644 NA_PROD/management_zone/cd_am-store.tf diff --git a/NA_PROD/alerting/cd_am-store_prod.tf b/NA_PROD/alerting/cd_am-store_prod.tf new file mode 100644 index 00000000..39278b59 --- /dev/null +++ b/NA_PROD/alerting/cd_am-store_prod.tf @@ -0,0 +1,36 @@ +# DEFINE dynatrace_alerting.CD_am-store_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQ5OWZhMzljYy0yZjVjLTMwNTgtYjZkOC1jMjAxNmViZjljNGa-71TeFdrerQ +data "dynatrace_management_zone" "CD_am-store_PROD"{ name="CD_am-store" } +resource "dynatrace_alerting" "CD_am-store_PROD" { + name = "CD_am-store PROD" + management_zone = data.dynatrace_management_zone.CD_am-store_PROD.id + filters { + filter { + custom { + title { + enabled = true + # case_sensitive = false + negate = true + operator = "CONTAINS" + value = "Wirkkette \"CD Store Mobile\" - Reliability of key requests" + } + } + } + } + rules { + rule { + delay_in_minutes = 0 + include_mode = "NONE" + severity_level = "AVAILABILITY" + } + rule { + delay_in_minutes = 10 + include_mode = "NONE" + severity_level = "CUSTOM_ALERT" + } + rule { + delay_in_minutes = 10 + include_mode = "NONE" + severity_level = "ERRORS" + } + } +} \ No newline at end of file diff --git a/NA_PROD/dashboard/cd_am-store_e2e.tf b/NA_PROD/dashboard/cd_am-store_e2e.tf new file mode 100644 index 00000000..382589c9 --- /dev/null +++ b/NA_PROD/dashboard/cd_am-store_e2e.tf @@ -0,0 +1,324 @@ +# DEFINE dynatrace_dashboard.CD_am-store_E2E.id = a385cdee-7b1a-469a-91c8-8f4ea660fa20 +data "dynatrace_management_zone" "CD_am-store_E2E"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_E2E" { + dashboard_metadata { + name = "CD_am-store E2E" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_E2E.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Environment:E2E", "Component:am-store" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/NA_PROD/dashboard/cd_am-store_prod.tf b/NA_PROD/dashboard/cd_am-store_prod.tf new file mode 100644 index 00000000..7ab9b144 --- /dev/null +++ b/NA_PROD/dashboard/cd_am-store_prod.tf @@ -0,0 +1,324 @@ +# DEFINE dynatrace_dashboard.CD_am-store_PROD.id = c96f0783-ebfb-42e0-90c6-61d3b8b16069 +data "dynatrace_management_zone" "CD_am-store_PROD"{ name="CD_am-store" } +resource "dynatrace_dashboard" "CD_am-store_PROD" { + dashboard_metadata { + name = "CD_am-store PROD" + owner = "Ignacio.Goldman@partner.bmwgroup.com" + preset = true + shared = true + tags = [ "am-store" ] + unknowns = jsonencode({ + "popularity": 1 + }) + filter { + timeframe = "-24h to now" + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 228 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Failure rate (HTTP 4xx/5xx errors)" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#ff0000" + key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956393463 + } + config { + custom_color = "#fff29a" + key = "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE" + last_modified = 1617956441725 + } + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fourxx.rate" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.fivexx.rate" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "Problems" + configured = true + tile_type = "OPEN_PROBLEMS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 950 + top = 38 + width = 152 + } + filter { + management_zone { + name = "CD_am-store" + id = data.dynatrace_management_zone.CD_am-store_PROD.id + } + } + } + tile { + name = "Overall Health" + configured = true + tile_type = "HEADER" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 0 + width = 1064 + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 532 + width = 1064 + } + } + tile { + name = "Custom chart" + configured = true + tile_type = "CUSTOM_CHARTING" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 304 + left = 38 + top = 570 + width = 1064 + } + filter_config { + type = "MIXED" + custom_name = "Response time, Request Count and Number of Errors" + default_name = "Custom chart" + chart_config { + type = "TIMESERIES" + legend = true + result_metadata { + config { + custom_color = "#008cdb" + key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275720776 + } + config { + custom_color = "#b4e5f9" + key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE" + last_modified = 1595275686773 + } + config { + custom_color = "#ef651f" + key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE" + last_modified = 1595275955999 + } + } + series { + type = "LINE" + aggregation = "AVG" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.response.time" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.requestCount.total" + # sort_ascending = false + # sort_column = false + } + series { + type = "BAR" + aggregation = "NONE" + aggregation_rate = "TOTAL" + entity_type = "SERVICE" + metric = "builtin:service.errors.total.count" + # sort_ascending = false + sort_column = true + } + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "Markdown" + configured = true + markdown =<<-EOT + --- + + EOT + tile_type = "MARKDOWN" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 38 + left = 38 + top = 190 + width = 1064 + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "DATABASES_OVERVIEW" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 646 + top = 38 + width = 190 + } + filter_config { + type = "DATABASE" + custom_name = "Databases" + default_name = "Databases" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "DATABASE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "SERVICES" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 342 + top = 38 + width = 190 + } + filter_config { + type = "SERVICE" + custom_name = "Services" + default_name = "Services" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "SERVICE" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } + tile { + name = "" + chart_visible = true + configured = true + tile_type = "HOSTS" + unknowns = jsonencode({ + "isAutoRefreshDisabled": false + }) + bounds { + height = 152 + left = 38 + top = 38 + width = 190 + } + filter_config { + type = "HOST" + custom_name = "Hosts" + default_name = "Hosts" + chart_config { + type = "TIMESERIES" + legend = true + } + filters { + filter { + entity_type = "HOST" + match { + key = "AUTO_TAGS" + values = [ "Component:am-store", "Environment:PROD" ] + } + } + } + } + } +} \ No newline at end of file diff --git a/NA_PROD/management_zone/cd_am-store.tf b/NA_PROD/management_zone/cd_am-store.tf new file mode 100644 index 00000000..351e152f --- /dev/null +++ b/NA_PROD/management_zone/cd_am-store.tf @@ -0,0 +1,95 @@ +# DEFINE dynatrace_management_zone.CD_am-store.id = 6486137963353451771 +resource "dynatrace_management_zone" "CD_am-store" { + name = "CD_am-store" + rules { + type = "CLOUD_APPLICATION" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "CLOUD_APPLICATION_NAMESPACE" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "CLOUD_APPLICATION_NAMESPACE_NAME" + } + string { + case_sensitive = true + # negate = false + operator = "CONTAINS" + value = "am-store" + } + } + } + rules { + type = "HOST" + enabled = true + conditions { + key { + type = "STATIC" + attribute = "HOST_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "PROCESS_GROUP" + enabled = true + propagation_types = [ "PROCESS_GROUP_TO_HOST" ] + conditions { + key { + type = "STATIC" + attribute = "PROCESS_GROUP_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } + rules { + type = "SERVICE" + enabled = true + propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ] + conditions { + key { + type = "STATIC" + attribute = "SERVICE_TAGS" + } + tag { + # negate = false + operator = "EQUALS" + value { + context = "CONTEXTLESS" + key = "Component" + value = "am-store" + } + } + } + } +}