Compare commits
8 Commits
21745330fc
...
45f37d5180
| Author | SHA1 | Date |
|---|---|---|
|
|
45f37d5180 | |
|
|
d980a5f6cd | |
|
|
a2fb1ac457 | |
|
|
28d25e86e3 | |
|
|
a3565c78a6 | |
|
|
09b0748c55 | |
|
|
5dca61c09f | |
|
|
6c7555d956 |
|
|
@ -39,7 +39,7 @@
|
|||
//cron('0 8 * * *')
|
||||
|
||||
//every monday at 08:00
|
||||
cron('0 4 * * 1')
|
||||
//cron('0 4 * * 1')
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -92,8 +92,8 @@
|
|||
emailext subject: env.JOB_NAME,
|
||||
body: 'Please find the output of the weekly QM-Report attached',
|
||||
//to: 'rene.forstner@nttdata.com',
|
||||
//to: 'rene.forstner@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de',
|
||||
to: 'rene.forstner@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Sonja.Yildizoglu@bmw.de, Andreas.DA.Danzer@partner.bmw.de',
|
||||
to: 'rene.forstner@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de, Andreas.DB.Danzer@bmwgroup.com',
|
||||
//to: 'rene.forstner@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Sonja.Yildizoglu@bmw.de, Andreas.DA.Danzer@partner.bmw.de',
|
||||
replyTo: 'coco-apm@bmw.de',
|
||||
attachmentsPattern: '*.xlsx'
|
||||
|
||||
|
|
@ -107,6 +107,16 @@
|
|||
}
|
||||
|
||||
post {
|
||||
failure {
|
||||
emailext subject: "${env.JOB_NAME} build ${env.BUILD_ID} failed",
|
||||
body: "QM report failed, see logs for details: ${env.BUILD_URL}",
|
||||
to: 'BMW.CoCo.Dynatrace@nttdata.com, ermis.wieger@nttdata.com, Andreas.DB.Danzer@bmwgroup.com'
|
||||
// to post to the teams channel "0 - APM Service Desk" just uncomment the following command:
|
||||
// office365ConnectorSend webhookUrl: "https://bmwgroup.webhook.office.com/webhookb2/483edc00-c925-4672-8088-8299a0139fca@ce849bab-cc1c-465b-b62e-18f07c9ac198/JenkinsCI/9aca6923685b40f794134853fcbe88f1/ff31bcee-96b3-4481-9bd8-4f74180b263b",
|
||||
// message: "QM report failed, see logs for details: ${env.BUILD_URL}",
|
||||
// status: 'Failure',
|
||||
// color: "d00000"
|
||||
}
|
||||
always {
|
||||
cleanWs()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,10 @@ import pandas as pd
|
|||
import requests
|
||||
import openpyxl
|
||||
import argparse
|
||||
import os
|
||||
|
||||
os.environ['TZ'] = 'Europe/Berlin' # set new timezone
|
||||
time.tzset()
|
||||
|
||||
def make_request(url, headers,verify,parameters):
|
||||
try:
|
||||
|
|
@ -57,7 +61,7 @@ def getSLO(DTAPIToken, DTENV, fromDate, toDate):
|
|||
"from": int(fromDate),
|
||||
"to": int(toDate),
|
||||
"timeFrame": "GTF",
|
||||
"evaluate": True,
|
||||
"evaluate": "true",
|
||||
"sloSelector": "text(\"CoCo-QM-Report\")"
|
||||
}
|
||||
r = make_request(DTAPIURL,headers=headers,parameters=parameters,verify=verify)
|
||||
|
|
@ -84,8 +88,8 @@ def get_daily_slice(start_date, end_date):
|
|||
|
||||
#Add the first day
|
||||
tempend = tempstart + datetime.timedelta(hours=24)
|
||||
startms = time.mktime(tempstart.timetuple()) * 1000
|
||||
endms = time.mktime(tempend.timetuple()) * 1000
|
||||
startms = time.mktime(tempstart.timetuple()) * 1000
|
||||
endms = time.mktime(tempend.timetuple()) * 1000
|
||||
|
||||
row = {'Date':tempstart,'startTime':startms, 'endTime':endms}
|
||||
days = days.append(row,ignore_index=True)
|
||||
|
|
@ -93,8 +97,10 @@ def get_daily_slice(start_date, end_date):
|
|||
while tempstart < end_date:
|
||||
tempstart = tempstart + datetime.timedelta(hours=24)
|
||||
tempend = tempstart + datetime.timedelta(hours=24)
|
||||
startms = time.mktime(tempstart.timetuple()) * 1000
|
||||
endms = time.mktime(tempend.timetuple()) * 1000
|
||||
|
||||
|
||||
startms = time.mktime(tempstart.timetuple()) * 1000
|
||||
endms = time.mktime(tempend.timetuple()) * 1000
|
||||
|
||||
row = {'Date':tempstart,'startTime':startms, 'endTime':endms}
|
||||
days = days.append(row,ignore_index=True)
|
||||
|
|
@ -198,6 +204,10 @@ def main():
|
|||
else:
|
||||
print("Invalid arguments, please use --help")
|
||||
sys.exit()
|
||||
|
||||
#Adding 2 hours to be UTC+2 on the pipeline
|
||||
fromDate = fromDate + datetime.timedelta(hours=2)
|
||||
toDate = toDate + datetime.timedelta(hours=2)
|
||||
print("fromDate: " + str(fromDate))
|
||||
print("toDate: " + str(toDate))
|
||||
|
||||
|
|
@ -241,22 +251,22 @@ def main():
|
|||
dailyall = pd.concat([dailyall,df],ignore_index=True)
|
||||
|
||||
#Calc hourly SLO
|
||||
if (args.preSelect == "week"):
|
||||
df = pd.DataFrame()
|
||||
for index, row in hours.iterrows():
|
||||
temp_df = getSLO(DTTOKEN,DTURL,row['startTime'],row['endTime'])
|
||||
temp_df['Date'] = row['Date']
|
||||
temp_df['HUB'] = item
|
||||
df = pd.concat([df,temp_df],ignore_index=True)
|
||||
|
||||
#sort columns in a try block - if API is returning columns which are non exist, this will not fail the script
|
||||
|
||||
df[['description','Touchpoint']] = df['description'].str.split('_',expand=True)
|
||||
try:
|
||||
df = df[['Date', 'HUB', 'id', 'enabled', 'name', 'description', 'Touchpoint', 'evaluatedPercentage', 'errorBudget', 'status', 'error', 'target','warning', 'evaluationType', 'timeframe', 'metricExpression', 'filter']]
|
||||
except Exception as e:
|
||||
print("Could not rearrange columns: " + str(e))
|
||||
hourlyall = pd.concat([hourlyall,df],ignore_index=True)
|
||||
#if (args.preSelect == "week"):
|
||||
df = pd.DataFrame()
|
||||
for index, row in hours.iterrows():
|
||||
temp_df = getSLO(DTTOKEN,DTURL,row['startTime'],row['endTime'])
|
||||
temp_df['Date'] = row['Date']
|
||||
temp_df['HUB'] = item
|
||||
df = pd.concat([df,temp_df],ignore_index=True)
|
||||
|
||||
#sort columns in a try block - if API is returning columns which are non exist, this will not fail the script
|
||||
|
||||
df[['description','Touchpoint']] = df['description'].str.split('_',expand=True)
|
||||
try:
|
||||
df = df[['Date', 'HUB', 'id', 'enabled', 'name', 'description', 'Touchpoint', 'evaluatedPercentage', 'errorBudget', 'status', 'error', 'target','warning', 'evaluationType', 'timeframe', 'metricExpression', 'filter']]
|
||||
except Exception as e:
|
||||
print("Could not rearrange columns: " + str(e))
|
||||
hourlyall = pd.concat([hourlyall,df],ignore_index=True)
|
||||
|
||||
###Calc Overall YTD SLO
|
||||
yearstart = toDate.replace(month=2,day=28)
|
||||
|
|
@ -308,4 +318,4 @@ def main():
|
|||
writer.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
|
|
|
|||
Loading…
Reference in New Issue