terraform { required_providers { dynatrace = { version = "1.10.0" source = "dynatrace-oss/dynatrace" } } } resource dynatrace_dashboard main { dashboard_metadata { name = "${var.mzName} ${var.env}" owner = "Arnel.Arnautovic@partner.bmw.de" shared = true tags = ["${var.mzName}"] 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 { management_zone { name = "${var.mzName}" id = "${var.mzId}" } } 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:${var.env}"] } } } } } tile { name = "Problems" configured = true tile_type = "OPEN_PROBLEMS" bounds { height = 152 left = 950 top = 38 width = 152 } filter { management_zone { name = "${var.mzName}" id = "${var.mzId}" } } } tile { name = "Overall Health" configured = true tile_type = "HEADER" bounds { height = 38 left = 38 top = 0 width = 1064 } filter { management_zone { name = "${var.mzName}" id = "${var.mzId}" } } } 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 { management_zone { name = "${var.mzName}" id = "${var.mzId}" } } 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:${var.env}"] } } } } } 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 { management_zone { name = "${var.mzName}" id = "${var.mzId}" } } 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:${var.env}"] } } } } } tile { name = "" chart_visible = true configured = true tile_type = "SERVICES" bounds { height = 152 left = 342 top = 38 width = 190 } filter { management_zone { name = "${var.mzName}" id = "${var.mzId}" } } 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:${var.env}"] } } } } } tile { name = "" chart_visible = true configured = true tile_type = "HOSTS" bounds { height = 152 left = 38 top = 38 width = 190 } filter { management_zone { name = "${var.mzName}" id = "${var.mzId}" } } 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:${var.env}"] } } } } } } output "id" { value = dynatrace_dashboard.main.id }