From ce1d950a312dac8a9aab06705923279af2e1329a Mon Sep 17 00:00:00 2001 From: rforstner Date: Thu, 3 Mar 2022 15:43:20 +0100 Subject: [PATCH] adding EMEA PREPROD SLOS --- ...rvices_-_Charging_Profile_-_Reliability.tf | 23 +++++++++++++++++++ ...mote_Services_-_Door_Lock_-_Reliability.tf | 23 +++++++++++++++++++ ...te_Services_-_Door_Unlock_-_Reliability.tf | 14 +++++++++++ ...te_Services_-_Light_Flash_-_Reliability.tf | 23 +++++++++++++++++++ ...ile_2_0_-_Remote_Services_-_Reliability.tf | 23 +++++++++++++++++++ .../slo/RemoteServices_-_Reliability.tf | 23 +++++++++++++++++++ EMEA_PREPROD/slo/{main.tf => __main.tf} | 2 +- EMEA_PREPROD/slo/terraform_test.tf | 15 ++++++++++++ EMEA_PREPROD/slo/without_500_.tf | 23 +++++++++++++++++++ .../_interface.tf | 2 +- .../dynatrace-service-level-objective.tf | 2 +- 11 files changed, 170 insertions(+), 3 deletions(-) create mode 100644 EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Charging_Profile_-_Reliability.tf create mode 100644 EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Lock_-_Reliability.tf create mode 100644 EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Unlock_-_Reliability.tf create mode 100644 EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Light_Flash_-_Reliability.tf create mode 100644 EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Reliability.tf create mode 100644 EMEA_PREPROD/slo/RemoteServices_-_Reliability.tf rename EMEA_PREPROD/slo/{main.tf => __main.tf} (90%) create mode 100644 EMEA_PREPROD/slo/terraform_test.tf create mode 100644 EMEA_PREPROD/slo/without_500_.tf diff --git a/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Charging_Profile_-_Reliability.tf b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Charging_Profile_-_Reliability.tf new file mode 100644 index 0000000..2441a57 --- /dev/null +++ b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Charging_Profile_-_Reliability.tf @@ -0,0 +1,23 @@ +module Mobile_2_0_-_Remote_Services_-_Charging_Profile_-_Reliability { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "Mobile 2.0 - Remote Services - Charging Profile - Reliability" + + description = "" + + evaluation = "AGGREGATE" + + filter = "type(\"MOBILE_APPLICATION\")" + + metric_expression = "(100)*((calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_chargingprofile_withoutwebrequesterrors:splitBy())/(calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_chargingprofile:splitBy()))" + + timeframe = "-1d" + + target = 98 + + warning = 99 + + +} \ No newline at end of file diff --git a/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Lock_-_Reliability.tf b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Lock_-_Reliability.tf new file mode 100644 index 0000000..2765161 --- /dev/null +++ b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Lock_-_Reliability.tf @@ -0,0 +1,23 @@ +module Mobile_2_0_-_Remote_Services_-_Door_Lock_-_Reliability { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "Mobile 2.0 - Remote Services - Door Lock - Reliability" + + description = "" + + evaluation = "AGGREGATE" + + filter = "type(\"MOBILE_APPLICATION\")" + + metric_expression = "(100)*((calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_doorlock_withoutwebrequesterrors:splitBy())/(calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_doorlock:splitBy()))" + + timeframe = "-1d" + + target = 98 + + warning = 99 + + +} \ No newline at end of file diff --git a/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Unlock_-_Reliability.tf b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Unlock_-_Reliability.tf new file mode 100644 index 0000000..116c5fb --- /dev/null +++ b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Door_Unlock_-_Reliability.tf @@ -0,0 +1,14 @@ +module Mobile_2_0_-_Remote_Services_-_Door_Unlock_-_Reliability { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "Mobile 2.0 - Remote Services - Door Unlock - Reliability" + description = "" + evaluation = "AGGREGATE" + filter = "type(\"MOBILE_APPLICATION\")" + metric_expression = "(100)*((calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_doorunlock_withoutwebrequesterrors:splitBy())/(calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_doorunlock:splitBy()))" + timeframe = "-1d" + target = 98 + warning = 99 +} \ No newline at end of file diff --git a/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Light_Flash_-_Reliability.tf b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Light_Flash_-_Reliability.tf new file mode 100644 index 0000000..f3ef9cb --- /dev/null +++ b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Light_Flash_-_Reliability.tf @@ -0,0 +1,23 @@ +module Mobile_2_0_-_Remote_Services_-_Light_Flash_-_Reliability { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "Mobile 2.0 - Remote Services - Light Flash - Reliability" + + description = "" + + evaluation = "AGGREGATE" + + filter = "type(\"MOBILE_APPLICATION\")" + + metric_expression = "(100)*((calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_lightflash_withoutwebrequesterrors:splitBy())/(calc:apps.mobile.mobile2.0bmw_rowdstint_ios_android_.remoteservices_lightflash:splitBy()))" + + timeframe = "-1d" + + target = 98 + + warning = 99 + + +} \ No newline at end of file diff --git a/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Reliability.tf b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Reliability.tf new file mode 100644 index 0000000..35a40f6 --- /dev/null +++ b/EMEA_PREPROD/slo/Mobile_2_0_-_Remote_Services_-_Reliability.tf @@ -0,0 +1,23 @@ +module Mobile_2_0_-_Remote_Services_-_Reliability { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "Mobile 2.0 - Remote Services - Reliability" + + description = "" + + evaluation = "AGGREGATE" + + filter = "entityId(\"DEVICE_APPLICATION_METHOD-2E9BBABF5AAF04E7\", \"DEVICE_APPLICATION_METHOD-800AC8B85A732E1A\", \"DEVICE_APPLICATION_METHOD-8E6AACF350240051\", \"DEVICE_APPLICATION_METHOD-93516FA26D0E8F41\", \"DEVICE_APPLICATION_METHOD-BE4A0F7FB6DA788F\", \"DEVICE_APPLICATION_METHOD-DA42E863E802F4A8\", \"DEVICE_APPLICATION_METHOD-FA5AB587636A2E03\", \"DEVICE_APPLICATION_METHOD-FB2D14DFB984C6E0\")" + + metric_expression = "(100)*((builtin:apps.other.keyUserActions.count.osAndApdex:filter(not(eq(Apdex category,FRUSTRATED))):splitBy())/(builtin:apps.other.keyUserActions.count.osAndApdex:splitBy()))" + + timeframe = "-1d" + + target = 98 + + warning = 99 + + +} \ No newline at end of file diff --git a/EMEA_PREPROD/slo/RemoteServices_-_Reliability.tf b/EMEA_PREPROD/slo/RemoteServices_-_Reliability.tf new file mode 100644 index 0000000..b375d70 --- /dev/null +++ b/EMEA_PREPROD/slo/RemoteServices_-_Reliability.tf @@ -0,0 +1,23 @@ +module RemoteServices_-_Reliability { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "RemoteServices - Reliability" + + description = "" + + evaluation = "AGGREGATE" + + filter = "type(SERVICE),tag(Component:RemoteServices)" + + metric_expression = "builtin:service.successes.server.rate:splitBy()" + + timeframe = "-1d" + + target = 98 + + warning = 99 + + +} \ No newline at end of file diff --git a/EMEA_PREPROD/slo/main.tf b/EMEA_PREPROD/slo/__main.tf similarity index 90% rename from EMEA_PREPROD/slo/main.tf rename to EMEA_PREPROD/slo/__main.tf index 3ff3031..687165a 100644 --- a/EMEA_PREPROD/slo/main.tf +++ b/EMEA_PREPROD/slo/__main.tf @@ -8,7 +8,7 @@ terraform { backend "s3" { bucket = "coco-dynatrace-tfstate" - key = "eupreprod/slo/terraform.tfstate" + key = "EMEA_PREPROD/slo/terraform.tfstate" region = "eu-central-1" dynamodb_table = "coco-dynatrace-tfstate" encrypt = true diff --git a/EMEA_PREPROD/slo/terraform_test.tf b/EMEA_PREPROD/slo/terraform_test.tf new file mode 100644 index 0000000..5c436e6 --- /dev/null +++ b/EMEA_PREPROD/slo/terraform_test.tf @@ -0,0 +1,15 @@ +module terraform_test { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "first SLO created through terraform " + description = "fancy description" + evaluation = "AGGREGATE" + filter = "type(\"SERVICE\")" + metric_expression = "builtin:service.errors.fivexx.successCount:splitBy()" + timeframe = "-2d" + target = 99 + warning = 99.9 + +} \ No newline at end of file diff --git a/EMEA_PREPROD/slo/without_500_.tf b/EMEA_PREPROD/slo/without_500_.tf new file mode 100644 index 0000000..ace9352 --- /dev/null +++ b/EMEA_PREPROD/slo/without_500_.tf @@ -0,0 +1,23 @@ +module without_500_ { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "without 500 " + + description = "" + + evaluation = "AGGREGATE" + + filter = "type(\"SERVICE\")" + + metric_expression = "builtin:service.errors.fivexx.successCount:splitBy()" + + timeframe = "-1d" + + target = 99 + + warning = 99.5 + + +} \ No newline at end of file diff --git a/_dynatrace-base-modules/dynatrace-service-level-objective/_interface.tf b/_dynatrace-base-modules/dynatrace-service-level-objective/_interface.tf index 5bd1d08..3c8b506 100644 --- a/_dynatrace-base-modules/dynatrace-service-level-objective/_interface.tf +++ b/_dynatrace-base-modules/dynatrace-service-level-objective/_interface.tf @@ -17,7 +17,7 @@ variable "metric_expression" { default = "" } ##Optional Fields -variable "entitySelector" { default = "" } +variable "filter" { default = "" } diff --git a/_dynatrace-base-modules/dynatrace-service-level-objective/dynatrace-service-level-objective.tf b/_dynatrace-base-modules/dynatrace-service-level-objective/dynatrace-service-level-objective.tf index fc805aa..f068ec6 100644 --- a/_dynatrace-base-modules/dynatrace-service-level-objective/dynatrace-service-level-objective.tf +++ b/_dynatrace-base-modules/dynatrace-service-level-objective/dynatrace-service-level-objective.tf @@ -18,7 +18,7 @@ resource dynatrace_slo main { metric_expression = "${var.metric_expression}" - filter = "${var.entitySelector}" + filter = "${var.filter}" } output "id" {