diff --git a/CN_PROD/slo/ICES_-_ContentDelivery.tf b/CN_PROD/slo/ICES_-_ContentDelivery.tf new file mode 100644 index 0000000..13af97f --- /dev/null +++ b/CN_PROD/slo/ICES_-_ContentDelivery.tf @@ -0,0 +1,33 @@ +module ICES_-_ContentDelivery { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - ContentDelivery" + + description = "ContentDelivery" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"ContentDelivery\"),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 + +} diff --git a/CN_PROD/slo/ICES_-_Login.tf b/CN_PROD/slo/ICES_-_Login.tf new file mode 100644 index 0000000..2bad24b --- /dev/null +++ b/CN_PROD/slo/ICES_-_Login.tf @@ -0,0 +1,33 @@ +module ICES_-_Login { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - Login" + + description = "Login" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"Login\"),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 + +} diff --git a/CN_PROD/slo/ICES_-_MyModesUser.tf b/CN_PROD/slo/ICES_-_MyModesUser.tf new file mode 100644 index 0000000..6f6df1b --- /dev/null +++ b/CN_PROD/slo/ICES_-_MyModesUser.tf @@ -0,0 +1,33 @@ +module ICES_-_MyModesUser { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - MyModesUser" + + description = "MyModesUser" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"MyModesUser\"),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 + +} diff --git a/CN_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf b/CN_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf index 099f786..e46e67a 100644 --- a/CN_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf +++ b/CN_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf @@ -14,7 +14,45 @@ module Wirkkette__Vehicle_List__-_Reliability_of_key_requests { #metric expression of the calculation as done in data explorer ui - metric_expression = "(100)*(builtin:service.keyRequest.errors.server.successCount:splitBy())/(builtin:service.keyRequest.count.server:splitBy())" + #metric_expression = "(100)*(builtin:service.keyRequest.errors.server.successCount:splitBy())/(builtin:service.keyRequest.count.server:splitBy())" + metric_expression = <<-EOT +(100)* +((builtin:service.keyRequest.errors.server.successCount:filter( + and( + or( + in( + "dt.entity.service_method", + entitySelector( + "type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"btc-vehicle-composite-service - PROD~" + ) + ) + ,entityName.in( + ~"GET /api/v1/vehicles~" + )") + ) +))):splitBy()) +/ +(builtin:service.keyRequest.count.server:filter( + and( + or( + in( + "dt.entity.service_method", + entitySelector( + "type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"btc-vehicle-composite-service - PROD~" + ) + ) + ,entityName.in( + ~"GET /api/v1/vehicles~" + )") + ) +))):splitBy())) +EOT #if not set (removed) it's defaulted to "-1d" diff --git a/EMEA_PROD/slo/ICES_-_ContentDelivery.tf b/EMEA_PROD/slo/ICES_-_ContentDelivery.tf new file mode 100644 index 0000000..13af97f --- /dev/null +++ b/EMEA_PROD/slo/ICES_-_ContentDelivery.tf @@ -0,0 +1,33 @@ +module ICES_-_ContentDelivery { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - ContentDelivery" + + description = "ContentDelivery" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"ContentDelivery\"),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 + +} diff --git a/EMEA_PROD/slo/ICES_-_Login.tf b/EMEA_PROD/slo/ICES_-_Login.tf new file mode 100644 index 0000000..2bad24b --- /dev/null +++ b/EMEA_PROD/slo/ICES_-_Login.tf @@ -0,0 +1,33 @@ +module ICES_-_Login { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - Login" + + description = "Login" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"Login\"),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 + +} diff --git a/EMEA_PROD/slo/ICES_-_MyModesUser.tf b/EMEA_PROD/slo/ICES_-_MyModesUser.tf new file mode 100644 index 0000000..6f6df1b --- /dev/null +++ b/EMEA_PROD/slo/ICES_-_MyModesUser.tf @@ -0,0 +1,33 @@ +module ICES_-_MyModesUser { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - MyModesUser" + + description = "MyModesUser" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"MyModesUser\"),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 + +} diff --git a/EMEA_PROD/slo/Wirkkette__Mapping__-_Reliability_of_key_requests_1h.tf b/EMEA_PROD/slo/Wirkkette__Mapping__-_Reliability_of_key_requests_1h.tf new file mode 100644 index 0000000..a7840df --- /dev/null +++ b/EMEA_PROD/slo/Wirkkette__Mapping__-_Reliability_of_key_requests_1h.tf @@ -0,0 +1,33 @@ +module Wirkkette__Mapping__-_Reliability_of_key_requests_1h { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "Wirkkette \"Mapping\" - Reliability of key requests (1h)" + + description = "" + + + + #entity selector object + filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-1AC76065E0B61FEB\",\"SERVICE_METHOD-CE63D366DB9BC737\",\"SERVICE_METHOD-1B322B1000BC6BB2\",\"SERVICE_METHOD-788BC4F666686871\",\"SERVICE_METHOD-1DB00C9EFA246205\",\"SERVICE_METHOD-7E6EFAB2B32CBF87\")" + + + #metric expression of the calculation as done in data explorer ui + metric_expression = "(100)*((builtin:service.keyRequest.errors.server.successCount:splitBy())/(builtin:service.keyRequest.count.server:splitBy()))" + + + #if not set (removed) it's defaulted to "-1d" + timeframe = "-1h" + + + #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 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf b/EMEA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf index 586dd6f..7e9ba65 100644 --- a/EMEA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf +++ b/EMEA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf @@ -10,12 +10,49 @@ module Wirkkette__Vehicle_List__-_Reliability_of_key_requests { #entity selector object - filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-E517DA3439F6DADF\")" + filter = "" #metric expression of the calculation as done in data explorer ui - metric_expression = "(100)*((builtin:service.keyRequest.errors.server.successCount:splitBy())/(builtin:service.keyRequest.count.server:splitBy()))" - + #metric_expression = "(100)*((builtin:service.keyRequest.errors.server.successCount:splitBy())/(builtin:service.keyRequest.count.server:splitBy()))" + metric_expression = <<-EOT +(100)* +((builtin:service.keyRequest.errors.server.successCount:filter( + and( + or( + in( + "dt.entity.service_method", + entitySelector( + "type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"btc-vehicle-composite-service - PROD~" + ) + ) + ,entityName.in( + ~"GET /api/v2/vehicles~" + )") + ) +))):splitBy()) +/ +(builtin:service.keyRequest.count.server:filter( + and( + or( + in( + "dt.entity.service_method", + entitySelector( + "type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"btc-vehicle-composite-service - PROD~" + ) + ) + ,entityName.in( + ~"GET /api/v2/vehicles~" + )") + ) +))):splitBy())) +EOT #if not set (removed) it's defaulted to "-1d" timeframe = "-1d" diff --git a/NA_PROD/slo/ICES_-_ContentDelivery.tf b/NA_PROD/slo/ICES_-_ContentDelivery.tf new file mode 100644 index 0000000..13af97f --- /dev/null +++ b/NA_PROD/slo/ICES_-_ContentDelivery.tf @@ -0,0 +1,33 @@ +module ICES_-_ContentDelivery { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - ContentDelivery" + + description = "ContentDelivery" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"ContentDelivery\"),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 + +} diff --git a/NA_PROD/slo/ICES_-_Login.tf b/NA_PROD/slo/ICES_-_Login.tf new file mode 100644 index 0000000..2bad24b --- /dev/null +++ b/NA_PROD/slo/ICES_-_Login.tf @@ -0,0 +1,33 @@ +module ICES_-_Login { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - Login" + + description = "Login" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"Login\"),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 + +} diff --git a/NA_PROD/slo/ICES_-_MyModesUser.tf b/NA_PROD/slo/ICES_-_MyModesUser.tf new file mode 100644 index 0000000..6f6df1b --- /dev/null +++ b/NA_PROD/slo/ICES_-_MyModesUser.tf @@ -0,0 +1,33 @@ +module ICES_-_MyModesUser { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - MyModesUser" + + description = "MyModesUser" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"MyModesUser\"),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 + +} diff --git a/NA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf b/NA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf index 62622e1..5b4007e 100644 --- a/NA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf +++ b/NA_PROD/slo/Wirkkette__Vehicle_List__-_Reliability_of_key_requests.tf @@ -14,8 +14,45 @@ module Wirkkette__Vehicle_List__-_Reliability_of_key_requests { #metric expression of the calculation as done in data explorer ui - metric_expression = "(100)*((builtin:service.keyRequest.errors.server.successCount:splitBy())/(builtin:service.keyRequest.count.server:splitBy()))" - + #metric_expression = "(100)*((builtin:service.keyRequest.errors.server.successCount:splitBy())/(builtin:service.keyRequest.count.server:splitBy()))" + metric_expression = <<-EOT +(100)* +((builtin:service.keyRequest.errors.server.successCount:filter( + and( + or( + in( + "dt.entity.service_method", + entitySelector( + "type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"btc-vehicle-composite-service - PROD~" + ) + ) + ,entityName.in( + ~"GET /api/v2/vehicles~" + )") + ) +))):splitBy()) +/ +(builtin:service.keyRequest.count.server:filter( + and( + or( + in( + "dt.entity.service_method", + entitySelector( + "type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"btc-vehicle-composite-service - PROD~" + ) + ) + ,entityName.in( + ~"GET /api/v2/vehicles~" + )") + ) +))):splitBy())) +EOT #if not set (removed) it's defaulted to "-1d" timeframe = "-1d"