Creating SLOs for Speech and Alexa, Modifying SLO for eRoute

MergeOAP
Mohammed Abadel 2022-11-11 17:26:23 +01:00
parent 07107367c0
commit 4ef54b9402
8 changed files with 243 additions and 47 deletions

View File

@ -0,0 +1,44 @@
module Wirkkette_Speech_Service_Vehicle_Reliability_of_key_requests {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "Wirkkette \"Speech Service\" - Reliability of key requests"
description = "CoCo-QM-Report_Draft"
#entity selector object
filter = ""
#metric expression of the calculation as done in data explorer ui
metric_expression = <<EOT
(100)-(builtin:service.keyRequest.errors.server.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"hvd (/hvd) - ipa-backend-cn - prod~",
~"hvd (/hvd) - ipa-backend-cn - e2e~",
~"server (/htts) - ipa-backend-cn - prod~"
)
)
,entityName.in(
~"/hvd/speech~",
~"/htts/transcribe~"
)"))))):splitBy("dt.entity.service_method"))
EOT
#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

@ -1,11 +1,11 @@
module Wirkkette_eRoute_Service_alternative_metric {
module Wirkkette__eRoute_Service__-_Reliability_of_key_requests {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "Wirkkette \"eRoute Service\" - Alternative metric"
name = "Wirkkette \"eRoute Service\" - Reliability of key requests"
description = "Alternative metric based on 5xx error rate"
description = "CoCo QM-Report_Draft"
@ -15,16 +15,15 @@ module Wirkkette_eRoute_Service_alternative_metric {
#metric expression of the calculation as done in data explorer ui
metric_expression = <<EOT
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~"
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~"
)
)
,entityName.in(
~"/api/eu/2.5/eroute/protobuf3~",
~"/api/eu/2.5/eroute-costs/protobuf3~"
)")))):splitBy())
~"/api/cn/route~"
)")))):splitBy("dt.entity.service_method"))
EOT
#if not set (removed) it's defaulted to "-1d"

View File

@ -0,0 +1,42 @@
module Wirkkette_Alexa_Service_Vehicle_Reliability_of_key_requests {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "Wirkkette \"Alexa Service\" - Reliability of key requests"
description = "CoCo-QM-Report_Draft"
#entity selector object
filter = ""
# The metric fivexx.rate shouldn't be changed to server side error metric. Reason is there is a global rule to exclude 502 errors from server side errors.
# However 502 errors should be included in the Alexa endpoint.
metric_expression = <<EOT
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"hvd (/hvd) - hvd - prod~"
)
)
,entityName.in(
~"/hvd/keywords~"
)"))))):splitBy("dt.entity.service_method"))
EOT
#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

@ -0,0 +1,44 @@
module Wirkkette_Speech_Service_Vehicle_Reliability_of_key_requests {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "Wirkkette \"Speech Service\" - Reliability of key requests"
description = "CoCo-QM-Report_Draft"
#entity selector object
filter = ""
# Error Code 502 in HVD service will be excluded from the SLO.
# Therefore the metric server side errors was used for calculation.
metric_expression = <<EOT
(100)-(builtin:service.keyRequest.errors.server.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"hvd (/hvd) - hvd - prod~",
~"server (/htts) - htts - prod~"
)
)
,entityName.in(
~"/hvd/speech~",
~"/htts/transcribe~"
)"))))):splitBy("dt.entity.service_method"))
EOT
#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

@ -15,27 +15,18 @@ module Wirkkette__eRoute_Service__-_Reliability_of_key_requests {
#metric expression of the calculation as done in data explorer ui
metric_expression = <<EOT
(100)*((builtin:service.keyRequest.errors.fivexx.successCount:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~"
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~",
~"Netty on 0.0.0.0:8080 - eroute-adapter - prod~"
)
)
,entityName.in(
~"/api/eu/2.5/eroute/protobuf3~",
~"/api/eu/2.5/eroute-costs/protobuf3~"
)"))))):splitBy())
/
(builtin:service.keyRequest.count.total:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~"
)
)
,entityName.in(
~"/api/eu/2.5/eroute/protobuf3~",
~"/api/eu/2.5/eroute-costs/protobuf3~"
)"))))):splitBy()))
~"/api/eu/2.5/eroute/protobuf3~",
~"/api/eu/2.5/eroute-costs/protobuf3~",
~"/route/eroute~"
)")))):splitBy("dt.entity.service_method"))
EOT
#if not set (removed) it's defaulted to "-1d"

View File

@ -0,0 +1,42 @@
module Wirkkette_Alexa_Service_Vehicle_Reliability_of_key_requests {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "Wirkkette \"Alexa Service\" - Reliability of key requests"
description = "CoCo-QM-Report_Draft"
#entity selector object
filter = ""
# The metric fivexx.rate shouldn't be changed to server side error metric. Reason is there is a global rule to exclude 502 errors from server side errors.
# However 502 errors should be included in the Alexa endpoint.
metric_expression = <<EOT
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"hvd (/hvd) - hvd - prod~"
)
)
,entityName.in(
~"/hvd/keywords~"
)"))))):splitBy("dt.entity.service_method"))
EOT
#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

@ -0,0 +1,43 @@
module Wirkkette_Speech_Service_Vehicle_Reliability_of_key_requests {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "Wirkkette \"Speech Service\" - Reliability of key requests"
description = "CoCo-QM-Report_Draft"
#entity selector object
filter = ""
#metric expression of the calculation as done in data explorer ui
metric_expression = <<EOT
(100)-(builtin:service.keyRequest.errors.server.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"hvd (/hvd) - hvd - prod~",
~"server (/htts) - htts - prod~"
)
)
,entityName.in(
~"/hvd/speech~",
~"/htts/transcribe~"
)"))))):splitBy("dt.entity.service_method"))
EOT
#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

@ -15,27 +15,18 @@ module Wirkkette__eRoute_Service__-_Reliability_of_key_requests {
#metric expression of the calculation as done in data explorer ui
metric_expression = <<EOT
(100)*((builtin:service.keyRequest.errors.fivexx.successCount:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~"
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~",
~"Netty on 0.0.0.0:8080 - eroute-adapter - prod~"
)
)
,entityName.in(
~"/api/na/2.5/eroute-costs/protobuf3~",
~"/api/na/2.5/eroute/protobuf3~"
)"))))):splitBy())
/
(builtin:service.keyRequest.count.total:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~"
)
)
,entityName.in(
~"/api/na/2.5/eroute-costs/protobuf3~",
~"/api/na/2.5/eroute/protobuf3~"
)"))))):splitBy()))
,entityName.in(
~"/api/na/2.5/eroute-costs/protobuf3~",
~"/api/na/2.5/eroute/protobuf3~",
~"/route/eroute~"
)")))):splitBy("dt.entity.service_method"))
EOT