Merge remote-tracking branch 'origin/master' into A_sloFix

# Conflicts:
#	EMEA_PROD/slo/TP_Mobile_PersonalFavorites.tf
PerseusSLO
SLW\YELGIM 2022-04-14 10:50:32 +02:00
commit 6e91d5a271
29 changed files with 212 additions and 56 deletions

View File

@ -1,26 +0,0 @@
terraform {
required_providers {
dynatrace = {
version = "1.10.0"
source = "dynatrace-oss/dynatrace"
}
}
backend "s3" {
bucket = "coco-dynatrace-tfstate"
key = "eupreprod/calculated_service_metrics/terraform.tfstate"
region = "eu-central-1"
dynamodb_table = "coco-dynatrace-tfstate"
encrypt = true
}
}
variable EMEA_PREPROD_ENV_URL {}
variable EMEA_PREPROD_API_TOKEN {}
provider "dynatrace" {
dt_env_url = "${var.EMEA_PREPROD_ENV_URL}"
dt_api_token = "${var.EMEA_PREPROD_API_TOKEN}"
}

View File

@ -0,0 +1,9 @@
module TP_Mobile_VehicleData {
source = "../../_dynatrace-base-modules/dynatrace-custom-anomalies"
name = "TP_Mobile_VehicleData"
metric_selector = "${data.terraform_remote_state.slo.outputs.TP_Mobile_VehicleData_metric}"
}

View File

@ -0,0 +1,38 @@
terraform {
required_providers {
dynatrace = {
version = "1.11.0"
source = "dynatrace-oss/dynatrace"
}
}
backend "s3" {
bucket = "coco-dynatrace-tfstate"
key = "EMEA_PROD/custom_anomalies/terraform.tfstate"
region = "eu-central-1"
dynamodb_table = "coco-dynatrace-tfstate"
encrypt = true
}
}
variable EMEA_PROD_ENV_URL {}
variable EMEA_PROD_API_TOKEN {}
provider "dynatrace" {
dt_env_url = "${var.EMEA_PROD_ENV_URL}"
dt_api_token = "${var.EMEA_PROD_API_TOKEN}"
}
data "terraform_remote_state" "slo" {
backend = "s3"
config = {
bucket = "coco-dynatrace-tfstate"
key = "EMEA_PROD/slo/terraform.tfstate"
region = "eu-central-1"
encrypt = true
dynamodb_table = "coco-dynatrace-tfstate"
}
}

View File

@ -0,0 +1,33 @@
module ICES_-_AmbientMusicAPI_-_EMEA_-_PROD {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "ICES - AmbientMusicAPI - EMEA - PROD"
description = "AmbientMusicAPI_Draft"
#entity selector object
filter = "type(\"SERVICE\"),entityName(\"AmbientMusicApiImpl\"),tag(\"Environment:PROD\")"
#metric expression of the calculation as done in data explorer ui
metric_expression = "(100)*((1)-( builtin:service.errors.fivexx.rate:splitBy():avg:auto:sort(value(avg,descending)):limit(10))/( builtin:service.requestCount.total:splitBy():sum:auto:sort(value(sum,descending)):limit(10)))"
#if not set (removed) it's defaulted to "-1d"
timeframe = "-1d"
#currently the only possible value
evaluation = "AGGREGATE"
#Target and warning percentage of the SLO as double
target = 98
#if not set(removed) it's defaulted to 98
warning = 99
#if not set(removed) it's defaulted to 99
}

View File

@ -13,7 +13,7 @@ module TP_Mobile_DigitalKey {
#metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT
(100)*
((builtin:service.keyRequest.errors.server.successCount:filter(
((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(
and(
or(
in(
@ -56,7 +56,6 @@ module TP_Mobile_DigitalKey {
)")
)
))):splitBy()))
"
EOT
#if not set (removed) it's defaulted to "-1d"
@ -69,4 +68,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_DigitalKey_metric" {
value = module.TP_Mobile_DigitalKey.metric_expression
}

View File

@ -54,7 +54,6 @@ module TP_Mobile_Login {
)")
)
))):splitBy()))
"
EOT
#if not set (removed) it's defaulted to "-1d"
@ -67,4 +66,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_Login_metric" {
value = module.TP_Mobile_Login.metric_expression
}

View File

@ -59,7 +59,7 @@ module TP_Mobile_Mapping {
~"DELETE /api/v1/vehicles/<VIN>~"
)")
)
))):splitBy()))"
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d"
@ -72,4 +72,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_Mapping_metric" {
value = module.TP_Mobile_Mapping.metric_expression
}

View File

@ -71,8 +71,12 @@ module TP_Mobile_PersonalFavorites {
~"PUT /api/v2/favorites/homework/2~"
)")
)
<<<<<<< HEAD
))):splitBy()))"
>>>>>>> b81834091683d952e2d1521baba73fa2ab118d03
=======
))):splitBy()))
>>>>>>> origin/master
EOT
#if not set (removed) it's defaulted to "-1d"
@ -85,4 +89,9 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_PersonalFavorites_metric" {
value = module.TP_Mobile_PersonalFavorites.metric_expression
}

View File

@ -61,7 +61,7 @@ module TP_Mobile_Remote360 {
~"GET /recordings/vehicle/$vin~"
)")
)
))):splitBy()))"
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d"
@ -74,4 +74,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_Remote360_metric" {
value = module.TP_Mobile_Remote360.metric_expression
}

View File

@ -65,7 +65,7 @@ module TP_Mobile_RemoteServices {
~"GET /api/v2/presentation/remote-commands/eventStatus~"
)")
)
))):splitBy()))"
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d"
@ -78,4 +78,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_RemoteServices_metric" {
value = module.TP_Mobile_RemoteServices.metric_expression
}

View File

@ -13,7 +13,7 @@ module TP_Mobile_Send2VehicleLegacy {
#metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT
(100)*
((builtin:service.keyRequest.errors.server.successCount:filter(
((builtin:service.errors.server.successCount:filter(
and(
or(
in(
@ -26,7 +26,7 @@ module TP_Mobile_Send2VehicleLegacy {
)
)
)):splitBy())/
(builtin:service.keyRequest.count.server:filter(
(builtin:service.requestCount.total:filter(
and(
or(
in(
@ -38,7 +38,7 @@ module TP_Mobile_Send2VehicleLegacy {
")
)
)
)):splitBy()))"
)):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d"
@ -51,4 +51,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_Send2VehicleLegacy_metric" {
value = module.TP_Mobile_Send2VehicleLegacy.metric_expression
}

View File

@ -26,8 +26,8 @@ module TP_Mobile_Send2VehicleMGU {
)
)
,entityName.in(
~"/v2/motorist/[UUID]/trips",
~"/v3/motorist/[UUID]/trips"
~"/v2/motorist/[UUID]/trips~",
~"/v3/motorist/[UUID]/trips~"
)")
)
))):splitBy())
@ -45,11 +45,11 @@ module TP_Mobile_Send2VehicleMGU {
)
)
,entityName.in(
~"/v2/motorist/[UUID]/trips",
~"/v3/motorist/[UUID]/trips"
~"/v2/motorist/[UUID]/trips~",
~"/v3/motorist/[UUID]/trips~"
)")
)
))):splitBy()))"
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d"
@ -62,4 +62,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_Send2VehicleMGU_metric" {
value = module.TP_Mobile_Send2VehicleMGU.metric_expression
}

View File

@ -51,7 +51,7 @@ module TP_Mobile_VehicleData {
~"GET /v1/vehicle/<VIN>~"
)")
)
))):splitBy())"
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d"
@ -64,4 +64,9 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_VehicleData_metric" {
value = module.TP_Mobile_VehicleData.metric_expression
}

View File

@ -45,7 +45,7 @@ module TP_Mobile_VehicleList {
~"GET /api/v1/vehicles~"
)")
)
))):splitBy()))"
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d"
@ -58,4 +58,8 @@ evaluation = "AGGREGATE"
target = 98 #if not set(removed) it's defaulted to 98
warning = 99 #if not set(removed) it's defaulted to 99
}
output "TP_Mobile_VehicleList_metric" {
value = module.TP_Mobile_VehicleList.metric_expression
}

View File

@ -10,7 +10,7 @@ module VDM_-_RSU_-_EMEA_E2E {
#entity selector object
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-813D7B449863A9A0\",\"SERVICE_METHOD-8612BFC9B4209B21\",\"SERVICE_METHOD-D08B1FE048BED1B2\",\"SERVICE_METHOD-6C0299941A0E4C1E\",\"SERVICE_METHOD-D3B134F2B9885DB4\",\"SERVICE_METHOD-2FDB1E822AB158CB\",\"SERVICE_METHOD-BCF86BC6AE79F7B6\",\"SERVICE_METHOD-90A5C9D32DD1BD20\",\"SERVICE_METHOD-37FE8C49B7111F7C\",\"SERVICE_METHOD-1A77D5DCF7CE235E\",\"SERVICE_METHOD-E4E3286247AA8BEB\")"
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-838A33198DB71C3D\",\"SERVICE_METHOD-544D9A523951DD9D\",\"SERVICE_METHOD-C7C7E7E30134CC4D\",\"SERVICE_METHOD-F5D48F6F3C9BB5A5\",\"SERVICE_METHOD-8C07F6C47928DCE1\",\"SERVICE_METHOD-EC33958252EFBE2D\",\"SERVICE_METHOD-887AD0E6454A03AD\",\"SERVICE_METHOD-C6618A2B5214ED42\",\"SERVICE_METHOD-0700CD81C580BCFE\",\"SERVICE_METHOD-C2A96AF76A2B3357\",\"SERVICE_METHOD-415422AFEC4E5C30\")"
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VDM_-_RSU_-_EMEA_PROD {
#entity selector object
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-9AF7A9302E71A3BE\",\"SERVICE_METHOD-360C23BA44FD151A\",\"SERVICE_METHOD-BC4D2349C378287A\",\"SERVICE_METHOD-DD5CDB7B683E508E\",\"SERVICE_METHOD-A96EF549D37C4AD7\",\"SERVICE_METHOD-BBD8F64F76C87670\",\"SERVICE_METHOD-674F670A27DDAB92\",\"SERVICE_METHOD-892AFAED1C4C45C2\",\"SERVICE_METHOD-BDCD96EFA6AFF21F\",\"SERVICE_METHOD-7B91EB6EF6AAABD0\",\"SERVICE_METHOD-C291996956CD2A5E\")"
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-D326B245FDB9D1ED\",\"SERVICE_METHOD-9302D3E7A92ADDFA\",\"SERVICE_METHOD-906DE650C315D350\",\"SERVICE_METHOD-D8A1844CE8071821\",\"SERVICE_METHOD-0DA998BAE52F2411\",\"SERVICE_METHOD-A4E2775F8C482FAA\",\"SERVICE_METHOD-134EDF22BE9DD08C\",\"SERVICE_METHOD-F88AA0117B1EAFE8\",\"SERVICE_METHOD-66102B135997AC0F\",\"SERVICE_METHOD-09E14021A51BFE1E\",\"SERVICE_METHOD-2C35BCA5F6C89C41\")"
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Error_Latency_2000ms_Rate {
#entity selector object
filter = "type(\"SERVICE_METHOD\")"
filter = ""
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Error_Latency_500ms_Rate {
#entity selector object
filter = "type(\"SERVICE_METHOD\")"
filter = ""
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Error_Latency_700ms_Rate {
#entity selector object
filter = "type(\"SERVICE_METHOD\")"
filter = ""
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Success_Rate {
#entity selector object
filter = "type(\"SERVICE_METHOD\")"
filter = ""
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VehicleService_-_Vehicle_State_Latency_1500ms_Rate {
#entity selector object
filter = "type(\"SERVICE_METHOD\")"
filter = ""
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VehicleService_-_Vehicle_State_Latency_3000ms_Rate {
#entity selector object
filter = "type(\"SERVICE_METHOD\")"
filter = ""
#metric expression of the calculation as done in data explorer ui

View File

@ -10,7 +10,7 @@ module VehicleService_-_Vehicle_State_Latency_500ms_Rate {
#entity selector object
filter = "type(\"SERVICE_METHOD\")"
filter = ""
#metric expression of the calculation as done in data explorer ui

View File

@ -14,8 +14,8 @@ module Wirkkette__DigitalKey__SMACC___-_Reliability_of_key_requests {
#metric expression of the calculation as done in data explorer ui
metric_expression = "(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-9A8FBF8D27F9D30D~\",~\"SERVICE_METHOD-6F6D2E5C26B28D4D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10))/(builtin:service.keyRequest.count.server:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-9A8FBF8D27F9D30D~\",~\"SERVICE_METHOD-6F6D2E5C26B28D4D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)))"
metric_expression = "(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-EA852E5283881C68~\",~\"SERVICE_METHOD-6FA84708A746BE9D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10))/(builtin:service.keyRequest.count.server:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-EA852E5283881C68~\",~\"SERVICE_METHOD-6FA84708A746BE9D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)))"
#if not set (removed) it's defaulted to "-1d"
timeframe = "-1d"

View File

@ -1,9 +1,9 @@
module Wirkkette__News_Next__-_Reliability_of_key_requests {
module Wirkkette__Podcast__Service__-_Reliability_of_key_requests {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "Wirkkette \"News Next\" - Reliability of key requests"
name = "Wirkkette \"Podcast Service\" - Reliability of key requests"
description = "CoCo-QM-Report_Vehicle"

View File

@ -10,7 +10,8 @@ module Wirkkette__RSU__-_Reliability_of_key_requests {
#entity selector object
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-360C23BA44FD151A\",\"SERVICE_METHOD-9AF7A9302E71A3BE\",\"SERVICE_METHOD-BC4D2349C378287A\",\"SERVICE_METHOD-DD5CDB7B683E508E\",\"SERVICE_METHOD-BBD8F64F76C87670\",\"SERVICE_METHOD-674F670A27DDAB92\",\"SERVICE_METHOD-892AFAED1C4C45C2\",\"SERVICE_METHOD-7B91EB6EF6AAABD0\",\"SERVICE_METHOD-C291996956CD2A5E\",\"SERVICE_METHOD-A96EF549D37C4AD7\",\"SERVICE_METHOD-BDCD96EFA6AFF21F\")"
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-D326B245FDB9D1ED\",\"SERVICE_METHOD-9302D3E7A92ADDFA\",\"SERVICE_METHOD-906DE650C315D350\",\"SERVICE_METHOD-D8A1844CE8071821\",\"SERVICE_METHOD-0DA998BAE52F2411\",\"SERVICE_METHOD-A4E2775F8C482FAA\",\"SERVICE_METHOD-134EDF22BE9DD08C\",\"SERVICE_METHOD-F88AA0117B1EAFE8\",\"SERVICE_METHOD-66102B135997AC0F\",\"SERVICE_METHOD-09E14021A51BFE1E\",\"SERVICE_METHOD-2C35BCA5F6C89C41\")"
#filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-360C23BA44FD151A\",\"SERVICE_METHOD-9AF7A9302E71A3BE\",\"SERVICE_METHOD-BC4D2349C378287A\",\"SERVICE_METHOD-DD5CDB7B683E508E\",\"SERVICE_METHOD-BBD8F64F76C87670\",\"SERVICE_METHOD-674F670A27DDAB92\",\"SERVICE_METHOD-892AFAED1C4C45C2\",\"SERVICE_METHOD-7B91EB6EF6AAABD0\",\"SERVICE_METHOD-C291996956CD2A5E\",\"SERVICE_METHOD-A96EF549D37C4AD7\",\"SERVICE_METHOD-BDCD96EFA6AFF21F\")"
#metric expression of the calculation as done in data explorer ui

View File

@ -0,0 +1,23 @@
# General Variables
variable "name" { default = "" }
variable "description" { default = "The {metricname} value of {severity} was {alert_condition} your custom threshold of {threshold}." }
variable "ownerMail" { default = "" }
variable "enabled" { default = true } //currently nothing else possible
#Target and warning percentage of the SLO as integer
variable "severity" { default = "CUSTOM_ALERT" }
#Metrics to be evaluated, must result in a percentage metric
variable "metric_selector" { default = "" }
variable "alert_condition" { default = "BELOW" }
variable "alerting_on_missing_data" { default = true }
variable "dealerting_samples" { default = 15 }
variable "samples" { default = 15 }
variable "threshold" { default = 10 }
variable "unit" { default = "UNSPECIFIED" }
variable "violating_samples" { default = 5 }

View File

@ -0,0 +1,26 @@
terraform {
required_providers {
dynatrace = {
version = "1.11.0"
source = "dynatrace-oss/dynatrace"
}
}
}
resource dynatrace_custom_anomalies main {
name = "${var.name}"
description = "${var.description}"
enabled = "${var.enabled}"
metric_selector = trimspace("${var.metric_selector}")
severity = "${var.severity}"
strategy {
static {
alert_condition = "${var.alert_condition}"
alerting_on_missing_data = "${var.alerting_on_missing_data}"
dealerting_samples = "${var.dealerting_samples}"
samples = "${var.samples}"
threshold = "${var.threshold}"
unit = "${var.unit}"
violating_samples = "${var.violating_samples}"
}
}
}

View File

@ -24,3 +24,11 @@ resource dynatrace_slo main {
output "id" {
value = dynatrace_slo.main.id
}
output "name" {
value = dynatrace_slo.main.name
}
output "metric_expression" {
value = dynatrace_slo.main.metric_expression
}