From f0928aba88346acb01dd005f1277132b336b5a46 Mon Sep 17 00:00:00 2001 From: BMW CICD Tool Date: Fri, 10 Mar 2023 15:01:34 +0000 Subject: [PATCH] 230310-1501 --- CN_Prod/slo/TP_Mobile_DigitalKey.tf | 51 ++++++++++++++ CN_Prod/slo/TP_Mobile_Login.tf | 59 ++++++++++++++++ CN_Prod/slo/TP_Mobile_Mapping.tf | 55 +++++++++++++++ CN_Prod/slo/TP_Mobile_PersonalFavorites.tf | 47 +++++++++++++ CN_Prod/slo/TP_Mobile_Remote360.tf | 57 +++++++++++++++ CN_Prod/slo/TP_Mobile_RemoteServices.tf | 61 ++++++++++++++++ CN_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf | 34 +++++++++ CN_Prod/slo/TP_Mobile_Send2VehicleMGU.tf | 45 ++++++++++++ CN_Prod/slo/TP_Mobile_VehicleData.tf | 43 ++++++++++++ CN_Prod/slo/TP_Mobile_VehicleList.tf | 43 ++++++++++++ CN_Prod/slo/TP_Vehicle_FTS.tf | 34 +++++++++ CN_Prod/slo/TP_Vehicle_RTTI.tf | 35 ++++++++++ EMEA_Prod/slo/TP_Mobile_DigitalKey.tf | 51 ++++++++++++++ EMEA_Prod/slo/TP_Mobile_Login.tf | 37 ++++++++++ EMEA_Prod/slo/TP_Mobile_Mapping.tf | 67 ++++++++++++++++++ EMEA_Prod/slo/TP_Mobile_PersonalFavorites.tf | 59 ++++++++++++++++ EMEA_Prod/slo/TP_Mobile_Remote360.tf | 57 +++++++++++++++ EMEA_Prod/slo/TP_Mobile_RemoteServices.tf | 61 ++++++++++++++++ EMEA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf | 34 +++++++++ EMEA_Prod/slo/TP_Mobile_Send2VehicleMGU.tf | 45 ++++++++++++ EMEA_Prod/slo/TP_Mobile_VehicleData.tf | 47 +++++++++++++ EMEA_Prod/slo/TP_Mobile_VehicleList.tf | 45 ++++++++++++ EMEA_Prod/slo/TP_Vehicle_FTS.tf | 36 ++++++++++ EMEA_Prod/slo/TP_Vehicle_RTTI.tf | 35 ++++++++++ EMEA_Prod/slo/TP_Vehicle_eRoute.tf | 37 ++++++++++ NA_Prod/slo/TP_Mobile_DigitalKey.tf | 51 ++++++++++++++ NA_Prod/slo/TP_Mobile_Login.tf | 49 +++++++++++++ NA_Prod/slo/TP_Mobile_Mapping.tf | 69 +++++++++++++++++++ NA_Prod/slo/TP_Mobile_PersonalFavorites.tf | 55 +++++++++++++++ NA_Prod/slo/TP_Mobile_Remote360.tf | 57 +++++++++++++++ NA_Prod/slo/TP_Mobile_RemoteServices.tf | 67 ++++++++++++++++++ NA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf | 34 +++++++++ NA_Prod/slo/TP_Mobile_Send2VehicleMGU.tf | 45 ++++++++++++ NA_Prod/slo/TP_Mobile_VehicleData.tf | 45 ++++++++++++ NA_Prod/slo/TP_Mobile_VehicleList.tf | 45 ++++++++++++ NA_Prod/slo/TP_Vehicle_FTS.tf | 36 ++++++++++ NA_Prod/slo/TP_Vehicle_RTTI.tf | 45 ++++++++++++ NA_Prod/slo/TP_Vehicle_eRoute.tf | 37 ++++++++++ 38 files changed, 1810 insertions(+) create mode 100644 CN_Prod/slo/TP_Mobile_DigitalKey.tf create mode 100644 CN_Prod/slo/TP_Mobile_Login.tf create mode 100644 CN_Prod/slo/TP_Mobile_Mapping.tf create mode 100644 CN_Prod/slo/TP_Mobile_PersonalFavorites.tf create mode 100644 CN_Prod/slo/TP_Mobile_Remote360.tf create mode 100644 CN_Prod/slo/TP_Mobile_RemoteServices.tf create mode 100644 CN_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf create mode 100644 CN_Prod/slo/TP_Mobile_Send2VehicleMGU.tf create mode 100644 CN_Prod/slo/TP_Mobile_VehicleData.tf create mode 100644 CN_Prod/slo/TP_Mobile_VehicleList.tf create mode 100644 CN_Prod/slo/TP_Vehicle_FTS.tf create mode 100644 CN_Prod/slo/TP_Vehicle_RTTI.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_DigitalKey.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_Login.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_Mapping.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_PersonalFavorites.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_Remote360.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_RemoteServices.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_Send2VehicleMGU.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_VehicleData.tf create mode 100644 EMEA_Prod/slo/TP_Mobile_VehicleList.tf create mode 100644 EMEA_Prod/slo/TP_Vehicle_FTS.tf create mode 100644 EMEA_Prod/slo/TP_Vehicle_RTTI.tf create mode 100644 EMEA_Prod/slo/TP_Vehicle_eRoute.tf create mode 100644 NA_Prod/slo/TP_Mobile_DigitalKey.tf create mode 100644 NA_Prod/slo/TP_Mobile_Login.tf create mode 100644 NA_Prod/slo/TP_Mobile_Mapping.tf create mode 100644 NA_Prod/slo/TP_Mobile_PersonalFavorites.tf create mode 100644 NA_Prod/slo/TP_Mobile_Remote360.tf create mode 100644 NA_Prod/slo/TP_Mobile_RemoteServices.tf create mode 100644 NA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf create mode 100644 NA_Prod/slo/TP_Mobile_Send2VehicleMGU.tf create mode 100644 NA_Prod/slo/TP_Mobile_VehicleData.tf create mode 100644 NA_Prod/slo/TP_Mobile_VehicleList.tf create mode 100644 NA_Prod/slo/TP_Vehicle_FTS.tf create mode 100644 NA_Prod/slo/TP_Vehicle_RTTI.tf create mode 100644 NA_Prod/slo/TP_Vehicle_eRoute.tf diff --git a/CN_Prod/slo/TP_Mobile_DigitalKey.tf b/CN_Prod/slo/TP_Mobile_DigitalKey.tf new file mode 100644 index 0000000..5598d06 --- /dev/null +++ b/CN_Prod/slo/TP_Mobile_DigitalKey.tf @@ -0,0 +1,51 @@ +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 = </password~", + ~"GET /api/v1/digitalkey//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( + ~"trackKey~", + ~"manageKey~", + ~"GET /api/v1/digitalkey//password~", + ~"GET /api/v1/digitalkey//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 + +} \ No newline at end of file diff --git a/CN_Prod/slo/TP_Mobile_Login.tf b/CN_Prod/slo/TP_Mobile_Login.tf new file mode 100644 index 0000000..3559643 --- /dev/null +++ b/CN_Prod/slo/TP_Mobile_Login.tf @@ -0,0 +1,59 @@ +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 = </primary~", + ~"POST /api/v2/vehicles//primary/map~", + ~"POST /api/v1/vehicles//validate-security-code~", + ~"POST /api/v1/vehicles//resend-security-code~", + ~"DELETE /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-user-composite-service - PROD~", + ~"vehicle-mapping-composite-service - PROD~" + ) + ),entityName.in( + ~"GET /api/v2/presentation/users/validate~", + ~"POST /api/v2/vehicles//primary~", + ~"POST /api/v2/vehicles//primary/map~", + ~"POST /api/v1/vehicles//validate-security-code~", + ~"POST /api/v1/vehicles//resend-security-code~", + ~"DELETE /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 + +} \ No newline at end of file diff --git a/CN_Prod/slo/TP_Mobile_PersonalFavorites.tf b/CN_Prod/slo/TP_Mobile_PersonalFavorites.tf new file mode 100644 index 0000000..6fc088f --- /dev/null +++ b/CN_Prod/slo/TP_Mobile_PersonalFavorites.tf @@ -0,0 +1,47 @@ +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 = <~" + )"))))):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( + ~"GET /api/v3/favorites/~", + ~"POST /api/v3/favorites/~", + ~"PUT /api/v3/favorites/~" + )"))))):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 + +} \ No newline at end of file diff --git a/CN_Prod/slo/TP_Mobile_Remote360.tf b/CN_Prod/slo/TP_Mobile_Remote360.tf new file mode 100644 index 0000000..0d44337 --- /dev/null +++ b/CN_Prod/slo/TP_Mobile_Remote360.tf @@ -0,0 +1,57 @@ +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 = <~", + ~"POST /api/v1/download/[UUID]//confirm~", + ~"GET /api/v1/vehicle//egomodelurl~", + ~"GET /api/v1/vehicle//key~", + ~"GET /api/v1/recordings/vehicle/~" + )"))))):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]/~", + ~"POST /api/v1/download/[UUID]//confirm~", + ~"GET /api/v1/vehicle//egomodelurl~", + ~"GET /api/v1/vehicle//key~", + ~"GET /api/v1/recordings/vehicle/~" + )"))))):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 + +} \ No newline at end of file diff --git a/CN_Prod/slo/TP_Mobile_RemoteServices.tf b/CN_Prod/slo/TP_Mobile_RemoteServices.tf new file mode 100644 index 0000000..2559def --- /dev/null +++ b/CN_Prod/slo/TP_Mobile_RemoteServices.tf @@ -0,0 +1,61 @@ +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~", + ~"GET /api/v2/presentation/remote-history/~", + ~"POST /api/v2/presentation/remote-commands//horn-blow~", + ~"POST /api/v2/presentation/remote-commands//climate-timer~", + ~"POST /api/v2/presentation/remote-commands//light-flash~", + ~"POST /api/v2/presentation/remote-commands//vehicle-finder~", + ~"GET /api/v1/presentation/remote-history/~" + )"))))):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/eventStatus~", + ~"POST /api/v2/presentation/remote-commands//door-lock~", + ~"POST /api/v2/presentation/remote-commands//door-unlock~", + ~"POST /api/v2/presentation/remote-commands//climate-now~", + ~"GET /api/v2/presentation/remote-history/~", + ~"POST /api/v2/presentation/remote-commands//horn-blow~", + ~"POST /api/v2/presentation/remote-commands//climate-timer~", + ~"POST /api/v2/presentation/remote-commands//light-flash~", + ~"POST /api/v2/presentation/remote-commands//vehicle-finder~", + ~"GET /api/v1/presentation/remote-history/~" + )"))))):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 + +} \ No newline at end of file diff --git a/CN_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf b/CN_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf new file mode 100644 index 0000000..1b9a970 --- /dev/null +++ b/CN_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf @@ -0,0 +1,34 @@ +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 = </password~", + ~"GET /api/v1/digitalkey//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( + ~"trackKey~", + ~"manageKey~", + ~"GET /api/v1/digitalkey//password~", + ~"GET /api/v1/digitalkey//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 + +} \ No newline at end of file diff --git a/EMEA_Prod/slo/TP_Mobile_Login.tf b/EMEA_Prod/slo/TP_Mobile_Login.tf new file mode 100644 index 0000000..68ca933 --- /dev/null +++ b/EMEA_Prod/slo/TP_Mobile_Login.tf @@ -0,0 +1,37 @@ +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 = </primary~", + ~"POST /api/v2/vehicles//primary/map~", + ~"POST /api/v1/vehicles//validate-security-code~", + ~"POST /api/v1/vehicles//resend-security-code~", + ~"DELETE /api/v1/vehicles/~", + ~"POST /api/v3/mappings/create~", + ~"POST /api/v3/mappings/continue~", + ~"POST /api/v3/mappings/validate-security-code~", + ~"POST /api/v3/mappings/resend-security-code~", + ~"GET /api/v3/images/~", + ~"DELETE /api/v3/mappings~" + )"))))):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//primary~", + ~"POST /api/v2/vehicles//primary/map~", + ~"POST /api/v1/vehicles//validate-security-code~", + ~"POST /api/v1/vehicles//resend-security-code~", + ~"DELETE /api/v1/vehicles/~", + ~"POST /api/v3/mappings/create~", + ~"POST /api/v3/mappings/continue~", + ~"POST /api/v3/mappings/validate-security-code~", + ~"POST /api/v3/mappings/resend-security-code~", + ~"GET /api/v3/images/~", + ~"DELETE /api/v3/mappings~" + )"))))):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 + +} \ No newline at end of file diff --git a/EMEA_Prod/slo/TP_Mobile_PersonalFavorites.tf b/EMEA_Prod/slo/TP_Mobile_PersonalFavorites.tf new file mode 100644 index 0000000..ebe8215 --- /dev/null +++ b/EMEA_Prod/slo/TP_Mobile_PersonalFavorites.tf @@ -0,0 +1,59 @@ +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 = <~", + ~"PUT /api/v3/favorites/~", + ~"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/~", + ~"PUT /api/v3/favorites/~", + ~"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 + +} \ No newline at end of file diff --git a/EMEA_Prod/slo/TP_Mobile_Remote360.tf b/EMEA_Prod/slo/TP_Mobile_Remote360.tf new file mode 100644 index 0000000..0d44337 --- /dev/null +++ b/EMEA_Prod/slo/TP_Mobile_Remote360.tf @@ -0,0 +1,57 @@ +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 = <~", + ~"POST /api/v1/download/[UUID]//confirm~", + ~"GET /api/v1/vehicle//egomodelurl~", + ~"GET /api/v1/vehicle//key~", + ~"GET /api/v1/recordings/vehicle/~" + )"))))):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]/~", + ~"POST /api/v1/download/[UUID]//confirm~", + ~"GET /api/v1/vehicle//egomodelurl~", + ~"GET /api/v1/vehicle//key~", + ~"GET /api/v1/recordings/vehicle/~" + )"))))):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 + +} \ No newline at end of file diff --git a/EMEA_Prod/slo/TP_Mobile_RemoteServices.tf b/EMEA_Prod/slo/TP_Mobile_RemoteServices.tf new file mode 100644 index 0000000..ca33704 --- /dev/null +++ b/EMEA_Prod/slo/TP_Mobile_RemoteServices.tf @@ -0,0 +1,61 @@ +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/v2/presentation/remote-commands//charging-profile~", + ~"POST /api/v2/presentation/remote-commands/eventPosition~", + ~"GET /api/v1/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/v2/presentation/remote-commands//charging-profile~", + ~"POST /api/v2/presentation/remote-commands/eventPosition~", + ~"GET /api/v1/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 + +} \ No newline at end of file diff --git a/EMEA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf b/EMEA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf new file mode 100644 index 0000000..1b9a970 --- /dev/null +++ b/EMEA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf @@ -0,0 +1,34 @@ +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 = </state~", + ~"GET /v1/vehicle/~" + )"))))):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//state~", + ~"GET /v1/vehicle/~" + )"))))):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 + +} \ No newline at end of file diff --git a/EMEA_Prod/slo/TP_Mobile_VehicleList.tf b/EMEA_Prod/slo/TP_Mobile_VehicleList.tf new file mode 100644 index 0000000..e220403 --- /dev/null +++ b/EMEA_Prod/slo/TP_Mobile_VehicleList.tf @@ -0,0 +1,45 @@ +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 = </password~", + ~"GET /api/v1/digitalkey//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( + ~"trackKey~", + ~"manageKey~", + ~"GET /api/v1/digitalkey//password~", + ~"GET /api/v1/digitalkey//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 + +} \ No newline at end of file diff --git a/NA_Prod/slo/TP_Mobile_Login.tf b/NA_Prod/slo/TP_Mobile_Login.tf new file mode 100644 index 0000000..266953a --- /dev/null +++ b/NA_Prod/slo/TP_Mobile_Login.tf @@ -0,0 +1,49 @@ +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 = </primary~", + ~"POST /api/v2/vehicles//primary/map~", + ~"POST /api/v1/vehicles//validate-security-code~", + ~"POST /api/v1/vehicles//resend-security-code~", + ~"DELETE /api/v1/vehicles/~", + ~"POST /api/v3/mappings/create~", + ~"POST /api/v3/mappings/continue~", + ~"POST /api/v3/mappings/validate-security-code~", + ~"POST /api/v3/mappings/resend-security-code~", + ~"GET /api/v3/images/~", + ~"DELETE /api/v3/mappings~", + ~"POST /api/v2/vehicles//secondary~" + )"))))):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//primary~", + ~"POST /api/v2/vehicles//primary/map~", + ~"POST /api/v1/vehicles//validate-security-code~", + ~"POST /api/v1/vehicles//resend-security-code~", + ~"DELETE /api/v1/vehicles/~", + ~"POST /api/v3/mappings/create~", + ~"POST /api/v3/mappings/continue~", + ~"POST /api/v3/mappings/validate-security-code~", + ~"POST /api/v3/mappings/resend-security-code~", + ~"GET /api/v3/images/~", + ~"DELETE /api/v3/mappings~", + ~"POST /api/v2/vehicles//secondary~" + )"))))):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 + +} \ No newline at end of file diff --git a/NA_Prod/slo/TP_Mobile_PersonalFavorites.tf b/NA_Prod/slo/TP_Mobile_PersonalFavorites.tf new file mode 100644 index 0000000..8660e6a --- /dev/null +++ b/NA_Prod/slo/TP_Mobile_PersonalFavorites.tf @@ -0,0 +1,55 @@ +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 = <~", + ~"PUT /api/v3/favorites/~", + ~"DELETE /api/v2/favorites/~" + )"))))):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/~", + ~"PUT /api/v3/favorites/~", + ~"DELETE /api/v2/favorites/~" + )"))))):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 + +} \ No newline at end of file diff --git a/NA_Prod/slo/TP_Mobile_Remote360.tf b/NA_Prod/slo/TP_Mobile_Remote360.tf new file mode 100644 index 0000000..0d44337 --- /dev/null +++ b/NA_Prod/slo/TP_Mobile_Remote360.tf @@ -0,0 +1,57 @@ +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 = <~", + ~"POST /api/v1/download/[UUID]//confirm~", + ~"GET /api/v1/vehicle//egomodelurl~", + ~"GET /api/v1/vehicle//key~", + ~"GET /api/v1/recordings/vehicle/~" + )"))))):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]/~", + ~"POST /api/v1/download/[UUID]//confirm~", + ~"GET /api/v1/vehicle//egomodelurl~", + ~"GET /api/v1/vehicle//key~", + ~"GET /api/v1/recordings/vehicle/~" + )"))))):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 + +} \ No newline at end of file diff --git a/NA_Prod/slo/TP_Mobile_RemoteServices.tf b/NA_Prod/slo/TP_Mobile_RemoteServices.tf new file mode 100644 index 0000000..fdbde69 --- /dev/null +++ b/NA_Prod/slo/TP_Mobile_RemoteServices.tf @@ -0,0 +1,67 @@ +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 + +} \ No newline at end of file diff --git a/NA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf b/NA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf new file mode 100644 index 0000000..1b9a970 --- /dev/null +++ b/NA_Prod/slo/TP_Mobile_Send2VehicleLegacy.tf @@ -0,0 +1,34 @@ +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 = <