Compare commits

...

6 Commits

28 changed files with 5215 additions and 0 deletions

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_INT.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQ4NmI4MDliZS0yOTU2LTQ4ZGUtOTdlZi02NDQ5YzA2ZGE0NWK-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_INT" {
name = "CD_APIGW INT"
management_zone = data.dynatrace_management_zone.CD_APIGW_INT.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQ3MGMwNDBiMy0yYWVjLTMzYjItOWQwZC01ODRjMWYzMzg2Yje-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_PROD" {
name = "CD_APIGW PROD"
management_zone = data.dynatrace_management_zone.CD_APIGW_PROD.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
}
}

View File

@ -0,0 +1,306 @@
# DEFINE dynatrace_dashboard.CD_APIGW_INT.id = 85818e7a-defc-41a2-90cc-249c73d97578
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_INT" {
dashboard_metadata {
name = "CD_APIGW INT"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
# preset = false
shared = true
tags = [ "APIGW" ]
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:APIGW", "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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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:APIGW", "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:APIGW", "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:APIGW", "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:APIGW", "Environment:INT" ]
}
}
}
}
}
}
# DEFINE dynatrace_dashboard_sharing.CD_APIGW_INT.id = 85818e7a-defc-41a2-90cc-249c73d97578
resource "dynatrace_dashboard_sharing" "CD_APIGW_INT" {
enabled = true
dashboard_id = dynatrace_dashboard.CD_APIGW_INT.id
# preset = false
permissions {
permission {
type = "ALL"
level = "VIEW"
}
}
}

View File

@ -0,0 +1,306 @@
# DEFINE dynatrace_dashboard.CD_APIGW_TEST.id = 4d06820c-5e14-42a8-a143-d4f482a50ef4
data "dynatrace_management_zone" "CD_APIGW_TEST"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_TEST" {
dashboard_metadata {
name = "CD_APIGW TEST"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
# preset = false
shared = true
tags = [ "APIGW" ]
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:APIGW", "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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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:APIGW", "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:APIGW", "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:APIGW", "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:APIGW", "Environment:TEST" ]
}
}
}
}
}
}
# DEFINE dynatrace_dashboard_sharing.CD_APIGW_TEST.id = 4d06820c-5e14-42a8-a143-d4f482a50ef4
resource "dynatrace_dashboard_sharing" "CD_APIGW_TEST" {
enabled = true
dashboard_id = dynatrace_dashboard.CD_APIGW_TEST.id
# preset = false
permissions {
permission {
type = "ALL"
level = "VIEW"
}
}
}

View File

@ -0,0 +1,232 @@
# DEFINE dynatrace_management_zone.CD_APIGW.id = 2782679968902235077
resource "dynatrace_management_zone" "CD_APIGW" {
name = "CD_APIGW"
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-APP"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-WS"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "Service Gateway Legacy"
}
}
}
}
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 = "APIGW-APP"
}
}
}
}
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 = "APIGW-WS"
}
}
}
}
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 = "Service Gateway Legacy"
}
}
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_INT.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQzZjM3ZGQ5Mi0zOGJkLTNkYmQtYmNhZS03MjViOTE4ZGY5Zji-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_INT" {
name = "CD_APIGW INT"
management_zone = data.dynatrace_management_zone.CD_APIGW_INT.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQ1NDFkOTNjYi0yZWY1LTQwOTktYWM1Ni0wMjgzODVhNmViM2S-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_PROD" {
name = "CD_APIGW PROD"
management_zone = data.dynatrace_management_zone.CD_APIGW_PROD.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
}
}

View File

@ -0,0 +1,306 @@
# DEFINE dynatrace_dashboard.CD_APIGW_PROD.id = 8907b3c5-7e02-4205-81ac-358207f87faf
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_PROD" {
dashboard_metadata {
name = "CD_APIGW PROD"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
# preset = false
shared = true
tags = [ "APIGW" ]
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:APIGW", "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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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:APIGW", "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:APIGW", "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:APIGW", "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:APIGW", "Environment:PROD" ]
}
}
}
}
}
}
# DEFINE dynatrace_dashboard_sharing.CD_APIGW_PROD.id = 8907b3c5-7e02-4205-81ac-358207f87faf
resource "dynatrace_dashboard_sharing" "CD_APIGW_PROD" {
enabled = true
dashboard_id = dynatrace_dashboard.CD_APIGW_PROD.id
# preset = false
permissions {
permission {
type = "ALL"
level = "VIEW"
}
}
}

View File

@ -0,0 +1,232 @@
# DEFINE dynatrace_management_zone.CD_APIGW.id = 8776167944502484673
resource "dynatrace_management_zone" "CD_APIGW" {
name = "CD_APIGW"
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-APP"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-WS"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "Service Gateway Legacy"
}
}
}
}
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 = "APIGW-APP"
}
}
}
}
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 = "APIGW-WS"
}
}
}
}
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 = "Service Gateway Legacy"
}
}
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_INT.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQ3MGJkYzNmMy00Nzk3LTM0NGEtOGZlYy05YWQxMzYwYjBmMjS-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_INT" {
name = "CD_APIGW INT"
management_zone = data.dynatrace_management_zone.CD_APIGW_INT.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
}
}

View File

@ -0,0 +1,357 @@
# DEFINE dynatrace_dashboard.CD_APIGW_INT.id = cb773e5d-d101-4447-ac6e-50684630dccc
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_INT" {
dashboard_metadata {
name = "CD_APIGW INT"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
preset = true
shared = true
tags = [ "CD_APIGW" ]
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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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" ]
}
}
}
}
}
}

View File

@ -0,0 +1,357 @@
# DEFINE dynatrace_dashboard.CD_APIGW_TEST.id = 9172c6a9-3e21-4029-b656-cafce230ec6f
data "dynatrace_management_zone" "CD_APIGW_TEST"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_TEST" {
dashboard_metadata {
name = "CD_APIGW TEST"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
preset = true
shared = true
tags = [ "CD_APIGW" ]
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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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" ]
}
}
}
}
}
}

View File

@ -0,0 +1,232 @@
# DEFINE dynatrace_management_zone.CD_APIGW.id = 8127945079601728901
resource "dynatrace_management_zone" "CD_APIGW" {
name = "CD_APIGW"
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-APP"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-WS"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "Service Gateway Legacy"
}
}
}
}
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 = "APIGW-APP"
}
}
}
}
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 = "APIGW-WS"
}
}
}
}
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 = "Service Gateway Legacy"
}
}
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_INT.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACRhMjlhZjczOC05OGZmLTNiYzYtYjk5MC04ZDI2OWIxYjllZje-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_INT" {
name = "CD_APIGW INT"
management_zone = data.dynatrace_management_zone.CD_APIGW_INT.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQyNjNlOGJjYy03NTNhLTM1ZTItYTIzYy1kN2E2Mzg2YWExYTe-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_PROD" {
name = "CD_APIGW PROD"
management_zone = data.dynatrace_management_zone.CD_APIGW_PROD.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
}
}

View File

@ -0,0 +1,336 @@
# DEFINE dynatrace_dashboard.CD_APIGW_PROD.id = 39d0c476-0da6-46ec-a798-93237227d380
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_PROD" {
dashboard_metadata {
name = "CD_APIGW PROD"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
# preset = false
shared = true
tags = [ "APIGW" ]
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:APIGW", "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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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:APIGW", "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:APIGW", "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:APIGW", "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:APIGW", "Environment:PROD" ]
}
}
}
}
}
}
# DEFINE dynatrace_dashboard_sharing.CD_APIGW_PROD.id = 39d0c476-0da6-46ec-a798-93237227d380
resource "dynatrace_dashboard_sharing" "CD_APIGW_PROD" {
enabled = true
dashboard_id = dynatrace_dashboard.CD_APIGW_PROD.id
# preset = false
permissions {
permission {
type = "ALL"
level = "VIEW"
}
}
}

View File

@ -0,0 +1,232 @@
# DEFINE dynatrace_management_zone.CD_APIGW.id = 8505678630142971659
resource "dynatrace_management_zone" "CD_APIGW" {
name = "CD_APIGW"
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-APP"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-WS"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "Service Gateway Legacy"
}
}
}
}
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 = "APIGW-APP"
}
}
}
}
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 = "APIGW-WS"
}
}
}
}
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 = "Service Gateway Legacy"
}
}
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_INT.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACRlMTM3YjQ3Mi00NDIzLTNlNTUtODZlMi04M2MxZTRjOGVkNmO-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_INT" {
name = "CD_APIGW INT"
management_zone = data.dynatrace_management_zone.CD_APIGW_INT.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACRhMGM0YmFiOS0wM2Y3LTNmOWQtYWUwNy1lZjlmYTU2NGY5OWO-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_PROD" {
name = "CD_APIGW PROD"
management_zone = data.dynatrace_management_zone.CD_APIGW_PROD.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
}
}

View File

@ -0,0 +1,336 @@
# DEFINE dynatrace_dashboard.CD_APIGW_Application_Server_Overview.id = ac8a5eeb-cd85-4f93-a202-202c13b642ab
data "dynatrace_management_zone" "CD_APIGW_Application_Server_Overview"{ name="CD_analytics-user-data-service" }
resource "dynatrace_dashboard" "CD_APIGW_Application_Server_Overview" {
dashboard_metadata {
name = "CD_APIGW Application Server Overview"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
preset = true
shared = true
tags = [ "Template" ]
}
tile {
name = "Custom chart"
configured = true
tile_type = "CUSTOM_CHARTING"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 304
left = 38
top = 38
width = 1216
}
filter_config {
type = "MIXED"
custom_name = "Response time, Throughput 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
}
}
}
}
tile {
name = "Custom chart"
configured = true
tile_type = "CUSTOM_CHARTING"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 304
left = 38
top = 342
width = 304
}
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 = "#ef651f"
key = "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE"
last_modified = 1595276148986
}
}
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
}
}
}
}
tile {
name = "Markdown"
configured = true
markdown =<<-EOT
[Top Web Requests](https://vse69518.sprint.dynatracelabs.com/#topglobalwebrequests;gtf=l_2_HOURS;gf=all)
[Top database statements](https://vse69518.sprint.dynatracelabs.com/#topdbstatements;gtf=l_2_HOURS;gf=all)
[Overview of captured exceptions](https://vse69518.sprint.dynatracelabs.com/#exceptionsoverview;gtf=l_2_HOURS;gf=all)
EOT
tile_type = "MARKDOWN"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 114
left = 38
top = 684
width = 304
}
}
tile {
name = "Host health"
chart_visible = true
configured = true
tile_type = "HOSTS"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 304
left = 646
top = 342
width = 304
}
}
tile {
name = "Service health"
chart_visible = true
configured = true
tile_type = "SERVICES"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 304
left = 342
top = 342
width = 304
}
}
tile {
name = "Database health"
chart_visible = true
configured = true
tile_type = "DATABASES_OVERVIEW"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 304
left = 950
top = 342
width = 304
}
}
tile {
name = "Problems"
configured = true
tile_type = "OPEN_PROBLEMS"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 152
left = 1102
top = 646
width = 152
}
}
tile {
name = "Markdown"
configured = true
markdown = "Response time (line, left axis), number of requests (blue bars, right axis) and number of errors (red bars, right axis)."
tile_type = "MARKDOWN"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 304
left = 1254
top = 38
width = 152
}
}
tile {
name = "Custom chart"
configured = true
tile_type = "CUSTOM_CHARTING"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 304
left = 38
top = 836
width = 1216
}
filter_config {
type = "MIXED"
custom_name = "Response time, Throughput and Number of Errors"
default_name = "Custom chart"
chart_config {
type = "TIMESERIES"
legend = true
result_metadata {
config {
custom_color = "#008cdb"
key = "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE"
last_modified = 1613393764720
}
config {
custom_color = "#7c38a1"
key = "SERVICE-B906ECBFB2BD723B¦SERVICE»SERVICE-B906ECBFB2BD723B»truebuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE"
last_modified = 1613393828759
}
config {
custom_color = "#debbf3"
key = "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE"
last_modified = 1613393762483
}
config {
custom_color = "#ff0000"
key = "SERVICE-B906ECBFB2BD723B¦SERVICE»SERVICE-B906ECBFB2BD723B»truebuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE"
last_modified = 1613393834140
}
config {
custom_color = "#ff0000"
key = "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE"
last_modified = 1613393770444
}
}
series {
type = "LINE"
aggregation = "AVG"
aggregation_rate = "TOTAL"
entity_type = "SERVICE"
metric = "builtin:service.response.time"
# sort_ascending = false
# sort_column = false
dimension {
name = "dt.entity.service"
entity_dimension = true
id = "0"
}
}
series {
type = "BAR"
aggregation = "NONE"
aggregation_rate = "TOTAL"
entity_type = "SERVICE"
metric = "builtin:service.requestCount.total"
# sort_ascending = false
# sort_column = false
dimension {
name = "dt.entity.service"
entity_dimension = true
id = "0"
}
}
series {
type = "BAR"
aggregation = "NONE"
aggregation_rate = "TOTAL"
entity_type = "SERVICE"
metric = "builtin:service.errors.total.count"
# sort_ascending = false
sort_column = true
dimension {
name = "dt.entity.service"
entity_dimension = true
id = "0"
}
}
}
filters {
filter {
entity_type = "SERVICE"
match {
key = "SPECIFIC_ENTITIES"
values = [ "SERVICE-B906ECBFB2BD723B" ]
}
}
}
}
}
tile {
name = "RouterService"
configured = true
tile_type = "HEADER"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 38
left = 38
top = 798
width = 304
}
}
}

View File

@ -0,0 +1,333 @@
# DEFINE dynatrace_dashboard.CD_APIGW_INT.id = 038bb8d8-9845-4383-af9e-6314ef851476
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_INT" {
dashboard_metadata {
name = "CD_APIGW INT"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
# preset = false
shared = true
tags = [ "APIGW" ]
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:APIGW", "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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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:APIGW", "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:APIGW", "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:APIGW", "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:APIGW", "Environment:INT" ]
}
}
}
}
}
}
# DEFINE dynatrace_dashboard_sharing.CD_APIGW_INT.id = 038bb8d8-9845-4383-af9e-6314ef851476
resource "dynatrace_dashboard_sharing" "CD_APIGW_INT" {
enabled = true
dashboard_id = dynatrace_dashboard.CD_APIGW_INT.id
# preset = false
permissions {
permission {
type = "ALL"
level = "VIEW"
}
}
}

View File

@ -0,0 +1,333 @@
# DEFINE dynatrace_dashboard.CD_APIGW_TEST.id = 6b99e077-9add-4e7b-b40e-04fd9d7a9f4e
data "dynatrace_management_zone" "CD_APIGW_TEST"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_TEST" {
dashboard_metadata {
name = "CD_APIGW TEST"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
# preset = false
shared = true
tags = [ "APIGW" ]
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:APIGW", "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_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_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:APIGW", "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:APIGW", "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:APIGW", "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:APIGW", "Environment:TEST" ]
}
}
}
}
}
}
# DEFINE dynatrace_dashboard_sharing.CD_APIGW_TEST.id = 6b99e077-9add-4e7b-b40e-04fd9d7a9f4e
resource "dynatrace_dashboard_sharing" "CD_APIGW_TEST" {
enabled = true
dashboard_id = dynatrace_dashboard.CD_APIGW_TEST.id
# preset = false
permissions {
permission {
type = "ALL"
level = "VIEW"
}
}
}

View File

@ -0,0 +1,216 @@
# DEFINE dynatrace_dashboard.CD_APIGW_Webserver_Overview.id = 7ff9f94a-e623-4bf8-a830-701a07e13e54
data "dynatrace_management_zone" "CD_APIGW_Webserver_Overview"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_Webserver_Overview" {
dashboard_metadata {
name = "CD_APIGW Webserver Overview"
owner = "Ignacio.Goldman@partner.bmwgroup.com"
preset = true
shared = true
}
tile {
name = "Custom chart"
configured = true
tile_type = "CUSTOM_CHARTING"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 494
left = 0
top = 0
width = 988
}
filter_config {
type = "MIXED"
custom_name = "Total Response time and Response count"
default_name = "Custom chart"
chart_config {
type = "TIMESERIES"
legend = true
result_metadata {
config {
custom_color = "#00ff00"
key = "null¦Dimension»200»falsecalc:service.api_gw_byhttpstatus|NONE|TOTAL|BAR|SERVICE|SERVICE¿¿¿Dimensionɵfalse"
last_modified = 1610972474646
}
config {
custom_color = "#ff0000"
key = "null¦Dimension»500»falsecalc:service.api_gw_byhttpstatus|NONE|TOTAL|BAR|SERVICE|SERVICE¿¿¿Dimensionɵfalse"
last_modified = 1610972483074
}
}
series {
type = "BAR"
aggregation = "NONE"
aggregation_rate = "TOTAL"
entity_type = "SERVICE"
metric = "calc:service.api_gw_byhttpstatus"
# sort_ascending = false
# sort_column = false
dimension {
name = "Dimension"
# entity_dimension = false
id = "1"
}
}
series {
type = "LINE"
aggregation = "PERCENTILE"
aggregation_rate = "TOTAL"
entity_type = "SERVICE"
metric = "builtin:service.response.time"
percentile = 95
# sort_ascending = false
# sort_column = false
}
series {
type = "LINE"
aggregation = "AVG"
aggregation_rate = "TOTAL"
entity_type = "SERVICE"
metric = "builtin:service.response.time"
# sort_ascending = false
# sort_column = false
}
}
}
}
tile {
name = "Custom chart"
configured = true
tile_type = "CUSTOM_CHARTING"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 494
left = 988
top = 0
width = 456
}
filter_config {
type = "MIXED"
custom_name = "http Response Code Distribution "
default_name = "Custom chart"
chart_config {
type = "PIE"
legend = true
result_metadata {
config {
custom_color = "#00ff00"
key = "null¦Dimension»200»falsecalc:service.api_gw_byhttpstatus|NONE|TOTAL|BAR|SERVICE"
last_modified = 1610972583848
}
config {
custom_color = "#00ff00"
key = "null¦Dimension»200»falsecalc:service.api_gw_byhttpstatus|NONE|TOTAL|BAR|SERVICE|SERVICE¿¿¿Dimensionɵfalse"
last_modified = 1610972474646
}
config {
custom_color = "#ff0000"
key = "null¦Dimension»500»falsecalc:service.api_gw_byhttpstatus|NONE|TOTAL|BAR|SERVICE|SERVICE¿¿¿Dimensionɵfalse"
last_modified = 1610972483074
}
}
series {
type = "BAR"
aggregation = "NONE"
aggregation_rate = "TOTAL"
entity_type = "SERVICE"
metric = "calc:service.api_gw_byhttpstatus"
# sort_ascending = false
sort_column = true
dimension {
name = "Dimension"
# entity_dimension = false
id = "1"
}
}
}
}
}
tile {
name = "Problems"
configured = true
tile_type = "OPEN_PROBLEMS"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 152
left = 1292
top = 494
width = 152
}
}
tile {
name = ""
chart_visible = true
configured = true
tile_type = "SERVICES"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 190
left = 912
top = 494
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 = "NAME"
values = [ "int-api" ]
}
match {
key = "SERVICE_TYPE"
values = [ "1" ]
}
}
}
}
}
tile {
name = ""
chart_visible = true
configured = true
tile_type = "HOSTS"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 190
left = 1102
top = 494
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 = "NAME"
values = [ "li" ]
}
}
}
}
}
}

View File

@ -0,0 +1,232 @@
# DEFINE dynatrace_management_zone.CD_APIGW.id = -4304321345446423873
resource "dynatrace_management_zone" "CD_APIGW" {
name = "CD_APIGW"
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-APP"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-WS"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "Service Gateway Legacy"
}
}
}
}
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 = "APIGW-APP"
}
}
}
}
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 = "APIGW-WS"
}
}
}
}
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 = "Service Gateway Legacy"
}
}
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_INT.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQ0YTMwOGU5My1jM2U3LTMxY2QtYjk4YS1mODU2ZmI4MmQ5YjG-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_INT"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_INT" {
name = "CD_APIGW INT"
management_zone = data.dynatrace_management_zone.CD_APIGW_INT.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:INT" ]
}
}
}

View File

@ -0,0 +1,26 @@
# DEFINE dynatrace_alerting.CD_APIGW_PROD.id = vu9U3hXa3q0AAAABABhidWlsdGluOmFsZXJ0aW5nLnByb2ZpbGUABnRlbmFudAAGdGVuYW50ACQzMjVjYTU4Yi00YzA5LTMxMGMtYjhkOS04NmRhODkxN2E3YWS-71TeFdrerQ
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_alerting" "CD_APIGW_PROD" {
name = "CD_APIGW PROD"
management_zone = data.dynatrace_management_zone.CD_APIGW_PROD.id
rules {
rule {
delay_in_minutes = 0
include_mode = "INCLUDE_ALL"
severity_level = "AVAILABILITY"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 10
include_mode = "INCLUDE_ALL"
severity_level = "CUSTOM_ALERT"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
rule {
delay_in_minutes = 30
include_mode = "INCLUDE_ALL"
severity_level = "RESOURCE_CONTENTION"
tags = [ "Component:APIGW-WS", "Environment:PROD" ]
}
}
}

View File

@ -0,0 +1,351 @@
# DEFINE dynatrace_dashboard.CD_APIGW_PROD.id = 942bcae7-e9bc-480f-a3a9-a04ca8c51c44
data "dynatrace_management_zone" "CD_APIGW_PROD"{ name="CD_APIGW" }
resource "dynatrace_dashboard" "CD_APIGW_PROD" {
dashboard_metadata {
name = "CD_APIGW PROD"
owner = "Carlo.DiMastrogiovanni@partner.bmw.de"
# preset = false
shared = true
tags = [ "APIGW", "APIGW-WS" ]
filter {
timeframe = "-24h to now"
}
}
tile {
name = "Overall Health"
configured = true
tile_type = "HEADER"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 38
left = 38
top = 0
width = 1064
}
}
tile {
name = "Host health"
chart_visible = true
configured = true
tile_type = "HOSTS"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 152
left = 76
top = 38
width = 304
}
filter {
management_zone {
name = "CD_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_PROD.id
}
}
}
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:APIGW-WS~\")\")),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(~\"Environment:PROD~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:APIGW-WS~\")\"))))):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:APIGW-WS~\")\")),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:APIGW-WS~\")\")),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(~\"Environment:PROD~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:APIGW-WS~\")\"))))):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:APIGW-WS~\")\")),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 = 304
left = 38
top = 570
width = 1064
}
filter {
management_zone {
name = "CD_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_PROD.id
}
}
}
tile {
name = "Failure rate (HTTP 4xx/5xx errors)"
configured = true
custom_name = "Failure rate (HTTP 4xx/5xx errors)"
tile_type = "DATA_EXPLORER"
unknowns = jsonencode({
"isAutoRefreshDisabled": false,
"metricExpressions": [
"resolution=null\u0026(builtin:service.errors.fourxx.rate:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:APIGW-WS~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)):limit(100):names,(builtin:service.errors.fivexx.rate:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:APIGW-WS~\")\"))))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)):limit(100):names"
],
"queries": [
{
"enabled": true,
"id": "A",
"metricSelector": "builtin:service.errors.fourxx.rate:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:APIGW-WS~\")\")),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.errors.fivexx.rate:filter(and(and(in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Environment:PROD~\")\")),in(\"dt.entity.service\",entitySelector(\"type(service),tag(~\"Component:APIGW-WS~\")\"))))):splitBy():avg:auto:sort(value(avg,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",
"B"
],
"visible": true
}
]
},
"global": {
"hideLegend": false
},
"graphChartSettings": {
"connectNulls": false
},
"heatmapSettings": {
"yAxis": "VALUE"
},
"rules": [
{
"matcher": "A:",
"properties": {
"color": "DEFAULT",
"seriesType": "COLUMN"
},
"seriesOverrides": []
},
{
"matcher": "B:",
"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 = 304
left = 38
top = 228
width = 1064
}
filter {
management_zone {
name = "CD_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_PROD.id
}
}
}
tile {
name = "Service health"
chart_visible = true
configured = true
tile_type = "SERVICES"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 152
left = 494
top = 38
width = 304
}
filter {
management_zone {
name = "CD_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_PROD.id
}
}
}
tile {
name = "Problems"
configured = true
tile_type = "OPEN_PROBLEMS"
unknowns = jsonencode({
"isAutoRefreshDisabled": false
})
bounds {
height = 152
left = 912
top = 38
width = 152
}
filter {
management_zone {
name = "CD_APIGW"
id = data.dynatrace_management_zone.CD_APIGW_PROD.id
}
}
}
}
# DEFINE dynatrace_dashboard_sharing.CD_APIGW_PROD.id = 942bcae7-e9bc-480f-a3a9-a04ca8c51c44
resource "dynatrace_dashboard_sharing" "CD_APIGW_PROD" {
enabled = true
dashboard_id = dynatrace_dashboard.CD_APIGW_PROD.id
# preset = false
permissions {
permission {
type = "ALL"
level = "VIEW"
}
}
}

View File

@ -0,0 +1,232 @@
# DEFINE dynatrace_management_zone.CD_APIGW.id = 1449303990270766173
resource "dynatrace_management_zone" "CD_APIGW" {
name = "CD_APIGW"
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-APP"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "APIGW-WS"
}
}
}
}
rules {
type = "SERVICE"
enabled = true
propagation_types = [ "SERVICE_TO_HOST_LIKE", "SERVICE_TO_PROCESS_GROUP_LIKE" ]
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "HealthResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PingResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_NAME"
}
string {
case_sensitive = true
negate = true
operator = "CONTAINS"
value = "PrometheusResource"
}
}
conditions {
key {
type = "STATIC"
attribute = "SERVICE_TAGS"
}
tag {
# negate = false
operator = "EQUALS"
value {
context = "CONTEXTLESS"
key = "Component"
value = "Service Gateway Legacy"
}
}
}
}
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 = "APIGW-APP"
}
}
}
}
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 = "APIGW-WS"
}
}
}
}
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 = "Service Gateway Legacy"
}
}
}
}
}