NA PROD: adjusted Templates & CN PROD: Templates added

M_sloFix
SLW\YELGIM 2022-04-14 12:23:32 +02:00
parent f7674b9579
commit 9623f4e4b4
20 changed files with 1484 additions and 0 deletions

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}