updated
parent
5877926f5f
commit
ca13d89d28
|
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
slo_id: "7"
|
||||||
|
slo_name: 'TP_Mobile_Send2VehicleMGU'
|
||||||
|
displayname: "Send to Vehicle (MGU)"
|
||||||
|
department: "DE-320"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/qFSqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "TripService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "/v2/motorist/[UUID]/trips"
|
||||||
|
- "/v3/motorist/[UUID]/trips"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "TripService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "/v2/motorist/[UUID]/trips"
|
||||||
|
- "/v3/motorist/[UUID]/trips"
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "TripService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "/v2/motorist/[UUID]/trips"
|
||||||
|
- "/v3/motorist/[UUID]/trips"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "TripService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "/v2/motorist/[UUID]/trips"
|
||||||
|
- "/v3/motorist/[UUID]/trips"
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "TripService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "/v3/motorist/[UUID]/trips"
|
||||||
|
- "/v2/motorist/[UUID]/trips"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "TripService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "/v3/motorist/[UUID]/trips"
|
||||||
|
- "/v2/motorist/[UUID]/trips"
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
slo_id: ""
|
slo_id: "14"
|
||||||
slo_name: 'Wirkkette "FTS Service" - Reliability of key requests'
|
slo_name: "TP_Vehicle_FTS"
|
||||||
displayname: "Free Text Seach"
|
displayname: "Free Text Seach"
|
||||||
department: "DE-322"
|
department: "DE-322"
|
||||||
description: "CoCo-QM-Report_Draft"
|
description: "CoCo-QM-Report_Draft"
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
slo_id: "WK23"
|
slo_id: "4"
|
||||||
slo_name: 'Wirkkette "RTTI-Service" - Reliability of key requests'
|
slo_name: "TP_Vehicle_RTTI"
|
||||||
displayname: "Real Time Traffic Info"
|
displayname: "Real Time Traffic Info"
|
||||||
department: "DE-322"
|
department: "DE-322"
|
||||||
description: "CoCo-QM-Report_Vehicle"
|
description: "CoCo-QM-Report_Vehicle"
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
slo_id: ""
|
slo_id: "13"
|
||||||
slo_name: 'Wirkkette "eRoute Service" - Reliability of key requests'
|
slo_name: "TP_Vehicle_eRoute"
|
||||||
displayname: "eRoute"
|
displayname: "eRoute"
|
||||||
department: "DE-322"
|
department: "DE-322"
|
||||||
description: "CoCo QM-Report_Vehicle"
|
description: "CoCo QM-Report_Vehicle"
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
---
|
||||||
|
slo_id: "1"
|
||||||
|
slo_name: "TP_Mobile_Login"
|
||||||
|
displayname: "Login"
|
||||||
|
department: "DE-442"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/R1OqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.fivexx.rate"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/presentation/oauth/config"
|
||||||
|
- "GET /api/v1/presentation/profile-tab"
|
||||||
|
- service: "btc-connected-oauth-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "POST /api/v1/oauth/token/identifier"
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/presentation/oauth/config"
|
||||||
|
- "GET /api/v1/presentation/profile-tab"
|
||||||
|
- service: "btc-connected-oauth-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "POST /api/v1/oauth/token/identifier"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/presentation/oauth/config"
|
||||||
|
- "GET /api/v1/presentation/profile-tab"
|
||||||
|
- service: "btc-connected-oauth-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "POST /api/v1/oauth/token/identifier"
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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"
|
||||||
|
- service: "btc-cn-connected-oauth-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "POST /api/v2/cop/login/pwd"
|
||||||
|
- "POST /api/v2/cop/login/sms"
|
||||||
|
- "POST /api/v2/cop/sso"
|
||||||
|
- "GET /api/v1/cop/logout"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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"
|
||||||
|
- service: "btc-cn-connected-oauth-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "POST /api/v2/cop/login/pwd"
|
||||||
|
- "POST /api/v2/cop/login/sms"
|
||||||
|
- "POST /api/v2/cop/sso"
|
||||||
|
- "GET /api/v1/cop/logout"
|
||||||
|
|
@ -0,0 +1,112 @@
|
||||||
|
---
|
||||||
|
slo_id: "2"
|
||||||
|
slo_name: "TP_Mobile_Mapping"
|
||||||
|
displayname: "Mapping"
|
||||||
|
department: "DE-443"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/WFOqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/presentation/users/validate"
|
||||||
|
- service: "vehicle-mapping-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- "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/<image>"
|
||||||
|
- "DELETE /api/v3/mappings"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/presentation/users/validate"
|
||||||
|
- service: "vehicle-mapping-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- "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/<image>"
|
||||||
|
- "DELETE /api/v3/mappings"
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/presentation/users/validate"
|
||||||
|
- service: "vehicle-mapping-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- "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/<image>"
|
||||||
|
- "DELETE /api/v3/mappings"
|
||||||
|
- "POST /api/v2/vehicles/<VIN>/secondary"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/presentation/users/validate"
|
||||||
|
- service: "vehicle-mapping-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- "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/<image>"
|
||||||
|
- "DELETE /api/v3/mappings"
|
||||||
|
- "POST /api/v2/vehicles/<VIN>/secondary"
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/presentation/users/validate"
|
||||||
|
- service: "vehicle-mapping-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-user-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/presentation/users/validate"
|
||||||
|
- service: "vehicle-mapping-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
---
|
||||||
|
slo_id: "3"
|
||||||
|
slo_name: "TP_Mobile_VehicleList"
|
||||||
|
displayname: "Vehicle List"
|
||||||
|
department: "DE-43"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/c1OqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/vehicles"
|
||||||
|
- "GET /api/v4/vehicles"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/vehicles"
|
||||||
|
- "GET /api/v4/vehicles"
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/vehicles"
|
||||||
|
- "GET /api/v4/vehicles"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/vehicles"
|
||||||
|
- "GET /api/v4/vehicles"
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/vehicles"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/vehicles"
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
---
|
||||||
|
slo_id: "6"
|
||||||
|
slo_name: "TP_Mobile_Remote360"
|
||||||
|
displayname: "Remote Camera"
|
||||||
|
department: "DE-723"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/aVSqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "remote-360-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "remote-360-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "remote-360-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "remote-360-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "remote-360-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "remote-360-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
|
@ -0,0 +1,104 @@
|
||||||
|
---
|
||||||
|
slo_id: "5"
|
||||||
|
slo_name: "TP_Mobile_RemoteServices"
|
||||||
|
displayname: "Remote Services"
|
||||||
|
department: "DE-723"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/dFSqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-remote-commands-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventPosition"
|
||||||
|
- "GET /api/v1/presentation/remote-history/<VIN>"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventStatus"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-remote-commands-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventPosition"
|
||||||
|
- "GET /api/v1/presentation/remote-history/<VIN>"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventStatus"
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-remote-commands-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventPosition"
|
||||||
|
- "GET /api/v1/presentation/remote-history/<VIN>"
|
||||||
|
- "GET /api/v2/presentation/remote-history/<VIN>"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventStatus"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-remote-commands-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventPosition"
|
||||||
|
- "GET /api/v1/presentation/remote-history/<VIN>"
|
||||||
|
- "GET /api/v2/presentation/remote-history/<VIN>"
|
||||||
|
- "POST /api/v2/presentation/remote-commands/eventStatus"
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-remote-commands-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-remote-commands-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "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>"
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
slo_id: "8"
|
||||||
|
slo_name: "TP_Mobile_Send2VehicleLegacy"
|
||||||
|
displayname: "Send to Vehicle (Legacy)"
|
||||||
|
department: "DE-723"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/z1SqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "LegacyPoiApi - msgsvc - prod"
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- metric: "builtin:service.requestCount.total"
|
||||||
|
filter:
|
||||||
|
- service: "LegacyPoiApi - msgsvc - prod"
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "LegacyPoiApi - msgsvc - prod"
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- metric: "builtin:service.requestCount.total"
|
||||||
|
filter:
|
||||||
|
- service: "LegacyPoiApi - msgsvc - prod"
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "LegacyPoiApi - msgsvc - prod"
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- metric: "builtin:service.requestCount.total"
|
||||||
|
filter:
|
||||||
|
- service: "LegacyPoiApi - msgsvc - prod"
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
---
|
||||||
|
slo_id: "4"
|
||||||
|
slo_name: "TP_Mobile_VehicleData"
|
||||||
|
displayname: "Vehicle Data"
|
||||||
|
department: "DE-733"
|
||||||
|
description: "2.0 SLO Mobile"
|
||||||
|
doc_url: "https://atc.bmwgroup.net/confluence/x/LFOqdQ"
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/vehicles/<VIN>/state"
|
||||||
|
- service: "VehicleService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /v1/vehicle/<VIN>"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/vehicles/<VIN>/state"
|
||||||
|
- service: "VehicleService - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /v1/vehicle/<VIN>"
|
||||||
|
NA-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/vehicles"
|
||||||
|
- "GET /api/v4/vehicles"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v2/vehicles"
|
||||||
|
- "GET /api/v4/vehicles"
|
||||||
|
CN-Prod:
|
||||||
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/vehicles"
|
||||||
|
- metric: "builtin:service.keyRequest.count.server"
|
||||||
|
filter:
|
||||||
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
|
keyRequests:
|
||||||
|
- "GET /api/v1/vehicles"
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
slo_id: ""
|
slo_id: "14"
|
||||||
slo_name: 'Wirkkette "FTS Service" - Reliability of key requests'
|
slo_name: "TP_Vehicle_FTS"
|
||||||
displayname: "Free Text Seach"
|
displayname: "Free Text Search"
|
||||||
department: "DE-322"
|
department: "DE-322"
|
||||||
description: "CoCo-QM-Report_Draft"
|
description: "CoCo-QM-Report_Draft"
|
||||||
doc_url: "https://atc.bmwgroup.net/confluence/x/YCOqdQ"
|
doc_url: "https://atc.bmwgroup.net/confluence/x/YCOqdQ"
|
||||||
|
|
@ -10,15 +10,7 @@ slo_definition:
|
||||||
warning: 99 #traffic light orange
|
warning: 99 #traffic light orange
|
||||||
failure: 98 #traffic light red
|
failure: 98 #traffic light red
|
||||||
EMEA-Prod:
|
EMEA-Prod:
|
||||||
- metric: "builtin:service.keyRequest.errors.fivexx.count"
|
- metric: "builtin:service.keyRequest.errors.fivexx.rate"
|
||||||
filter:
|
|
||||||
- service: "SimplePOIs"
|
|
||||||
keyRequests:
|
|
||||||
- "getSimplePOIs (FTS Calls)"
|
|
||||||
- service: "POIs"
|
|
||||||
keyRequests:
|
|
||||||
- "getPOIs (FTS Calls)"
|
|
||||||
- metric: "builtin:service.keyRequest.count.server"
|
|
||||||
filter:
|
filter:
|
||||||
- service: "SimplePOIs"
|
- service: "SimplePOIs"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
163
convert.py
163
convert.py
|
|
@ -1,3 +1,4 @@
|
||||||
|
import glob
|
||||||
import sys
|
import sys
|
||||||
import itertools
|
import itertools
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
@ -5,11 +6,7 @@ import re
|
||||||
import yaml
|
import yaml
|
||||||
import os
|
import os
|
||||||
from nested_lookup import nested_lookup
|
from nested_lookup import nested_lookup
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
# pre-initialization get current working directory
|
|
||||||
cwd = os.getcwd()
|
|
||||||
|
|
||||||
|
|
||||||
# defines
|
# defines
|
||||||
METRIC_KEYS = 4
|
METRIC_KEYS = 4
|
||||||
|
|
@ -28,27 +25,25 @@ TEMPLATE_FILES = {
|
||||||
"calc:service.vehicleservice_oes_fivexx_count",
|
"calc:service.vehicleservice_oes_fivexx_count",
|
||||||
"calc:service.vehicleservice_oes_request_count_total"]
|
"calc:service.vehicleservice_oes_request_count_total"]
|
||||||
}
|
}
|
||||||
SLO_FILE_BASENAME = os.path.basename("TP_FTS-example.yaml")
|
FOLDERS = {"My Journey":"DE-3",
|
||||||
|
"Connected Vehicle Platforms":"DE-7",
|
||||||
|
"My Life":"DE-4",
|
||||||
# define entries
|
"China Services":"EC-DE"}
|
||||||
slo_id = None
|
|
||||||
slo_name = None
|
|
||||||
module_name = None
|
|
||||||
displayname = None
|
|
||||||
department = None
|
|
||||||
description = None
|
|
||||||
doc_url = None
|
|
||||||
slo_definition_tresholds_warning = None
|
|
||||||
slo_definition_tresholds_failure = None
|
|
||||||
environments = []
|
|
||||||
metrics = {}
|
|
||||||
services = {}
|
|
||||||
keyRequests = {}
|
|
||||||
|
|
||||||
|
|
||||||
# methods
|
# methods
|
||||||
def homogenize_metric_list(metrics):
|
def homogenize_keyRequests(keyRequests):
|
||||||
|
for metric in metrics:
|
||||||
|
if len(metrics) < METRIC_KEYS:
|
||||||
|
metrics.append('')
|
||||||
|
return metrics
|
||||||
|
|
||||||
|
def homogenize_services(services):
|
||||||
|
for metric in metrics:
|
||||||
|
if len(metrics) < METRIC_KEYS:
|
||||||
|
metrics.append('')
|
||||||
|
return metrics
|
||||||
|
|
||||||
|
def homogenize_metrics(metrics):
|
||||||
for metric in metrics:
|
for metric in metrics:
|
||||||
if len(metrics) < METRIC_KEYS:
|
if len(metrics) < METRIC_KEYS:
|
||||||
metrics.append('')
|
metrics.append('')
|
||||||
|
|
@ -59,22 +54,37 @@ def template_logic(metrics,TEMPLATE_FILES):
|
||||||
for template,metric in TEMPLATE_FILES.items():
|
for template,metric in TEMPLATE_FILES.items():
|
||||||
if set(metrics) == set(metric):
|
if set(metrics) == set(metric):
|
||||||
return template
|
return template
|
||||||
print("Problem occured: Exiting program...")
|
print("Problem occured while matching metric: Exiting program...")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
# main
|
# main
|
||||||
def main():
|
def main(configFile):
|
||||||
|
slo_id = None
|
||||||
|
slo_name = None
|
||||||
|
module_name = None
|
||||||
|
displayname = None
|
||||||
|
department = None
|
||||||
|
description = None
|
||||||
|
doc_url = None
|
||||||
|
slo_definition_tresholds_warning = None
|
||||||
|
slo_definition_tresholds_failure = None
|
||||||
|
metrics = {}
|
||||||
|
services = {}
|
||||||
|
keyRequests = {}
|
||||||
|
environments = {}
|
||||||
|
|
||||||
# read yaml file
|
try:
|
||||||
with open(os.path.join(SLOS_FOLDER_BASENAME,SLO_FILE_BASENAME)) as f:
|
# read yaml file
|
||||||
slos = list(yaml.safe_load_all(f))
|
with open(configFile) as cF:
|
||||||
|
slos = list(yaml.safe_load_all(cF))
|
||||||
|
except EnvironmentError:
|
||||||
|
print('Corrupt yaml file:' + str(configFile))
|
||||||
|
|
||||||
# fill values
|
# fill values
|
||||||
for i,slo in enumerate(slos):
|
for slo in slos:
|
||||||
slo_id = slo["slo_id"]
|
slo_id = slo["slo_id"]
|
||||||
slo_name = slo["slo_name"]
|
slo_name = slo["slo_name"]
|
||||||
module_name = re.sub(r'[^a-zA-Z ]+', '', slo_name).replace(' ', '_').replace('__', '_')
|
module_name = slo_name
|
||||||
displayname = slo["displayname"]
|
displayname = slo["displayname"]
|
||||||
description = slo["description"]
|
description = slo["description"]
|
||||||
department = slo["department"]
|
department = slo["department"]
|
||||||
|
|
@ -82,40 +92,77 @@ def main():
|
||||||
slo_definition_tresholds_warning = slo["slo_definition"]["tresholds"]["warning"]
|
slo_definition_tresholds_warning = slo["slo_definition"]["tresholds"]["warning"]
|
||||||
slo_definition_tresholds_failure = slo["slo_definition"]["tresholds"]["failure"]
|
slo_definition_tresholds_failure = slo["slo_definition"]["tresholds"]["failure"]
|
||||||
slo["slo_definition"].pop("tresholds")
|
slo["slo_definition"].pop("tresholds")
|
||||||
for j,environment in enumerate(slo["slo_definition"]):
|
|
||||||
environments.append(environment)
|
for env in slo["slo_definition"]:
|
||||||
metrics[environment] = nested_lookup('metric',slo["slo_definition"][environment])
|
if "EMEA-Prod" in slo["slo_definition"]:
|
||||||
services[environment] = '~",\n\t\t\t\t~"'.join(nested_lookup('service',slo["slo_definition"][environment]))
|
environments["EMEA-Prod"] = slo["slo_definition"][env]
|
||||||
keyRequests[environment] = nested_lookup('keyRequests',slo["slo_definition"][environment])
|
if "NA-Prod" in slo["slo_definition"]:
|
||||||
keyRequests[environment] = '~",\n\t\t\t\t~"'.join(itertools.chain.from_iterable(keyRequests[environment]))
|
environments["NA-Prod"] = slo["slo_definition"][env]
|
||||||
environment = None
|
if "CN-Prod" in slo["slo_definition"]:
|
||||||
|
environments["CN-Prod"] = slo["slo_definition"][env]
|
||||||
|
|
||||||
|
# for environment in environments:
|
||||||
|
# metrics[environment] = nested_lookup('metric',slo["slo_definition"][environment])
|
||||||
|
|
||||||
|
# for m,metric in enumerate(metrics):
|
||||||
|
# services[metric] = '~",\n\t\t\t\t~"'.join(nested_lookup('service',slo["slo_definition"][environment][m]["filter"]))
|
||||||
|
|
||||||
|
# keyRequests[environment] = nested_lookup('keyRequests',slo["slo_definition"][environment])
|
||||||
|
# keyRequests[environment] = '~",\n\t\t\t\t~"'.join(itertools.chain.from_iterable(keyRequests[environment]))
|
||||||
|
|
||||||
|
|
||||||
# read template file
|
# read template file
|
||||||
jinja_environment = jinja2.Environment(loader=jinja2.FileSystemLoader(TEMPLATE_FOLDER_BASENAME),
|
jinja_environment = jinja2.Environment(loader=jinja2.FileSystemLoader(TEMPLATE_FOLDER_BASENAME),
|
||||||
trim_blocks=True,
|
trim_blocks=True,
|
||||||
lstrip_blocks=True)
|
lstrip_blocks=True)
|
||||||
|
|
||||||
# create template file
|
# generate terraform file
|
||||||
for e,environment in enumerate(environments):
|
for environment in environments:
|
||||||
folder_path = os.path.join(cwd,OUTPUT_FOLDER_BASENAME,environment.replace('-','_'),"slo")
|
folder_path = os.path.join(cwd,OUTPUT_FOLDER_BASENAME,environment.replace('-','_'),"slo")
|
||||||
if not os.path.exists(folder_path):
|
if not os.path.exists(folder_path):
|
||||||
os.makedirs(folder_path)
|
os.makedirs(folder_path)
|
||||||
with open(os.path.join(folder_path,module_name+".yaml"),"w+") as file:
|
with open(os.path.join(folder_path,module_name+".tf"),"w+") as file:
|
||||||
t = template_logic(metrics[environment],TEMPLATE_FILES)
|
t = template_logic(nested_lookup('metric',environments[environment]),TEMPLATE_FILES)
|
||||||
m = homogenize_metric_list(metrics[environment])
|
m = homogenize_metrics(nested_lookup('metric',environments[environment]))
|
||||||
|
s = homogenize_services(nested_lookup('service',environments[environment]))
|
||||||
|
k = homogenize_keyRequests(nested_lookup('keyRequests',environments[environment]))
|
||||||
jinja_template = jinja_environment.get_template(t)
|
jinja_template = jinja_environment.get_template(t)
|
||||||
file.write(jinja_template.render(module=module_name,
|
file.write(jinja_template.render(module=module_name,
|
||||||
slo_name=slo_name,
|
slo_name=slo_name,
|
||||||
metric=m[0],
|
metric=m[0],metricA=m[0],metricB=m[1],metricC=m[2],metricD=m[3],
|
||||||
metricA=m[0],
|
description=description,
|
||||||
metricB=m[1],
|
|
||||||
metricC=m[2],
|
services=s[0],servicesA=s[0],servicesB=s[1],
|
||||||
metricD=m[3],
|
keyRequests=k[0],keyRequestsA=k[0],keyRequestsB=k[1],
|
||||||
description=description,
|
|
||||||
service=services[environment],
|
target=slo_definition_tresholds_failure,
|
||||||
keyRequest=keyRequests[environment],
|
warning=slo_definition_tresholds_warning))
|
||||||
target=slo_definition_tresholds_failure,
|
|
||||||
warning=slo_definition_tresholds_warning))
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
|
||||||
|
# pre-initialization get current working directory
|
||||||
|
cwd = os.getcwd()
|
||||||
|
|
||||||
|
print(sys.argv)
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print(".\convert.py <FOLDER>")
|
||||||
|
print("Example: .\convert.py DE-3")
|
||||||
|
print("Example: .\convert.py DE-3,DE-4,...")
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
# init folder
|
||||||
|
for folderName,businessLine in FOLDERS.items():
|
||||||
|
businessLinePath = os.path.join(cwd,os.path.basename(businessLine))
|
||||||
|
if not os.path.exists(businessLinePath):
|
||||||
|
os.makedirs(businessLinePath)
|
||||||
|
|
||||||
|
# for each folder
|
||||||
|
for arg in [sys.argv[1]]:
|
||||||
|
# return path of slo config files
|
||||||
|
configFiles = glob.glob(pathname=os.path.join(cwd,os.path.basename(arg))+'\\*.yaml',
|
||||||
|
# root_dir=os.path.join(cwd,os.path.basename(arg)),
|
||||||
|
recursive=True)
|
||||||
|
|
||||||
|
# for each slo config file in folder
|
||||||
|
for configFile in configFiles:
|
||||||
|
main(configFile)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
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~",
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"/v3/motorist/[UUID]/trips~",
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~",
|
||||||
|
~"/v2/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~",
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"/v3/motorist/[UUID]/trips~",
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~",
|
||||||
|
~"/v2/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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
module TP_Vehicle_FTS {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
name = "TP_Vehicle_FTS"
|
||||||
|
|
||||||
|
description = "CoCo-QM-Report_Draft"
|
||||||
|
|
||||||
|
# entity selector object
|
||||||
|
filter = ""
|
||||||
|
|
||||||
|
# metric expression of the calculation as done in data explorer ui
|
||||||
|
metric_expression = <<EOT
|
||||||
|
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"SimplePOIs~",
|
||||||
|
~"POIs~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"getSimplePOIs (FTS Calls)~",
|
||||||
|
~"getPOIs (FTS Calls)~"
|
||||||
|
)"))))):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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
module TP_Vehicle_eRoute {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
name = "TP_Vehicle_eRoute"
|
||||||
|
|
||||||
|
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.fivexx.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~",
|
||||||
|
~"Netty on 0.0.0.0:8080 - eroute-adapter - prod~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"/api/eu/2.5/eroute/protobuf3~",
|
||||||
|
~"/api/eu/2.5/eroute-costs/protobuf3~",
|
||||||
|
~"/route/eroute~"
|
||||||
|
)"))))):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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
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~",
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~",
|
||||||
|
~"/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~",
|
||||||
|
~"TripService - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"/v2/motorist/[UUID]/trips~",
|
||||||
|
~"/v3/motorist/[UUID]/trips~",
|
||||||
|
~"/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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
module TP_Vehicle_eRoute {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
name = "TP_Vehicle_eRoute"
|
||||||
|
|
||||||
|
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.fivexx.rate:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
|
fromRelationship.isServiceMethodOfService(
|
||||||
|
type(~"SERVICE~"),entityName.in(
|
||||||
|
~"Netty on 0.0.0.0:8080 - eroute-ext - prod~",
|
||||||
|
~"Netty on 0.0.0.0:8080 - eroute-adapter - prod~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"/api/eu/2.5/eroute/protobuf3~",
|
||||||
|
~"/api/eu/2.5/eroute-costs/protobuf3~",
|
||||||
|
~"/route/eroute~"
|
||||||
|
)"))))):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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
slo_id: ""
|
|
||||||
slo_name: 'Wirkkette "FTS Service" - Reliability of key requests'
|
|
||||||
displayname: "Free Text Seach"
|
|
||||||
department: "DE-322"
|
|
||||||
description: "CoCo-QM-Report_Draft"
|
|
||||||
doc_url: "https://atc.bmwgroup.net/confluence/x/YCOqdQ"
|
|
||||||
slo_definition:
|
|
||||||
tresholds:
|
|
||||||
warning: 99 #traffic light orange
|
|
||||||
failure: 98 #traffic light red
|
|
||||||
EMEA-Prod:
|
|
||||||
- metric: "emea_m1"
|
|
||||||
filter:
|
|
||||||
- service: "emea_m1s1"
|
|
||||||
keyRequests:
|
|
||||||
- "emea_m1s1k1"
|
|
||||||
- service: "emea_m1s2"
|
|
||||||
keyRequests:
|
|
||||||
- "emea_m1s2k1"
|
|
||||||
- metric: "emea_m2"
|
|
||||||
filter:
|
|
||||||
- service: "emea_m2s1"
|
|
||||||
keyRequests:
|
|
||||||
- "emea_m2s1k1"
|
|
||||||
- "emea_m2s1k2"
|
|
||||||
- service: "emea_m2s2"
|
|
||||||
keyRequests:
|
|
||||||
- "emea_m2s2k1"
|
|
||||||
- "emea_m2s2k2"
|
|
||||||
- "emea_m2s2k3"
|
|
||||||
NA-Prod:
|
|
||||||
- metric: "na_m1"
|
|
||||||
filter:
|
|
||||||
- service: "na_m1s1"
|
|
||||||
keyRequests:
|
|
||||||
- "na_m1s1k1"
|
|
||||||
- "na_m1s1k2"
|
|
||||||
- "na_m1s1k3"
|
|
||||||
- service: "na_m1s2"
|
|
||||||
keyRequests:
|
|
||||||
- "na_m1s2k1"
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
---
|
|
||||||
slo_id: ""
|
|
||||||
slo_name: 'Wirkkette "Send to Car (MGU)" - Reliability of key requests'
|
|
||||||
displayname: "Send to Vehicle (MGU)"
|
|
||||||
department: "DE-320"
|
|
||||||
description: "CoCo-QM-Report_Mobile"
|
|
||||||
doc_url: "https://atc.bmwgroup.net/confluence/x/qFSqdQ"
|
|
||||||
slo_definition:
|
|
||||||
tresholds:
|
|
||||||
warning: 99 #traffic light orange
|
|
||||||
failure: 98 #traffic light red
|
|
||||||
EMEA-Prod:
|
|
||||||
- metric: "builtin:service.errors.fivexx.successCount"
|
|
||||||
filter:
|
|
||||||
- service: "TripService - PROD"
|
|
||||||
keyRequests:
|
|
||||||
- "/v2/motorist/[UUID]/trips"
|
|
||||||
- "/v3/motorist/[UUID]/trips"
|
|
||||||
NA-Prod:
|
|
||||||
- metric: "builtin:service.errors.fivexx.successCount"
|
|
||||||
filter:
|
|
||||||
- service: "TripService - PROD"
|
|
||||||
keyRequests:
|
|
||||||
- "/v2/motorist/[UUID]/trips"
|
|
||||||
- "/v3/motorist/[UUID]/trips"
|
|
||||||
CN-Prod:
|
|
||||||
- metric: "builtin:service.errors.fivexx.successCount"
|
|
||||||
filter:
|
|
||||||
- service: "TripService - PROD"
|
|
||||||
keyRequests:
|
|
||||||
- "/v2/motorist/[UUID]/trips"
|
|
||||||
- "/v3/motorist/[UUID]/trips"
|
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
---
|
||||||
|
slo_id: ""
|
||||||
|
slo_name: ''
|
||||||
|
displayname: ""
|
||||||
|
department: ""
|
||||||
|
description: ""
|
||||||
|
doc_url: ""
|
||||||
|
slo_definition:
|
||||||
|
tresholds:
|
||||||
|
warning: 99 #traffic light orange
|
||||||
|
failure: 98 #traffic light red
|
||||||
|
EMEA-Prod:
|
||||||
|
- metric: ""
|
||||||
|
filter:
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- ""
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- metric: ""
|
||||||
|
filter:
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- ""
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
NA-Prod:
|
||||||
|
- metric: ""
|
||||||
|
filter:
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- ""
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- metric: ""
|
||||||
|
filter:
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- ""
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
CN-Prod:
|
||||||
|
- metric: ""
|
||||||
|
filter:
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- ""
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- metric: ""
|
||||||
|
filter:
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
- ""
|
||||||
|
- service: ""
|
||||||
|
keyRequests:
|
||||||
|
- ""
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
module Wirkkette_FTS_Service_Reliability_of_key_requests {
|
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
|
||||||
|
|
||||||
name = "Wirkkette \"FTS Service\" - Reliability of key requests"
|
|
||||||
|
|
||||||
description = "CoCo-QM-Report_Draft"
|
|
||||||
|
|
||||||
#entity selector object
|
|
||||||
filter = ""
|
|
||||||
|
|
||||||
#metric expression of the calculation as done in data explorer ui
|
|
||||||
metric_expression = <<EOT
|
|
||||||
(100)-(builtin:service.keyRequest.errors.fivexx.rate:filter(and(in("dt.entity.service_method",entitySelector("type(service_method),
|
|
||||||
fromRelationship.isServiceMethodOfService(
|
|
||||||
type(~"SERVICE~"),entityName.in(
|
|
||||||
~"POIs~"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
,entityName.in(
|
|
||||||
~"getPOIs (FTS Calls)~"
|
|
||||||
)")))):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
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
module Wirkkette__DigitalKey__SMACC___-_Reliability_of_key_requests {
|
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
|
||||||
|
|
||||||
|
|
||||||
name = "Wirkkette \"DigitalKey (SMACC)\" - Reliability of key requests"
|
|
||||||
|
|
||||||
description = "CoCo-QM-Report_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(
|
|
||||||
~"trackKey~",
|
|
||||||
~"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(
|
|
||||||
~"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"
|
|
||||||
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
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
module Wirkkette__Online_Entertainment__-_Reliability_of_key_requests {
|
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
|
||||||
|
|
||||||
|
|
||||||
name = "Wirkkette \"Online Entertainment\" - Reliability of key requests"
|
|
||||||
|
|
||||||
description = "CoCo-QM-Report_Draft"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#entity selector object
|
|
||||||
filter = "type(\"SERVICE\")"
|
|
||||||
|
|
||||||
|
|
||||||
#metric expression of the calculation as done in data explorer ui
|
|
||||||
metric_expression = <<-EOT
|
|
||||||
(100)*
|
|
||||||
((1)-(((calc:service.vehicleservice_oes_responsecode_998_requestcount:splitBy():sum) +
|
|
||||||
(calc:service.vehicleservice_oes_responsecode_999_requestcount:splitBy():sum) +
|
|
||||||
(calc:service.vehicleservice_oes_fivexx_count:splitBy():sum)) /
|
|
||||||
(calc:service.vehicleservice_oes_request_count_total:splitBy():sum)))
|
|
||||||
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
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
module Wirkkette__Vehicle_List__-_Reliability_of_key_requests {
|
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
|
||||||
|
|
||||||
|
|
||||||
name = "Wirkkette \"Vehicle List\" - Reliability of key requests"
|
|
||||||
|
|
||||||
description = "CoCo-QM-Report_Mobile"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#entity selector object
|
|
||||||
filter = ""
|
|
||||||
|
|
||||||
|
|
||||||
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/v2/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/v2/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
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
module Wirkkette__Vehicle_List__VURS___-_Reliability_of_key_requests {
|
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
|
||||||
|
|
||||||
|
|
||||||
name = "Wirkkette \"Vehicle List (VURS)\" - Reliability of key requests"
|
|
||||||
|
|
||||||
description = ""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#entity selector object
|
|
||||||
filter = "entityId(\"SERVICE-BACAE8C1A346B7C9\")"
|
|
||||||
|
|
||||||
|
|
||||||
#metric expression of the calculation as done in data explorer ui
|
|
||||||
metric_expression = "builtin:service.successes.server.rate:splitBy()"
|
|
||||||
|
|
||||||
|
|
||||||
#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
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -2,9 +2,9 @@ module {{ module }} {
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
name = {{ slo_name }}
|
name = "{{ slo_name }}"
|
||||||
|
|
||||||
description = {{ description }}
|
description = "{{ description }}"
|
||||||
|
|
||||||
# entity selector object
|
# entity selector object
|
||||||
filter = ""
|
filter = ""
|
||||||
|
|
@ -14,19 +14,19 @@ module {{ module }} {
|
||||||
(100)*(({{ metricA }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
(100)*(({{ metricA }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
fromRelationship.isServiceMethodOfService(
|
fromRelationship.isServiceMethodOfService(
|
||||||
type(~"SERVICE~"),entityName.in(
|
type(~"SERVICE~"),entityName.in(
|
||||||
~"{{ service }}~"
|
~"{{ servicesA }}~"
|
||||||
)
|
)
|
||||||
),entityName.in(
|
),entityName.in(
|
||||||
~"{{ keyRequest }}~"
|
~"{{ keyRequestsA }}~"
|
||||||
)"))))):splitBy())
|
)"))))):splitBy())
|
||||||
/
|
/
|
||||||
({{ metricB }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
({{ metricB }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
fromRelationship.isServiceMethodOfService(
|
fromRelationship.isServiceMethodOfService(
|
||||||
type(~"SERVICE~"),entityName.in(
|
type(~"SERVICE~"),entityName.in(
|
||||||
~"{{ service }}~"
|
~"{{ servicesB }}~"
|
||||||
)
|
)
|
||||||
),entityName.in(
|
),entityName.in(
|
||||||
~"{{ keyRequest }}~"
|
~"{{ keyRequestsB }}~"
|
||||||
)"))))):splitBy()))
|
)"))))):splitBy()))
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@ module {{ module }} {
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
name = {{ slo_name }}
|
name = "{{ slo_name }}"
|
||||||
|
|
||||||
description = {{ description }}
|
description = "{{ description }}"
|
||||||
|
|
||||||
# entity selector object
|
# entity selector object
|
||||||
filter = ""
|
filter = ""
|
||||||
|
|
@ -14,19 +14,19 @@ module {{ module }} {
|
||||||
(100)*((1)-({{ metricA }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
(100)*((1)-({{ metricA }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
fromRelationship.isServiceMethodOfService(
|
fromRelationship.isServiceMethodOfService(
|
||||||
type(~"SERVICE~"),entityName.in(
|
type(~"SERVICE~"),entityName.in(
|
||||||
~"{{ service }}~"
|
~"{{ servicesA }}~"
|
||||||
)
|
)
|
||||||
),entityName.in(
|
),entityName.in(
|
||||||
~"{{ keyRequest }}~"
|
~"{{ keyRequestsA }}~"
|
||||||
)"))))):splitBy())
|
)"))))):splitBy())
|
||||||
/
|
/
|
||||||
({{ metricB }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
({{ metricB }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
fromRelationship.isServiceMethodOfService(
|
fromRelationship.isServiceMethodOfService(
|
||||||
type(~"SERVICE~"),entityName.in(
|
type(~"SERVICE~"),entityName.in(
|
||||||
~"{{ service }}~"
|
~"{{ servicesA }}~"
|
||||||
)
|
)
|
||||||
),entityName.in(
|
),entityName.in(
|
||||||
~"{{ keyRequest }}~"
|
~"{{ keyRequestsA }}~"
|
||||||
)"))))):splitBy()))
|
)"))))):splitBy()))
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@ module {{ module }} {
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
name = {{ slo_name }}
|
name = "{{ slo_name }}"
|
||||||
|
|
||||||
description = {{ description }}
|
description = "{{ description }}"
|
||||||
|
|
||||||
# entity selector object
|
# entity selector object
|
||||||
filter = ""
|
filter = ""
|
||||||
|
|
@ -13,7 +13,7 @@ module {{ module }} {
|
||||||
metric_expression = <<<EOT
|
metric_expression = <<<EOT
|
||||||
{{ metric }}:filter(and(or(in("dt.entity.service",entitySelector("type(~"SERVICE~"),
|
{{ metric }}:filter(and(or(in("dt.entity.service",entitySelector("type(~"SERVICE~"),
|
||||||
entityName.in(
|
entityName.in(
|
||||||
~"VehicleUserRelationshipService - PROD~"
|
~"{{ services }}~"
|
||||||
)"))))):splitBy()
|
)"))))):splitBy()
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@ module {{ module }} {
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
name = {{ slo_name }}
|
name = "{{ slo_name }}"
|
||||||
|
|
||||||
description = {{ description }}
|
description = "{{ description }}"
|
||||||
|
|
||||||
# entity selector object
|
# entity selector object
|
||||||
filter = ""
|
filter = ""
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@ module {{ module }} {
|
||||||
|
|
||||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
name = {{ slo_name }}
|
name = "{{ slo_name }}"
|
||||||
|
|
||||||
description = {{ description }}
|
description = "{{ description }}"
|
||||||
|
|
||||||
# entity selector object
|
# entity selector object
|
||||||
filter = ""
|
filter = ""
|
||||||
|
|
@ -14,10 +14,10 @@ module {{ module }} {
|
||||||
(100)-({{ metric }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
(100)-({{ metric }}:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
|
||||||
fromRelationship.isServiceMethodOfService(
|
fromRelationship.isServiceMethodOfService(
|
||||||
type(~"SERVICE~"),entityName.in(
|
type(~"SERVICE~"),entityName.in(
|
||||||
~"{{ service }}~"
|
~"{{ services }}~"
|
||||||
)
|
)
|
||||||
),entityName.in(
|
),entityName.in(
|
||||||
~"{{ keyRequest }}~"
|
~"{{ keyRequests }}~"
|
||||||
)"))))):splitBy())
|
)"))))):splitBy())
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue