NA PROD: adjusted Templates & CN PROD: Templates added
parent
f7674b9579
commit
9623f4e4b4
|
|
@ -0,0 +1,75 @@
|
||||||
|
module TP_Mobile_DigitalKey {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_DigitalKey"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
metric_expression = <<-EOT
|
||||||
|
(100)*
|
||||||
|
((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"TrackApi - smc - PROD~",
|
||||||
|
~"digital-key-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /smc2-bl/track/v2/trackKey~",
|
||||||
|
~"POST /smc2-bl/track/v2/manageKey~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/password~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/pairing~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.keyRequest.count.server:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"TrackApi - smc - PROD~",
|
||||||
|
~"digital-key-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /smc2-bl/track/v2/trackKey~",
|
||||||
|
~"POST /smc2-bl/track/v2/manageKey~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/password~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/pairing~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_DigitalKey_metric" {
|
||||||
|
value = module.TP_Mobile_DigitalKey.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
module TP_Mobile_Login {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Login"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-user-composite-service - PROD~",
|
||||||
|
~"btc-connected-oauth-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/presentation/oauth/config~",
|
||||||
|
~"GET /api/v1/presentation/profile-tab~",
|
||||||
|
~"POST /api/v1/oauth/token/identifier~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-user-composite-service - PROD~",
|
||||||
|
~"btc-connected-oauth-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/presentation/oauth/config~",
|
||||||
|
~"GET /api/v1/presentation/profile-tab~",
|
||||||
|
~"POST /api/v1/oauth/token/identifier~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Login_metric" {
|
||||||
|
value = module.TP_Mobile_Login.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
module TP_Mobile_Mapping {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Mapping"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-user-composite-service - PROD~",
|
||||||
|
~"vehicle-mapping-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v2/presentation/users/validate~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary/map~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/validate-security-code~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/resend-security-code~",
|
||||||
|
~"DELETE /api/v1/vehicles/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-user-composite-service - PROD~",
|
||||||
|
~"vehicle-mapping-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v2/presentation/users/validate~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary/map~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/validate-security-code~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/resend-security-code~",
|
||||||
|
~"DELETE /api/v1/vehicles/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Mapping_metric" {
|
||||||
|
value = module.TP_Mobile_Mapping.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
module TP_Mobile_PersonalFavorites {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_PersonalFavorites"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-destination-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/favorites~",
|
||||||
|
~"POST /api/v3/favorites~",
|
||||||
|
~"GET /api/v2/favorites~",
|
||||||
|
~"GET /api/v3/favorites~",
|
||||||
|
~"GET /api/v1/favorites~",
|
||||||
|
~"PUT /api/v2/favorites/<favoriteId>~",
|
||||||
|
~"PUT /api/v3/favorites/<favoriteId>~",
|
||||||
|
~"PUT /api/v2/favorites/homework/1~",
|
||||||
|
~"PUT /api/v2/favorites/homework/2~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-destination-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/favorites~",
|
||||||
|
~"POST /api/v3/favorites~",
|
||||||
|
~"GET /api/v2/favorites~",
|
||||||
|
~"GET /api/v3/favorites~",
|
||||||
|
~"GET /api/v1/favorites~",
|
||||||
|
~"PUT /api/v2/favorites/<favoriteId>~",
|
||||||
|
~"PUT /api/v3/favorites/<favoriteId>~",
|
||||||
|
~"PUT /api/v2/favorites/homework/1~",
|
||||||
|
~"PUT /api/v2/favorites/homework/2~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
output "TP_Mobile_PersonalFavorites_metric" {
|
||||||
|
value = module.TP_Mobile_PersonalFavorites.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,81 @@
|
||||||
|
module TP_Mobile_Remote360 {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Remote360"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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(
|
||||||
|
~"remote-360-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /eadrax-r360/v1/events/$eventId~",
|
||||||
|
~"POST /eadrax-r360/v1/events/$eventId/cancel~",
|
||||||
|
~"POST /eadrax-r360/v1/event/execute~",
|
||||||
|
~"GET /eadrax-r360/v1/download/$eventId/$fileName~",
|
||||||
|
~"POST /eadrax-r360/v1/download/$eventId/$fileName/confirm~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/egomodelurl~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/key~",
|
||||||
|
~"GET /recordings/vehicle/$vin~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.keyRequest.count.server:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"remote-360-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /eadrax-r360/v1/events/$eventId~",
|
||||||
|
~"POST /eadrax-r360/v1/events/$eventId/cancel~",
|
||||||
|
~"POST /eadrax-r360/v1/event/execute~",
|
||||||
|
~"GET /eadrax-r360/v1/download/$eventId/$fileName~",
|
||||||
|
~"POST /eadrax-r360/v1/download/$eventId/$fileName/confirm~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/egomodelurl~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/key~",
|
||||||
|
~"GET /recordings/vehicle/$vin~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Remote360_metric" {
|
||||||
|
value = module.TP_Mobile_Remote360.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
module TP_Mobile_RemoteServices {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_RemoteServices"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-remote-commands-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/charging-profile~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventPosition~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventStatus~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-remote-commands-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/charging-profile~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventPosition~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventStatus~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_RemoteServices_metric" {
|
||||||
|
value = module.TP_Mobile_RemoteServices.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
module TP_Mobile_Send2VehicleLegacy {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Send2VehicleLegacy"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
metric_expression = <<-EOT
|
||||||
|
(100)*
|
||||||
|
((builtin:service.errors.server.successCount:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service",
|
||||||
|
entitySelector("type(service),
|
||||||
|
entityName(
|
||||||
|
~"LegacyPoiApi - msgsvc - prod~"
|
||||||
|
)
|
||||||
|
")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)):splitBy())/
|
||||||
|
(builtin:service.requestCount.total:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service",
|
||||||
|
entitySelector("type(service),
|
||||||
|
entityName(
|
||||||
|
~"LegacyPoiApi - msgsvc - prod~"
|
||||||
|
)
|
||||||
|
")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Send2VehicleLegacy_metric" {
|
||||||
|
value = module.TP_Mobile_Send2VehicleLegacy.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
module TP_Mobile_Send2VehicleMGU {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Send2VehicleMGU"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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(
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.keyRequest.count.server:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Send2VehicleMGU_metric" {
|
||||||
|
value = module.TP_Mobile_Send2VehicleMGU.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
module TP_Mobile_VehicleData {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_VehicleData"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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~",
|
||||||
|
~"VehicleService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/vehicles/<VIN>/state~",
|
||||||
|
~"GET /v1/vehicle/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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~",
|
||||||
|
~"VehicleService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/vehicles/<VIN>/state~",
|
||||||
|
~"GET /v1/vehicle/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
output "TP_Mobile_VehicleData_metric" {
|
||||||
|
value = module.TP_Mobile_VehicleData.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
module TP_Mobile_VehicleList {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_VehicleList"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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"
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_VehicleList_metric" {
|
||||||
|
value = module.TP_Mobile_VehicleList.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,75 @@
|
||||||
|
module TP_Mobile_DigitalKey {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_DigitalKey"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
metric_expression = <<-EOT
|
||||||
|
(100)*
|
||||||
|
((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"TrackApi - smc - PROD~",
|
||||||
|
~"digital-key-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /smc2-bl/track/v2/trackKey~",
|
||||||
|
~"POST /smc2-bl/track/v2/manageKey~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/password~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/pairing~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.keyRequest.count.server:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"TrackApi - smc - PROD~",
|
||||||
|
~"digital-key-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /smc2-bl/track/v2/trackKey~",
|
||||||
|
~"POST /smc2-bl/track/v2/manageKey~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/password~",
|
||||||
|
~"GET /api/v1/digitalkey/<VIN>/pairing~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_DigitalKey_metric" {
|
||||||
|
value = module.TP_Mobile_DigitalKey.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
module TP_Mobile_Login {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Login"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-user-composite-service - PROD~",
|
||||||
|
~"btc-connected-oauth-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/presentation/oauth/config~",
|
||||||
|
~"GET /api/v1/presentation/profile-tab~",
|
||||||
|
~"POST /api/v1/oauth/token/identifier~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-user-composite-service - PROD~",
|
||||||
|
~"btc-connected-oauth-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/presentation/oauth/config~",
|
||||||
|
~"GET /api/v1/presentation/profile-tab~",
|
||||||
|
~"POST /api/v1/oauth/token/identifier~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Login_metric" {
|
||||||
|
value = module.TP_Mobile_Login.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
module TP_Mobile_Mapping {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Mapping"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-user-composite-service - PROD~",
|
||||||
|
~"vehicle-mapping-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v2/presentation/users/validate~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary/map~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/validate-security-code~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/resend-security-code~",
|
||||||
|
~"DELETE /api/v1/vehicles/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-user-composite-service - PROD~",
|
||||||
|
~"vehicle-mapping-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v2/presentation/users/validate~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary~",
|
||||||
|
~"POST /api/v2/vehicles/<VIN>/primary/map~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/validate-security-code~",
|
||||||
|
~"POST /api/v1/vehicles/<VIN>/resend-security-code~",
|
||||||
|
~"DELETE /api/v1/vehicles/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Mapping_metric" {
|
||||||
|
value = module.TP_Mobile_Mapping.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
module TP_Mobile_PersonalFavorites {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_PersonalFavorites"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-destination-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/favorites~",
|
||||||
|
~"POST /api/v3/favorites/~",
|
||||||
|
~"GET /api/v2/favorites~",
|
||||||
|
~"GET /api/v3/favorites~",
|
||||||
|
~"PUT /api/v2/favorites/<favoriteId>~",
|
||||||
|
~"PUT /api/v3/favorites/<favoriteId>~",
|
||||||
|
~"DELETE /api/v2/favorites/<favoriteId>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-destination-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/favorites~",
|
||||||
|
~"POST /api/v3/favorites/~",
|
||||||
|
~"GET /api/v2/favorites~",
|
||||||
|
~"GET /api/v3/favorites~",
|
||||||
|
~"PUT /api/v2/favorites/<favoriteId>~",
|
||||||
|
~"PUT /api/v3/favorites/<favoriteId>~",
|
||||||
|
~"DELETE /api/v2/favorites/<favoriteId>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
output "TP_Mobile_PersonalFavorites_metric" {
|
||||||
|
value = module.TP_Mobile_PersonalFavorites.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,81 @@
|
||||||
|
module TP_Mobile_Remote360 {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Remote360"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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(
|
||||||
|
~"remote-360-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /eadrax-r360/v1/events/$eventId~",
|
||||||
|
~"POST /eadrax-r360/v1/events/$eventId/cancel~",
|
||||||
|
~"POST /eadrax-r360/v1/event/execute~",
|
||||||
|
~"GET /eadrax-r360/v1/download/$eventId/$fileName~",
|
||||||
|
~"POST /eadrax-r360/v1/download/$eventId/$fileName/confirm~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/egomodelurl~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/key~",
|
||||||
|
~"GET /recordings/vehicle/$vin~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.keyRequest.count.server:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"remote-360-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /eadrax-r360/v1/events/$eventId~",
|
||||||
|
~"POST /eadrax-r360/v1/events/$eventId/cancel~",
|
||||||
|
~"POST /eadrax-r360/v1/event/execute~",
|
||||||
|
~"GET /eadrax-r360/v1/download/$eventId/$fileName~",
|
||||||
|
~"POST /eadrax-r360/v1/download/$eventId/$fileName/confirm~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/egomodelurl~",
|
||||||
|
~"GET /eadrax-r360/v1/vehicle/$vin/key~",
|
||||||
|
~"GET /recordings/vehicle/$vin~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Remote360_metric" {
|
||||||
|
value = module.TP_Mobile_Remote360.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
module TP_Mobile_RemoteServices {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_RemoteServices"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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-remote-commands-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v3/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/charging-profile~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventPosition~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventStatus~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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-remote-commands-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v3/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/charging-profile~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventPosition~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"GET /api/v2/presentation/remote-commands/eventStatus~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_RemoteServices_metric" {
|
||||||
|
value = module.TP_Mobile_RemoteServices.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
module TP_Mobile_Send2VehicleLegacy {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Send2VehicleLegacy"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
metric_expression = <<-EOT
|
||||||
|
(100)*
|
||||||
|
((builtin:service.errors.server.successCount:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service",
|
||||||
|
entitySelector("type(service),
|
||||||
|
entityName(
|
||||||
|
~"LegacyPoiApi - msgsvc - prod~"
|
||||||
|
)
|
||||||
|
")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)):splitBy())/
|
||||||
|
(builtin:service.requestCount.total:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service",
|
||||||
|
entitySelector("type(service),
|
||||||
|
entityName(
|
||||||
|
~"LegacyPoiApi - msgsvc - prod~"
|
||||||
|
)
|
||||||
|
")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Send2VehicleLegacy_metric" {
|
||||||
|
value = module.TP_Mobile_Send2VehicleLegacy.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
module TP_Mobile_Send2VehicleMGU {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_Send2VehicleMGU"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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(
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.keyRequest.count.server:filter(
|
||||||
|
and(
|
||||||
|
or(
|
||||||
|
in(
|
||||||
|
"dt.entity.service_method",
|
||||||
|
entitySelector(
|
||||||
|
"type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_Send2VehicleMGU_metric" {
|
||||||
|
value = module.TP_Mobile_Send2VehicleMGU.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
module TP_Mobile_VehicleData {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_VehicleData"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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~",
|
||||||
|
~"VehicleService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/vehicles/<VIN>/state~",
|
||||||
|
~"GET /v1/vehicle/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):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~",
|
||||||
|
~"VehicleService - PROD~"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,entityName.in(
|
||||||
|
~"GET /api/v1/vehicles/<VIN>/state~",
|
||||||
|
~"GET /v1/vehicle/<VIN>~"
|
||||||
|
)")
|
||||||
|
)
|
||||||
|
))):splitBy()))
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
output "TP_Mobile_VehicleData_metric" {
|
||||||
|
value = module.TP_Mobile_VehicleData.metric_expression
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
module TP_Mobile_VehicleList {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
|
||||||
|
name = "TP_Mobile_VehicleList"
|
||||||
|
description = "2.0 SLO Mobile"
|
||||||
|
|
||||||
|
|
||||||
|
#entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
#metric expression of the calculation as done in data explorer ui
|
||||||
|
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"
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output "TP_Mobile_VehicleList_metric" {
|
||||||
|
value = module.TP_Mobile_VehicleList.metric_expression
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue