TP_Mobile_Wirkketten_Anpassung

renaming2
SLW\KASIKD 2023-02-23 12:19:54 +01:00
parent c21fb97ec6
commit d0bc0d1d9e
11 changed files with 335 additions and 374 deletions

View File

@ -12,51 +12,34 @@ module TP_Mobile_DigitalKey {
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<-EOT
(100)* (100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
((1)-(builtin:service.keyRequest.errors.fivexx.count:filter( fromRelationship.isServiceMethodOfService(
and( type(~"SERVICE~"),entityName.in(
or( ~"TrackApi - smc - PROD~",
in( ~"digital-key-composite-service - PROD~"
"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()) ,entityName.in(
/ ~"trackKey~",
(builtin:service.keyRequest.count.server:filter( ~"manageKey~",
and( ~"GET /api/v1/digitalkey/<VIN>/password~",
or( ~"GET /api/v1/digitalkey/<VIN>/pairing~"
in( )"))))):splitBy())
"dt.entity.service_method", /
entitySelector( (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
"type(service_method), fromRelationship.isServiceMethodOfService(
fromRelationship.isServiceMethodOfService( type(~"SERVICE~"),entityName.in(
type(~"SERVICE~"),entityName.in( ~"TrackApi - smc - PROD~",
~"TrackApi - smc - PROD~", ~"digital-key-composite-service - 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())) ,entityName.in(
EOT ~"trackKey~",
~"manageKey~",
~"GET /api/v1/digitalkey/<VIN>/password~",
~"GET /api/v1/digitalkey/<VIN>/pairing~"
)"))))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -11,60 +11,25 @@ module TP_Mobile_Login {
filter = "" filter = ""
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<EOT
(100)* (100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
((builtin:service.keyRequest.errors.server.successCount:filter(
and(
or(
in(
"dt.entity.service_method",
entitySelector(
"type(service_method),
fromRelationship.isServiceMethodOfService( fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in( type(~"SERVICE~"),entityName.in(
~"btc-user-composite-service - PROD~", ~"btc-user-composite-service - PROD~",
~"btc-cn-connected-oauth-service - PROD~" ~"btc-cn-connected-oauth-service - PROD~"
) )
) )
,entityName.in( ,entityName.in(
~"GET /api/v1/presentation/profile-account~", ~"GET /api/v1/presentation/profile-account~",
~"GET /api/v2/presentation/profile-account~", ~"GET /api/v2/presentation/profile-account~",
~"POST /api/v2/presentation/profile-account~", ~"POST /api/v2/presentation/profile-account~",
~"GET /api/v1/presentation/profile-tab/contacts~", ~"GET /api/v1/presentation/profile-tab/contacts~",
~"POST /api/v2/cop/login/pwd~", ~"/api/v2/cop/login/pwd~",
~"POST /api/v2/cop/login/sms~", ~"/api/v2/cop/login/sms~",
~"POST /api/v2/cop/sso~", ~"/api/v2/cop/sso~",
~"GET /api/v1/cop/logout~" ~"/api/v2/cop/logout~"
)") )"))))):splitBy())
) EOT
))):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-cn-connected-oauth-service - PROD~"
)
)
,entityName.in(
~"GET /api/v1/presentation/profile-account~",
~"GET /api/v2/presentation/profile-account~",
~"POST /api/v2/presentation/profile-account~",
~"GET /api/v1/presentation/profile-tab/contacts~",
~"POST /api/v2/cop/login/pwd~",
~"POST /api/v2/cop/login/sms~",
~"POST /api/v2/cop/sso~",
~"GET /api/v1/cop/logout~"
)")
)
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -11,48 +11,32 @@ module TP_Mobile_PersonalFavorites {
filter = "" filter = ""
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<EOT
(100)* (100)* ((builtin:service.keyRequest.errors.server.successCount:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
((builtin:service.keyRequest.errors.server.successCount:filter( fromRelationship.isServiceMethodOfService(
and( type(~"SERVICE~"),entityName.in(
or( ~"btc-destination-composite-service - PROD~"
in( )
"dt.entity.service_method",
entitySelector(
"type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"btc-destination-composite-service - PROD~"
)
)
,entityName.in(
~"GET /api/v3/favorites~",
~"POST /api/v3/favorites~",
~"PUT /api/v3/favorites/<favoriteId>~"
)")
) )
))):splitBy()) ,entityName.in(
/ ~"GET /api/v3/favorites/~",
(builtin:service.keyRequest.count.server:filter( ~"POST /api/v3/favorites/~",
and( ~"PUT /api/v3/favorites/<favoriteId>~"
or( )"))))):splitBy())
in( /
"dt.entity.service_method", (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
entitySelector( fromRelationship.isServiceMethodOfService(
"type(service_method), type(~"SERVICE~"),entityName.in(
fromRelationship.isServiceMethodOfService( ~"btc-destination-composite-service - PROD~"
type(~"SERVICE~"),entityName.in( )
~"btc-destination-composite-service - PROD~"
)
)
,entityName.in(
~"GET /api/v3/favorites~",
~"POST /api/v3/favorites~",
~"PUT /api/v3/favorites/<favoriteId>~"
)")
) )
))):splitBy())) ,entityName.in(
EOT ~"GET /api/v3/favorites/~",
~"POST /api/v3/favorites/~",
~"PUT /api/v3/favorites/<favoriteId>~"
)"))))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -0,0 +1,51 @@
module TP_Mobile_RSU {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "TP_Mobile_RSU"
description = "CoCo-QM-Report_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(
~"RemoteSoftwareUpgrade.WebApp - PROD~"
)
)
,entityName.in(
~"POST /v1/vehicle/rsustatus/finishInstallation~",
~"POST /v1/vehicle/rsustatus/preparationCompleted~",
~"POST /v1/vehicle/rsustatus/updateAvailable~"
)"))))):splitBy())
/
(builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"RemoteSoftwareUpgrade.WebApp - PROD~"
)
)
,entityName.in(
~"POST /v1/vehicle/rsustatus/finishInstallation~",
~"POST /v1/vehicle/rsustatus/preparationCompleted~",
~"POST /v1/vehicle/rsustatus/updateAvailable~"
)"))))):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
}

View File

@ -11,58 +11,25 @@ module TP_Mobile_Remote360 {
filter = "" filter = ""
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<EOT
(100)* (100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
((builtin:service.keyRequest.errors.server.successCount:filter( fromRelationship.isServiceMethodOfService(
and( type(~"SERVICE~"),entityName.in(
or( ~"remote-360-composite-service - PROD~"
in( )
"dt.entity.service_method", )
entitySelector( ,entityName.in(
"type(service_method), ~"GET /api/v1/events/[UUID]~",
fromRelationship.isServiceMethodOfService( ~"POST /api/v1/events/[UUID]/cancel~",
type(~"SERVICE~"),entityName.in( ~"POST /api/v1/event/execute~",
~"remote-360-composite-service - PROD~" ~"GET /api/v1/download/[UUID]/<fileName>~",
) ~"POST /api/v1/download/[UUID]/<fileName>/confirm~",
) ~"GET /api/v1/vehicle/<VIN>/egomodelurl~",
,entityName.in( ~"GET /api/v1/vehicle/<VIN>/key~",
~"GET /api/v1/events/[UUID]~", ~"GET /api/v1/recordings/vehicle/<VIN>~"
~"POST /api/v1/events/[UUID]/cancel~", )"))))):splitBy())
~"POST /api/v1/event/execute~",
~"GET /api/v1/download/[UUID]/<fileName>~", EOT
~"POST /api/v1/download/[UUID]/<fileName>/confirm~",
~"GET /api/v1/vehicle/<VIN>/egomodelurl~",
~"GET /api/v1/vehicle/<VIN>/key~",
~"GET /api/v1/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 /api/v1/events/[UUID]~",
~"POST /api/v1/events/[UUID]/cancel~",
~"POST /api/v1/event/execute~",
~"GET /api/v1/download/[UUID]/<fileName>~",
~"POST /api/v1/download/[UUID]/<fileName>/confirm~",
~"GET /api/v1/vehicle/<VIN>/egomodelurl~",
~"GET /api/v1/vehicle/<VIN>/key~",
~"GET /api/v1/recordings/vehicle/<VIN>~"
)")
)
))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -13,60 +13,66 @@ module TP_Mobile_RemoteServices {
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<-EOT
(100)* (100)*
((builtin:service.keyRequest.errors.server.successCount:filter( ((builtin:service.keyRequest.errors.server.successCount:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
and( fromRelationship.isServiceMethodOfService(
or( type(~"SERVICE~"),entityName.in(
in( ~"btc-vehicle-remote-commands-composite-service - PROD~"
"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/eventStatus~",
~"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~",
~"GET /api/v2/presentation/remote-history/<VIN>~",
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
~"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>/vehicle-finder~",
~"GET /api/v1/presentation/remote-history/<VIN>~"
)")
) )
))):splitBy()) )
,entityName.in(
~"POST /api/v2/presentation/remote-commands/eventStatus~",
~"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~",
~"GET /api/v2/presentation/remote-history/<VIN>~",
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
~"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>/vehicle-finder~",
~"GET /api/v1/presentation/remote-history/<VIN>~",
~"POST /api/v3/presentation/remote-commands/eventStatus~",
~"POST /api/v3/presentation/remote-commands/<VIN>/door-lock~",
~"POST /api/v3/presentation/remote-commands/<VIN>/door-unlock~",
~"POST /api/v3/presentation/remote-commands/<VIN>/climate-now~",
~"GET /api/v3/presentation/remote-history/<VIN>~",
~"POST /api/v3/presentation/remote-commands/<VIN>/horn-blow~",
~"POST /api/v3/presentation/remote-commands/<VIN>/climate-timer~",
~"POST /api/v3/presentation/remote-commands/<VIN>/light-flash~",
~"POST /api/v3/presentation/remote-commands/<VIN>/vehicle-finder~"
)")
)
)):splitBy())
/ /
(builtin:service.keyRequest.count.server:filter( (builtin:service.keyRequest.count.server:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
and( fromRelationship.isServiceMethodOfService(
or( type(~"SERVICE~"),entityName.in(
in( ~"btc-vehicle-remote-commands-composite-service - PROD~"
"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/eventStatus~",
~"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~",
~"GET /api/v2/presentation/remote-history/<VIN>~",
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
~"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>/vehicle-finder~",
~"GET /api/v1/presentation/remote-history/<VIN>~"
)")
) )
))):splitBy())) )
EOT ,entityName.in(
~"POST /api/v2/presentation/remote-commands/eventStatus~",
~"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~",
~"GET /api/v2/presentation/remote-history/<VIN>~",
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
~"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>/vehicle-finder~",
~"GET /api/v1/presentation/remote-history/<VIN>~",
~"POST /api/v3/presentation/remote-commands/eventStatus~",
~"POST /api/v3/presentation/remote-commands/<VIN>/door-lock~",
~"POST /api/v3/presentation/remote-commands/<VIN>/door-unlock~",
~"POST /api/v3/presentation/remote-commands/<VIN>/climate-now~",
~"GET /api/v3/presentation/remote-history/<VIN>~",
~"POST /api/v3/presentation/remote-commands/<VIN>/horn-blow~",
~"POST /api/v3/presentation/remote-commands/<VIN>/climate-timer~",
~"POST /api/v3/presentation/remote-commands/<VIN>/light-flash~",
~"POST /api/v3/presentation/remote-commands/<VIN>/vehicle-finder~"
)")
)
)):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -11,36 +11,20 @@ module TP_Mobile_Send2VehicleLegacy {
filter = "" filter = ""
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<EOT
(100)* (100)*((builtin:service.errors.server.successCount:filter(and(or(in("dt.entity.service",
((builtin:service.errors.server.successCount:filter( entitySelector("type(service),
and( entityName.in(
or( ~"LegacyPoiApi - msgsvc - prod~"
in( )
"dt.entity.service", "))))):splitBy())
entitySelector("type(service), /
entityName.in( (builtin:service.requestCount.total:filter(and(or(in("dt.entity.service",entitySelector("type(service),
~"LegacyPoiApi - msgsvc - prod~" entityName.in(
) ~"LegacyPoiApi - msgsvc - prod~"
") )
) "))))):splitBy()))
) EOT
)):splitBy())
/
(builtin:service.requestCount.total:filter(
and(
or(
in(
"dt.entity.service",
entitySelector("type(service),
entityName.in(
~"LegacyPoiApi - msgsvc - prod~"
)
")
)
)
)):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -11,46 +11,29 @@ module TP_Mobile_Send2VehicleMGU {
filter = "" filter = ""
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<EOT
(100)* (100)*((builtin:service.keyRequest.errors.server.successCount:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
((builtin:service.keyRequest.errors.server.successCount:filter( fromRelationship.isServiceMethodOfService(
and( type(~"SERVICE~"),entityName.in(
or( ~"TripService - PROD~"
in( )
"dt.entity.service_method",
entitySelector(
"type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"TripService - PROD~"
)
)
,entityName.in(
~"/v3/motorist/[UUID]/trips~",
~"/v2/motorist/[UUID]/trips~"
)")
) )
))):splitBy()) ,entityName.in(
/ ~"/v2/motorist/[UUID]/trips~",
(builtin:service.keyRequest.count.server:filter( ~"/v3/motorist/[UUID]/trips~"
and( )"))))):splitBy())
or( /
in( (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
"dt.entity.service_method", fromRelationship.isServiceMethodOfService(
entitySelector( type(~"SERVICE~"),entityName.in(
"type(service_method), ~"TripService - PROD~"
fromRelationship.isServiceMethodOfService( )
type(~"SERVICE~"),entityName.in(
~"TripService - PROD~"
)
)
,entityName.in(
~"/v3/motorist/[UUID]/trips~",
~"/v2/motorist/[UUID]/trips~"
)")
) )
))):splitBy())) ,entityName.in(
EOT ~"/v2/motorist/[UUID]/trips~",
~"/v3/motorist/[UUID]/trips~"
)"))))):splitBy()))
EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -11,48 +11,21 @@ module TP_Mobile_VehicleData {
filter = "" filter = ""
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<EOT
(100)* (100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
((builtin:service.keyRequest.errors.server.successCount:filter( fromRelationship.isServiceMethodOfService(
and( type(~"SERVICE~"),entityName.in(
or(
in(
"dt.entity.service_method",
entitySelector(
"type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"btc-vehicle-composite-service - PROD~", ~"btc-vehicle-composite-service - PROD~",
~"VehicleService - PROD~" ~"VehicleService - PROD~"
) )
) )
,entityName.in( ,entityName.in(
~"GET /api/v1/vehicles/<VIN>/state~", ~"GET /api/v1/vehicles/<VIN>/state~",
~"GET /v1/vehicle/<VIN>~" ~"GET /v1/vehicle/<VIN>~",
)") ~"GET /v2/vehicle/<VIN>~"
) )")))):splitBy())
))):splitBy())
/ EOT
(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" #if not set (removed) it's defaulted to "-1d"
timeframe = "-1d" timeframe = "-1d"

View File

@ -12,40 +12,27 @@ module TP_Mobile_VehicleList {
#metric expression of the calculation as done in data explorer ui #metric expression of the calculation as done in data explorer ui
metric_expression = <<-EOT metric_expression = <<-EOT
(100)* (100)*((builtin:service.keyRequest.errors.server.successCount:filter(and(or(in("dt.entity.service_method",
((builtin:service.keyRequest.errors.server.successCount:filter( entitySelector("type(service_method),
and( fromRelationship.isServiceMethodOfService(
or( type(~"SERVICE~"),entityName.in(
in( ~"btc-vehicle-composite-service - PROD~"
"dt.entity.service_method", )
entitySelector( )
"type(service_method), ,entityName.in(
fromRelationship.isServiceMethodOfService( ~"GET /api/v1/vehicles~"
type(~"SERVICE~"),entityName.in )"))))):splitBy())
(~"btc-vehicle-composite-service - PROD~") /
) (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",
,entityName.in( entitySelector("type(service_method),
~"GET /api/v1/vehicles~" fromRelationship.isServiceMethodOfService(
)") type(~"SERVICE~"),entityName.in(
) ~"btc-vehicle-composite-service - PROD~"
))):splitBy()) )
/ )
(builtin:service.keyRequest.count.server:filter( ,entityName.in(
and( ~"GET /api/v1/vehicles~"
or( )"))))):splitBy()))
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 EOT
#if not set (removed) it's defaulted to "-1d" #if not set (removed) it's defaulted to "-1d"

View File

@ -0,0 +1,78 @@
module TP_Vehicle_RSU {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "TP_Vehicle_RSU"
description = "CoCo-QM-Report_Vehicle"
#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(
~"UpdateRequestResource - rsu - prod~",
~"UpdateManifestResource - rsu - prod~",
~"SendReportResource - rsu - prod~",
~"MessageEndpointProxy - rsu - prod~"
)
)
,entityName.in(
~"askForUpdate~",
~"askForUpdateManifest~",
~"sendReport~",
~"Queue: BMW.RSU.ZFUS_MPG_OUTPUT~",
~"Queue: BMW.RSU.DEC_VEHICLE_REQUEST.ASBC_TO_RSA~",
~"Queue: BMW.RSU.UPDATEMANIFEST.ZFUS_TO_RSA~",
~"Queue: BMW.RSU.ENC_UPDATEMANIFEST.ASBC_TO_RSA~",
~"Queue: BMW.RSU.VEHICLE_TRIGGER~",
~"Queue: BMW.RSU.RSA_PIPELINE~",
~"Queue: BMW.RSU.RN.RNB_TO_RSA~",
~"Queue: BMW.RSA.VEHICLE_MESSAGES~"
)"))))):splitBy())
/
(builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
fromRelationship.isServiceMethodOfService(
type(~"SERVICE~"),entityName.in(
~"UpdateRequestResource - rsu - prod~",
~"UpdateManifestResource - rsu - prod~",
~"SendReportResource - rsu - prod~",
~"MessageEndpointProxy - rsu - prod~"
)
)
,entityName.in(
~"askForUpdate~",
~"askForUpdateManifest~",
~"sendReport~",
~"Queue: BMW.RSU.ZFUS_MPG_OUTPUT~",
~"Queue: BMW.RSU.DEC_VEHICLE_REQUEST.ASBC_TO_RSA~",
~"Queue: BMW.RSU.UPDATEMANIFEST.ZFUS_TO_RSA~",
~"Queue: BMW.RSU.ENC_UPDATEMANIFEST.ASBC_TO_RSA~",
~"Queue: BMW.RSU.VEHICLE_TRIGGER~",
~"Queue: BMW.RSU.RSA_PIPELINE~",
~"Queue: BMW.RSU.RN.RNB_TO_RSA~",
~"Queue: BMW.RSA.VEHICLE_MESSAGES~"
)"))))):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
}