Template preparation
parent
ac8c3807cf
commit
2c8c3a71e9
|
|
@ -1,12 +0,0 @@
|
|||
module "management_zone" {
|
||||
source = "./management_zone"
|
||||
}
|
||||
|
||||
module "alerting" {
|
||||
source = "./alerting"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
module "dashboard" {
|
||||
source = "./dashboard"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.14.1"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
}
|
||||
variable "DYNATRACE_CNPREPROD_ENV_URL" {
|
||||
type = string
|
||||
description = "URL of Dynatrace environment"
|
||||
}
|
||||
variable "DYNATRACE_CNPREPROD_API_TOKEN" {
|
||||
type = string
|
||||
description = "API token for Dynatrace environment"
|
||||
}
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.DYNATRACE_CNPREPROD_ENV_URL}"
|
||||
dt_api_token = "${var.DYNATRACE_CNPREPROD_API_TOKEN}"
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
module "management_zone" {
|
||||
source = "./management_zone"
|
||||
}
|
||||
|
||||
module "alerting" {
|
||||
source = "./alerting"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
module "dashboard" {
|
||||
source = "./dashboard"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.14.1"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
}
|
||||
variable "DYNATRACE_CNPROD_ENV_URL" {
|
||||
type = string
|
||||
description = "URL of Dynatrace environment"
|
||||
}
|
||||
variable "DYNATRACE_CNPROD_API_TOKEN" {
|
||||
type = string
|
||||
description = "API token for Dynatrace environment"
|
||||
}
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.DYNATRACE_CNPROD_ENV_URL}"
|
||||
dt_api_token = "${var.DYNATRACE_CNPROD_API_TOKEN}"
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
module "management_zone" {
|
||||
source = "./management_zone"
|
||||
}
|
||||
|
||||
module "alerting" {
|
||||
source = "./alerting"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
module "dashboard" {
|
||||
source = "./dashboard"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.14.1"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
}
|
||||
variable "DYNATRACE_EMEAPREPROD_ENV_URL" {
|
||||
type = string
|
||||
description = "URL of Dynatrace environment"
|
||||
}
|
||||
variable "DYNATRACE_EMEAPREPROD_API_TOKEN" {
|
||||
type = string
|
||||
description = "API token for Dynatrace environment"
|
||||
}
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.DYNATRACE_EMEAPREPROD_ENV_URL}"
|
||||
dt_api_token = "${var.DYNATRACE_EMEAPREPROD_API_TOKEN}"
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
module "management_zone" {
|
||||
source = "./management_zone"
|
||||
}
|
||||
|
||||
module "alerting" {
|
||||
source = "./alerting"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
module "dashboard" {
|
||||
source = "./dashboard"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.14.1"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
}
|
||||
variable "DYNATRACE_EMEAPROD_ENV_URL" {
|
||||
type = string
|
||||
description = "URL of Dynatrace environment"
|
||||
}
|
||||
variable "DYNATRACE_EMEAPROD_API_TOKEN" {
|
||||
type = string
|
||||
description = "API token for Dynatrace environment"
|
||||
}
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.DYNATRACE_EMEAPROD_ENV_URL}"
|
||||
dt_api_token = "${var.DYNATRACE_EMEAPROD_API_TOKEN}"
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
module "management_zone" {
|
||||
source = "./management_zone"
|
||||
}
|
||||
|
||||
module "alerting" {
|
||||
source = "./alerting"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
module "dashboard" {
|
||||
source = "./dashboard"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.14.1"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
}
|
||||
variable "DYNATRACE_NAPREPROD_ENV_URL" {
|
||||
type = string
|
||||
description = "URL of Dynatrace environment"
|
||||
}
|
||||
variable "DYNATRACE_NAPREPROD_API_TOKEN" {
|
||||
type = string
|
||||
description = "API token for Dynatrace environment"
|
||||
}
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.DYNATRACE_NAPREPROD_ENV_URL}"
|
||||
dt_api_token = "${var.DYNATRACE_NAPREPROD_API_TOKEN}"
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
module "management_zone" {
|
||||
source = "./management_zone"
|
||||
}
|
||||
|
||||
module "alerting" {
|
||||
source = "./alerting"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
module "dashboard" {
|
||||
source = "./dashboard"
|
||||
depends_on = [module.management_zone]
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.14.1"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
}
|
||||
variable "DYNATRACE_NAPROD_ENV_URL" {
|
||||
type = string
|
||||
description = "URL of Dynatrace environment"
|
||||
}
|
||||
variable "DYNATRACE_NAPROD_API_TOKEN" {
|
||||
type = string
|
||||
description = "API token for Dynatrace environment"
|
||||
}
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.DYNATRACE_NAPROD_ENV_URL}"
|
||||
dt_api_token = "${var.DYNATRACE_NAPROD_API_TOKEN}"
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
resource "dynatrace_alerting" "<APPNAME>_<APPENV>" {
|
||||
name = "<APPNAME> <APPENV>"
|
||||
management_zone = data.dynatrace_management_zone.<APPNAME>.id
|
||||
rules {
|
||||
rule {
|
||||
delay_in_minutes = 0
|
||||
include_mode = "INCLUDE_ALL"
|
||||
severity_level = "AVAILABILITY"
|
||||
tags = [ "Environment:<APPENV>" ]
|
||||
}
|
||||
rule {
|
||||
delay_in_minutes = 10
|
||||
include_mode = "INCLUDE_ALL"
|
||||
severity_level = "CUSTOM_ALERT"
|
||||
tags = [ "Environment:<APPENV>" ]
|
||||
}
|
||||
rule {
|
||||
delay_in_minutes = 10
|
||||
include_mode = "INCLUDE_ALL"
|
||||
severity_level = "ERRORS"
|
||||
tags = [ "Environment:<APPENV>" ]
|
||||
}
|
||||
rule {
|
||||
delay_in_minutes = 30
|
||||
include_mode = "INCLUDE_ALL"
|
||||
severity_level = "PERFORMANCE"
|
||||
tags = [ "Environment:<APPENV>" ]
|
||||
}
|
||||
rule {
|
||||
delay_in_minutes = 30
|
||||
include_mode = "INCLUDE_ALL"
|
||||
severity_level = "RESOURCE_CONTENTION"
|
||||
tags = [ "Environment:<APPENV>" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,328 @@
|
|||
resource "dynatrace_dashboard" "<APPNAME>_<APPENV>" {
|
||||
dashboard_metadata {
|
||||
name = "<APPNAME> <APPENV>"
|
||||
owner = "Ignacio.Goldman@partner.bmwgroup.com"
|
||||
preset = true
|
||||
shared = true
|
||||
tags = [ "<APPNAME>" ]
|
||||
filter {
|
||||
timeframe = "-24h to now"
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = "Custom chart"
|
||||
configured = true
|
||||
tile_type = "CUSTOM_CHARTING"
|
||||
bounds {
|
||||
height = 304
|
||||
left = 38
|
||||
top = 228
|
||||
width = 1064
|
||||
}
|
||||
filter {
|
||||
management_zone {
|
||||
name = "<APPNAME>"
|
||||
id = data.dynatrace_management_zone.<APPNAME>.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:<APPENV>" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = "Problems"
|
||||
configured = true
|
||||
tile_type = "OPEN_PROBLEMS"
|
||||
bounds {
|
||||
height = 152
|
||||
left = 950
|
||||
top = 38
|
||||
width = 152
|
||||
}
|
||||
filter {
|
||||
management_zone {
|
||||
name = "<APPNAME>"
|
||||
id = data.dynatrace_management_zone.<APPNAME>.id
|
||||
}
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = "Overall Health"
|
||||
configured = true
|
||||
tile_type = "HEADER"
|
||||
bounds {
|
||||
height = 38
|
||||
left = 38
|
||||
top = 0
|
||||
width = 1064
|
||||
}
|
||||
filter {
|
||||
management_zone {
|
||||
name = "<APPNAME>"
|
||||
id = data.dynatrace_management_zone.<APPNAME>.id
|
||||
}
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = "Markdown"
|
||||
configured = true
|
||||
markdown =<<-EOT
|
||||
---
|
||||
|
||||
EOT
|
||||
tile_type = "MARKDOWN"
|
||||
bounds {
|
||||
height = 38
|
||||
left = 38
|
||||
top = 532
|
||||
width = 1064
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = "Custom chart"
|
||||
configured = true
|
||||
tile_type = "CUSTOM_CHARTING"
|
||||
bounds {
|
||||
height = 304
|
||||
left = 38
|
||||
top = 570
|
||||
width = 1064
|
||||
}
|
||||
filter {
|
||||
management_zone {
|
||||
name = "<APPNAME>"
|
||||
id = data.dynatrace_management_zone.<APPNAME>.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:<APPENV>" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = "Markdown"
|
||||
configured = true
|
||||
markdown =<<-EOT
|
||||
---
|
||||
|
||||
EOT
|
||||
tile_type = "MARKDOWN"
|
||||
bounds {
|
||||
height = 38
|
||||
left = 38
|
||||
top = 190
|
||||
width = 1064
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = ""
|
||||
chart_visible = true
|
||||
configured = true
|
||||
tile_type = "DATABASES_OVERVIEW"
|
||||
bounds {
|
||||
height = 152
|
||||
left = 646
|
||||
top = 38
|
||||
width = 190
|
||||
}
|
||||
filter {
|
||||
management_zone {
|
||||
name = "<APPNAME>"
|
||||
id = data.dynatrace_management_zone.<APPNAME>.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:<APPENV>" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = ""
|
||||
chart_visible = true
|
||||
configured = true
|
||||
tile_type = "SERVICES"
|
||||
bounds {
|
||||
height = 152
|
||||
left = 342
|
||||
top = 38
|
||||
width = 190
|
||||
}
|
||||
filter {
|
||||
management_zone {
|
||||
name = "<APPNAME>"
|
||||
id = data.dynatrace_management_zone.<APPNAME>.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:<APPENV>" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
tile {
|
||||
name = ""
|
||||
chart_visible = true
|
||||
configured = true
|
||||
tile_type = "HOSTS"
|
||||
bounds {
|
||||
height = 152
|
||||
left = 38
|
||||
top = 38
|
||||
width = 190
|
||||
}
|
||||
filter {
|
||||
management_zone {
|
||||
name = "<APPNAME>"
|
||||
id = data.dynatrace_management_zone.<APPNAME>.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:<APPENV>" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
resource "dynatrace_management_zone" "<APPNAME>" {
|
||||
name = "<APPNAME>"
|
||||
entity_selector_based_rule {
|
||||
enabled = true
|
||||
selector = "type(PROCESS_GROUP_INSTANCE),tag(\"compass-id:<COMPASSID>\")"
|
||||
}
|
||||
entity_selector_based_rule {
|
||||
enabled = true
|
||||
selector = "type(HOST),tag(\"compass-id:<COMPASSID>\")"
|
||||
}
|
||||
entity_selector_based_rule {
|
||||
enabled = true
|
||||
selector = "type(Service),tag(\"compass-id:<COMPASSID>\")"
|
||||
}
|
||||
entity_selector_based_rule {
|
||||
enabled = true
|
||||
selector = "type(SERVICE),databaseName.exists(),toRelationship.calls(type(SERVICE),tag(\"compass-id:<COMPASSID>\"))"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue