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 = </door-lock~", ~"POST /api/v2/presentation/remote-commands//door-unlock~", ~"POST /api/v2/presentation/remote-commands//climate-now~", ~"POST /api/v2/presentation/remote-commands//vehicle-finder~", ~"POST /api/v2/presentation/remote-commands//climate-timer~", ~"POST /api/v2/presentation/remote-commands//light-flash~", ~"POST /api/v3/presentation/remote-commands//horn-blow~", ~"POST /api/v2/presentation/remote-commands//horn-blow~", ~"POST /api/v2/presentation/remote-commands//charging-profile~", ~"POST /api/v2/presentation/remote-commands/eventPosition~", ~"GET /api/v1/presentation/remote-history/~", ~"GET /api/v2/presentation/remote-history/~", ~"POST /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//door-lock~", ~"POST /api/v2/presentation/remote-commands//door-unlock~", ~"POST /api/v2/presentation/remote-commands//climate-now~", ~"POST /api/v2/presentation/remote-commands//vehicle-finder~", ~"POST /api/v2/presentation/remote-commands//climate-timer~", ~"POST /api/v2/presentation/remote-commands//light-flash~", ~"POST /api/v3/presentation/remote-commands//horn-blow~", ~"POST /api/v2/presentation/remote-commands//horn-blow~", ~"POST /api/v2/presentation/remote-commands//charging-profile~", ~"POST /api/v2/presentation/remote-commands/eventPosition~", ~"GET /api/v1/presentation/remote-history/~", ~"GET /api/v2/presentation/remote-history/~", ~"POST /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 }