updated
parent
a0db4c9c06
commit
cdeb76b2b4
|
|
@ -29,4 +29,4 @@ slo_definition:
|
||||||
- service: "TripService - PROD"
|
- service: "TripService - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "/v3/motorist/[UUID]/trips"
|
- "/v3/motorist/[UUID]/trips"
|
||||||
- "/v2/motorist/[UUID]/trips"
|
- "/v2/motorist/[UUID]/trips"
|
||||||
|
|
@ -32,4 +32,4 @@ slo_definition:
|
||||||
filter:
|
filter:
|
||||||
- service: "POIs"
|
- service: "POIs"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "getPOIs (FTS Calls)"
|
- "getPOIs (FTS Calls)"
|
||||||
|
|
@ -27,4 +27,4 @@ slo_definition:
|
||||||
filter:
|
filter:
|
||||||
- service: "Netty on 0.0.0.0:8080 - rtti - prod"
|
- service: "Netty on 0.0.0.0:8080 - rtti - prod"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- ""
|
- ""
|
||||||
|
|
@ -28,4 +28,4 @@ slo_definition:
|
||||||
- "/api/eu/2.5/eroute-costs/protobuf3"
|
- "/api/eu/2.5/eroute-costs/protobuf3"
|
||||||
- service: "Netty on 0.0.0.0:8080 - eroute-adapter - prod"
|
- service: "Netty on 0.0.0.0:8080 - eroute-adapter - prod"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "/route/eroute"
|
- "/route/eroute"
|
||||||
|
|
@ -39,8 +39,8 @@ slo_definition:
|
||||||
- "POST /api/v2/presentation/profile-account"
|
- "POST /api/v2/presentation/profile-account"
|
||||||
- "GET /api/v1/presentation/profile-tab/contacts"
|
- "GET /api/v1/presentation/profile-tab/contacts"
|
||||||
- service: "btc-cn-connected-oauth-service - PROD"
|
- service: "btc-cn-connected-oauth-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "POST /api/v2/cop/login/pwd"
|
- "POST /api/v2/cop/login/pwd"
|
||||||
- "POST /api/v2/cop/login/sms"
|
- "POST /api/v2/cop/login/sms"
|
||||||
- "POST /api/v2/cop/sso"
|
- "POST /api/v2/cop/sso"
|
||||||
- "GET /api/v1/cop/logout"
|
- "GET /api/v1/cop/logout"
|
||||||
|
|
@ -60,4 +60,4 @@ slo_definition:
|
||||||
- "POST /api/v2/vehicles/<VIN>/primary/map"
|
- "POST /api/v2/vehicles/<VIN>/primary/map"
|
||||||
- "POST /api/v1/vehicles/<VIN>/validate-security-code"
|
- "POST /api/v1/vehicles/<VIN>/validate-security-code"
|
||||||
- "POST /api/v1/vehicles/<VIN>/resend-security-code"
|
- "POST /api/v1/vehicles/<VIN>/resend-security-code"
|
||||||
- "DELETE /api/v1/vehicles/<VIN>"
|
- "DELETE /api/v1/vehicles/<VIN>"
|
||||||
|
|
@ -22,24 +22,24 @@ slo_definition:
|
||||||
- "PUT /api/v2/favorites/<favoriteId>"
|
- "PUT /api/v2/favorites/<favoriteId>"
|
||||||
- "PUT /api/v3/favorites/<favoriteId>"
|
- "PUT /api/v3/favorites/<favoriteId>"
|
||||||
- "PUT /api/v2/favorites/homework/1"
|
- "PUT /api/v2/favorites/homework/1"
|
||||||
- "PUT /api/v2/favorites/homework/2"
|
- "PUT /api/v2/favorites/homework/2"
|
||||||
NA-Prod:
|
NA-Prod:
|
||||||
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
filter:
|
filter:
|
||||||
- service: "btc-destination-composite-service - PROD"
|
- service: "btc-destination-composite-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "POST /api/v2/favorites/"
|
- "POST /api/v2/favorites/"
|
||||||
- "POST /api/v3/favorites/"
|
- "POST /api/v3/favorites/"
|
||||||
- "GET /api/v2/favorites/"
|
- "GET /api/v2/favorites/"
|
||||||
- "GET /api/v3/favorites/"
|
- "GET /api/v3/favorites/"
|
||||||
- "PUT /api/v2/favorites/<favoriteId>"
|
- "PUT /api/v2/favorites/<favoriteId>"
|
||||||
- "PUT /api/v3/favorites/<favoriteId>"
|
- "PUT /api/v3/favorites/<favoriteId>"
|
||||||
- "DELETE /api/v2/favorites/<favoriteId>"
|
- "DELETE /api/v2/favorites/<favoriteId>"
|
||||||
CN-Prod:
|
CN-Prod:
|
||||||
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
- metric: "builtin:service.keyRequest.errors.server.successCount"
|
||||||
filter:
|
filter:
|
||||||
- service: "btc-destination-composite-service - PROD"
|
- service: "btc-destination-composite-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "GET /api/v3/favorites/"
|
- "GET /api/v3/favorites/"
|
||||||
- "POST /api/v3/favorites/"
|
- "POST /api/v3/favorites/"
|
||||||
- "PUT /api/v3/favorites/<favoriteId>"
|
- "PUT /api/v3/favorites/<favoriteId>"
|
||||||
|
|
@ -28,4 +28,4 @@ slo_definition:
|
||||||
filter:
|
filter:
|
||||||
- service: "btc-vehicle-composite-service - PROD"
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "GET /api/v1/vehicles"
|
- "GET /api/v1/vehicles"
|
||||||
|
|
@ -13,32 +13,32 @@ slo_definition:
|
||||||
- metric: "builtin:service.keyRequest.errors.fivexx.count"
|
- metric: "builtin:service.keyRequest.errors.fivexx.count"
|
||||||
filter:
|
filter:
|
||||||
- service: "TrackApi - smc - PROD"
|
- service: "TrackApi - smc - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "trackKey"
|
- "trackKey"
|
||||||
- "manageKey"
|
- "manageKey"
|
||||||
- service: "digital-key-composite-service - PROD"
|
- service: "digital-key-composite-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "GET /api/v1/digitalkey/<VIN>/password"
|
- "GET /api/v1/digitalkey/<VIN>/password"
|
||||||
- "GET /api/v1/digitalkey/<VIN>/pairing"
|
- "GET /api/v1/digitalkey/<VIN>/pairing"
|
||||||
NA-Prod:
|
NA-Prod:
|
||||||
- metric: "builtin:service.keyRequest.errors.fivexx.count"
|
- metric: "builtin:service.keyRequest.errors.fivexx.count"
|
||||||
filter:
|
filter:
|
||||||
- service: "TrackApi - smc - PROD"
|
- service: "TrackApi - smc - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "trackKey"
|
- "trackKey"
|
||||||
- "manageKey"
|
- "manageKey"
|
||||||
- service: "digital-key-composite-service - PROD"
|
- service: "digital-key-composite-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "GET /api/v1/digitalkey/<VIN>/password"
|
- "GET /api/v1/digitalkey/<VIN>/password"
|
||||||
- "GET /api/v1/digitalkey/<VIN>/pairing"
|
- "GET /api/v1/digitalkey/<VIN>/pairing"
|
||||||
CN-Prod:
|
CN-Prod:
|
||||||
- metric: "builtin:service.keyRequest.errors.fivexx.count"
|
- metric: "builtin:service.keyRequest.errors.fivexx.count"
|
||||||
filter:
|
filter:
|
||||||
- service: "TrackApi - smc - PROD"
|
- service: "TrackApi - smc - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "trackKey"
|
- "trackKey"
|
||||||
- "manageKey"
|
- "manageKey"
|
||||||
- service: "digital-key-composite-service - PROD"
|
- service: "digital-key-composite-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "GET /api/v1/digitalkey/<VIN>/password"
|
- "GET /api/v1/digitalkey/<VIN>/password"
|
||||||
- "GET /api/v1/digitalkey/<VIN>/pairing"
|
- "GET /api/v1/digitalkey/<VIN>/pairing"
|
||||||
|
|
@ -47,4 +47,4 @@ slo_definition:
|
||||||
- "POST /api/v1/download/[UUID]/<fileName>/confirm"
|
- "POST /api/v1/download/[UUID]/<fileName>/confirm"
|
||||||
- "GET /api/v1/vehicle/<VIN>/egomodelurl"
|
- "GET /api/v1/vehicle/<VIN>/egomodelurl"
|
||||||
- "GET /api/v1/vehicle/<VIN>/key"
|
- "GET /api/v1/vehicle/<VIN>/key"
|
||||||
- "GET /api/v1/recordings/vehicle/<VIN>"
|
- "GET /api/v1/recordings/vehicle/<VIN>"
|
||||||
|
|
@ -52,8 +52,8 @@ slo_definition:
|
||||||
- "POST /api/v2/presentation/remote-commands/<VIN>/door-unlock"
|
- "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>/climate-now"
|
||||||
- "GET /api/v2/presentation/remote-history/<VIN>"
|
- "GET /api/v2/presentation/remote-history/<VIN>"
|
||||||
- "POST /api/v2/presentation/remote-commands/<VIN>/horn-blow",
|
- "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>/climate-timer"
|
||||||
- "POST /api/v2/presentation/remote-commands/<VIN>/light-flash",
|
- "POST /api/v2/presentation/remote-commands/<VIN>/light-flash"
|
||||||
- "POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder",
|
- "POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder"
|
||||||
- "GET /api/v1/presentation/remote-history/<VIN>"
|
- "GET /api/v1/presentation/remote-history/<VIN>"
|
||||||
|
|
@ -26,4 +26,4 @@ slo_definition:
|
||||||
filter:
|
filter:
|
||||||
- service: "LegacyPoiApi - msgsvc - prod"
|
- service: "LegacyPoiApi - msgsvc - prod"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- ""
|
- ""
|
||||||
|
|
@ -30,4 +30,4 @@ slo_definition:
|
||||||
filter:
|
filter:
|
||||||
- service: "btc-vehicle-composite-service - PROD"
|
- service: "btc-vehicle-composite-service - PROD"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "GET /api/v1/vehicles"
|
- "GET /api/v1/vehicles"
|
||||||
|
|
@ -32,4 +32,4 @@ slo_definition:
|
||||||
filter:
|
filter:
|
||||||
- service: "POIs"
|
- service: "POIs"
|
||||||
keyRequests:
|
keyRequests:
|
||||||
- "getPOIs (FTS Calls)"
|
- "getPOIs (FTS Calls)"
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
options {
|
options {
|
||||||
ansiColor('xterm')
|
ansiColor('xterm')
|
||||||
|
|
@ -25,11 +26,9 @@
|
||||||
// agent {label 'jaws-slaves'}
|
// agent {label 'jaws-slaves'}
|
||||||
agent {label 'jaws-slaves'}
|
agent {label 'jaws-slaves'}
|
||||||
parameters {
|
parameters {
|
||||||
// string(name: 'FROMDATE', defaultValue: '', description: 'Enter from date in format YYYY-MM-DD e.g. 2021-11-01')
|
|
||||||
|
|
||||||
// string(name: 'TODATE', defaultValue: '', description: 'Enter to date in format YYYY-MM-DD e.g. 2021-11-30')
|
|
||||||
|
|
||||||
string(name: 'INPUTFOLDER', defaultValue: 'DE-3', description: 'Enter the business line (aka department) folder e.g. DE-3')
|
string(name: 'INPUTFOLDER', defaultValue: 'DE-3', description: 'Enter the business line (aka department) folder e.g. DE-3')
|
||||||
|
string(name: 'ABRANCH', defaultValue: 'BusinessLine', description: 'Enter the branch for the shared_configuration repository')
|
||||||
|
string(name: 'BBRANCH', defaultValue: 'master', description: 'Enter the branch for the coco_terraform_config repository')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -56,6 +55,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
|
stage('Checkout Repositories'){
|
||||||
|
steps {
|
||||||
|
sh '''
|
||||||
|
git branch: '${abranch}', credentialsId: 'jaws_dynatrace_bitbuket_user', url: 'https://atc.bmwgroup.net/bitbucket/scm/opapm/shared_configuration.git'
|
||||||
|
git branch: '${bbranch}', credentialsId: 'jaws_dynatrace_bitbuket_user', url: 'https://atc.bmwgroup.net/bitbucket/scm/opapm/coco_terraform_config.git'
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
stage('Install Required Python Packages') {
|
stage('Install Required Python Packages') {
|
||||||
steps {
|
steps {
|
||||||
sh '''
|
sh '''
|
||||||
|
|
@ -69,15 +77,14 @@
|
||||||
stage('Execute Script') {
|
stage('Execute Script') {
|
||||||
steps {
|
steps {
|
||||||
|
|
||||||
sh "python3 generate.py ${params.INPUTFOLDER}"
|
sh '''
|
||||||
|
python3 generate.py .\shared_configuration\${params.INPUTFOLDER}
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
//Only required once CN is not reachable from EMEA
|
//Only required once CN is not reachable from EMEA
|
||||||
//loopEnvironments(environments)
|
//loopEnvironments(environments)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
|
|
@ -95,4 +102,4 @@
|
||||||
cleanWs()
|
cleanWs()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
22
generate.py
22
generate.py
|
|
@ -113,21 +113,23 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
print(sys.argv)
|
print(sys.argv)
|
||||||
if len(sys.argv) != 2:
|
if len(sys.argv) != 2:
|
||||||
print(".\generate.py <FOLDER>")
|
print(".\generate.py <path to yaml file/folder> <OUTPUTPATH>")
|
||||||
print("Example: .\generate.py DE-3")
|
print("Example: .\generate.py .\DE-3\\")
|
||||||
print("Example: .\generate.py DE-3,DE-4,...")
|
print("Example: .\generate.py .\DE-3\,.\DE-4\,...")
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
# init folder
|
# TESTING: Unocmment this if you want to test it
|
||||||
for folderName,businessLine in FOLDERS.items():
|
# for folderName,businessLine in FOLDERS.items():
|
||||||
businessLinePath = os.path.join(cwd,os.path.basename(businessLine))
|
# businessLinePath = os.path.join(cwd,businessLine)
|
||||||
if not os.path.exists(businessLinePath):
|
# if not os.path.exists(businessLinePath):
|
||||||
os.makedirs(businessLinePath)
|
# os.makedirs(businessLinePath)
|
||||||
|
|
||||||
# for each folder
|
# for each folder
|
||||||
for arg in [sys.argv[1]]:
|
arguments = sys.argv[1].split(',')
|
||||||
|
for arg in arguments:
|
||||||
|
pathname = os.path.join(cwd,arg)
|
||||||
# return path of slo config files
|
# return path of slo config files
|
||||||
configFiles = glob.glob(pathname=os.path.join(cwd,os.path.basename(arg))+'\\**\\*.yaml',
|
configFiles = glob.glob(pathname=pathname + '\\**\\*.yaml',
|
||||||
# root_dir=os.path.join(cwd,os.path.basename(arg)),
|
# root_dir=os.path.join(cwd,os.path.basename(arg)),
|
||||||
recursive=True)
|
recursive=True)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 = <<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-destination-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /api/v3/favorites/~",
|
||||||
|
~"POST /api/v3/favorites/~",
|
||||||
|
~"PUT /api/v3/favorites/<favoriteId>~"
|
||||||
|
)"))))):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/<favoriteId>~"
|
||||||
|
)"))))):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,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 = <<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-remote-commands-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"POST /api/v2/presentation/remote-commands/eventStatus~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~"
|
||||||
|
)"))))):splitBy())
|
||||||
|
/
|
||||||
|
(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/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~"
|
||||||
|
)"))))):splitBy()))
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# 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,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 = <<EOT
|
||||||
|
(100)*((:filter(and(or(in("dt.entity.service",entitySelector("type(service),entityName.in(
|
||||||
|
~"~"
|
||||||
|
)"))))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.requestCount.total:filter(and(or(in("dt.entity.service",entitySelector("type(service),
|
||||||
|
entityName.in(
|
||||||
|
~"~"
|
||||||
|
)"))))):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,43 @@
|
||||||
|
module TP_Mobile_VehicleData {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
name = "TP_Mobile_VehicleData"
|
||||||
|
|
||||||
|
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(
|
||||||
|
~"btc-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
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 = <<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/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-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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 = <<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-destination-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /api/v3/favorites/~",
|
||||||
|
~"POST /api/v3/favorites/~",
|
||||||
|
~"PUT /api/v3/favorites/<favoriteId>~"
|
||||||
|
)"))))):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/<favoriteId>~"
|
||||||
|
)"))))):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,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 = <<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-remote-commands-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"POST /api/v2/presentation/remote-commands/eventStatus~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~"
|
||||||
|
)"))))):splitBy())
|
||||||
|
/
|
||||||
|
(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/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~"
|
||||||
|
)"))))):splitBy()))
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# 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,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 = <<EOT
|
||||||
|
(100)*((:filter(and(or(in("dt.entity.service",entitySelector("type(service),entityName.in(
|
||||||
|
~"~"
|
||||||
|
)"))))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.requestCount.total:filter(and(or(in("dt.entity.service",entitySelector("type(service),
|
||||||
|
entityName.in(
|
||||||
|
~"~"
|
||||||
|
)"))))):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,43 @@
|
||||||
|
module TP_Mobile_VehicleData {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
name = "TP_Mobile_VehicleData"
|
||||||
|
|
||||||
|
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(
|
||||||
|
~"btc-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
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 = <<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/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-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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 = <<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-destination-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /api/v3/favorites/~",
|
||||||
|
~"POST /api/v3/favorites/~",
|
||||||
|
~"PUT /api/v3/favorites/<favoriteId>~"
|
||||||
|
)"))))):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/<favoriteId>~"
|
||||||
|
)"))))):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,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 = <<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-remote-commands-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"POST /api/v2/presentation/remote-commands/eventStatus~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~"
|
||||||
|
)"))))):splitBy())
|
||||||
|
/
|
||||||
|
(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/<VIN>/door-lock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/door-unlock~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-now~",
|
||||||
|
~"GET /api/v2/presentation/remote-history/<VIN>~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/horn-blow~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/climate-timer~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/light-flash~",
|
||||||
|
~"POST /api/v2/presentation/remote-commands/<VIN>/vehicle-finder~",
|
||||||
|
~"GET /api/v1/presentation/remote-history/<VIN>~"
|
||||||
|
)"))))):splitBy()))
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# 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,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 = <<EOT
|
||||||
|
(100)*((:filter(and(or(in("dt.entity.service",entitySelector("type(service),entityName.in(
|
||||||
|
~"~"
|
||||||
|
)"))))):splitBy())
|
||||||
|
/
|
||||||
|
(builtin:service.requestCount.total:filter(and(or(in("dt.entity.service",entitySelector("type(service),
|
||||||
|
entityName.in(
|
||||||
|
~"~"
|
||||||
|
)"))))):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,43 @@
|
||||||
|
module TP_Mobile_VehicleData {
|
||||||
|
|
||||||
|
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||||
|
|
||||||
|
name = "TP_Mobile_VehicleData"
|
||||||
|
|
||||||
|
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(
|
||||||
|
~"btc-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
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 = <<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/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-vehicle-composite-service - PROD~"
|
||||||
|
)
|
||||||
|
),entityName.in(
|
||||||
|
~"GET /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
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue