coco_terraform_config/CN_PROD/slo/TP_Vehicle_Provisioning.tf

97 lines
10 KiB
HCL

module TP_Vehicle_Provisioning {
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
name = "TP_Vehicle_Provisioning"
description = "CoCo-QM-Report_Vehicle"
#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(~"WorkshopProvisioningService-provisioning-prod~",~"TriggerProvAckInternalMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"InternalTriggerMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"TriggerInputMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"ProvArchiveInMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"VpsJoynrApi-provisioning-prod~",~"NopTriggerAckMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"ProvProtocolMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"NOP-Provisioning(/nop-prov)-provisioning-prod~",~"ProvisioningService-provisioning-prod~",~"TriggeringListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"WorkshopProvisioningService-vps-prov-cn~",~"MQSession$FacadeMessageListener-vps-prov-cn~",~"MQSession$FacadeMessageListener-vps-trigger-cn~",~"VpsJoynrApi-vps-prov-cn~",~"MQSession$FacadeMessageListener-noptrigger-prod~",~"ProvisioningService-nopprov-prod~",~"NOP-Provisioning(/nop-prov)-nopprov-prod~")),entityName.in(~"vpsObtainProvisioningSync~",~"Queue:PROV_TRIGGER_ACK-prod~",~"Queue:PROV_TRIGGER_INTERNAL-prod~",~"Queue:PROV_Trigger_IN-prod~",~"Queue:PROV_ARCHIVE_IN-prod~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningHeadUnit~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningComUnit~",~"Queue:NOP_ARCHIVE_IN-prod~",~"Queue:NOP_Trigger_IN-prod~",~"Queue:NOP_TRIGGER_ACK-prod~",~"Queue:NOP_TRIGGER_INTERNAL-prod~",~"getNOPProvisioningDataForVehicle~",~"acknowledgeNOPProvisioningDownload~",~"getNOPProvisioningDataForVehicleBase64~",~"/nop-prov/v2/mainprov/prov.do~",~"vpsObtainProvisioningSync~",~"Queue:B2VCNPROD.BMW.B2VCN.PROV_TRIGGER_INTERNAL~",~"Queue:B2VCNPROD.BMW.B2VCN.PROV_TRIGGER_IN~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningHeadUnit~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningComUnit~",~"Queue:B2VCNPROD.BMW.B2VCN.NOP_TRIGGER_IN~",~"getNOPProvisioningDataForVehicle~",~"acknowledgeNOPProvisioningDownload~",~"getNOPProvisioningDataForVehicleBase64~",~"/nop-prov/v2/mainprov/prov.do~")"))))):splitBy())/(builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),fromRelationship.isServiceMethodOfService(type(~"SERVICE~"),entityName.in(~"WorkshopProvisioningService-provisioning-prod~",~"TriggerProvAckInternalMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"InternalTriggerMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"TriggerInputMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"ProvArchiveInMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"VpsJoynrApi-provisioning-prod~",~"NopTriggerAckMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"ProvProtocolMessageListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"NOP-Provisioning(/nop-prov)-provisioning-prod~",~"ProvisioningService-provisioning-prod~",~"TriggeringListener$Proxy$_$$_Weld$EnterpriseProxy$-provisioning-prod~",~"WorkshopProvisioningService-vps-prov-cn~",~"MQSession$FacadeMessageListener-vps-prov-cn~",~"MQSession$FacadeMessageListener-vps-trigger-cn~",~"VpsJoynrApi-vps-prov-cn~",~"MQSession$FacadeMessageListener-noptrigger-prod~",~"ProvisioningService-nopprov-prod~",~"NOP-Provisioning(/nop-prov)-nopprov-prod~")),entityName.in(~"vpsObtainProvisioningSync~",~"Queue:PROV_TRIGGER_ACK-prod~",~"Queue:PROV_TRIGGER_INTERNAL-prod~",~"Queue:PROV_Trigger_IN-prod~",~"Queue:PROV_ARCHIVE_IN-prod~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningHeadUnit~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningComUnit~",~"Queue:NOP_ARCHIVE_IN-prod~",~"Queue:NOP_Trigger_IN-prod~",~"Queue:NOP_TRIGGER_ACK-prod~",~"Queue:NOP_TRIGGER_INTERNAL-prod~",~"getNOPProvisioningDataForVehicle~",~"acknowledgeNOPProvisioningDownload~",~"getNOPProvisioningDataForVehicleBase64~",~"/nop-prov/v2/mainprov/prov.do~",~"vpsObtainProvisioningSync~",~"Queue:B2VCNPROD.BMW.B2VCN.PROV_TRIGGER_INTERNAL~",~"Queue:B2VCNPROD.BMW.B2VCN.PROV_TRIGGER_IN~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningHeadUnit~",~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningComUnit~",~"Queue:B2VCNPROD.BMW.B2VCN.NOP_TRIGGER_IN~",~"getNOPProvisioningDataForVehicle~",~"acknowledgeNOPProvisioningDownload~",~"getNOPProvisioningDataForVehicleBase64~",~"/nop-prov/v2/mainprov/prov.do~")"))))):splitBy()))
EOT
#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(
# ~"WorkshopProvisioningService - provisioning - prod~",
# ~"TriggerProvAckInternalMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"InternalTriggerMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"TriggerInputMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"ProvArchiveInMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"VpsJoynrApi - provisioning - prod~",
# ~"NopTriggerAckMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"ProvProtocolMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"NOP-Provisioning (/nop-prov) - provisioning - prod~",
# ~"ProvisioningService - provisioning - prod~",
# ~"TriggeringListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ,entityName.in(
# ~"vpsObtainProvisioningSync~",
# ~"Queue: PROV_TRIGGER_ACK-prod~",
# ~"Queue: PROV_TRIGGER_INTERNAL-prod~",
# ~"Queue: PROV_Trigger_IN-prod~",
# ~"Queue: PROV_ARCHIVE_IN-prod~",
# ~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningHeadUnit~",
# ~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningComUnit~",
# ~"Queue: NOP_ARCHIVE_IN-prod~",
# ~"Queue: NOP_Trigger_IN-prod~",
# ~"Queue: NOP_TRIGGER_ACK-prod~",
# ~"Queue: NOP_TRIGGER_INTERNAL-prod~",
# ~"getNOPProvisioningDataForVehicle~",
# ~"acknowledgeNOPProvisioningDownload~",
# ~"getNOPProvisioningDataForVehicleBase64~",
# ~"/nop-prov/v2/mainprov/prov.do~",
# )"))))):splitBy())
# /
# (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method),
# fromRelationship.isServiceMethodOfService(
# type(~"SERVICE~"),entityName.in(
# ~"WorkshopProvisioningService - provisioning - prod~",
# ~"TriggerProvAckInternalMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"InternalTriggerMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"TriggerInputMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"ProvArchiveInMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"VpsJoynrApi - provisioning - prod~",
# ~"NopTriggerAckMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"ProvProtocolMessageListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",
# ~"NOP-Provisioning (/nop-prov) - provisioning - prod~",
# ~"ProvisioningService - provisioning - prod~",
# ~"TriggeringListener$Proxy$_$$_Weld$EnterpriseProxy$ - provisioning - prod~",))
# ,entityName.in(
# ~"vpsObtainProvisioningSync~",
# ~"Queue: PROV_TRIGGER_ACK-prod~",
# ~"Queue: PROV_TRIGGER_INTERNAL-prod~",
# ~"Queue: PROV_Trigger_IN-prod~",
# ~"Queue: PROV_ARCHIVE_IN-prod~",
# ~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningHeadUnit~",
# ~"ProvisioningVehicleProvider.sendVehicleDataForProvisioningComUnit~",
# ~"Queue: NOP_ARCHIVE_IN-prod~",
# ~"Queue: NOP_Trigger_IN-prod~",
# ~"Queue: NOP_TRIGGER_ACK-prod~",
# ~"Queue: NOP_TRIGGER_INTERNAL-prod~",
# ~"getNOPProvisioningDataForVehicle~",
# ~"acknowledgeNOPProvisioningDownload~",
# ~"getNOPProvisioningDataForVehicleBase64~",
# ~"/nop-prov/v2/mainprov/prov.do~",
# )"))))):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
}