Compare commits
10 Commits
0dc5563597
...
c27b653df9
| Author | SHA1 | Date |
|---|---|---|
|
|
c27b653df9 | |
|
|
51a5a959dc | |
|
|
6d83284c5a | |
|
|
7df5219a75 | |
|
|
241369dd0a | |
|
|
b45bb9fcbf | |
|
|
f3744e62a4 | |
|
|
681789a3f8 | |
|
|
cc7f5bc7a6 | |
|
|
a6373cb82b |
|
|
@ -45,7 +45,7 @@
|
|||
//cron('0 8 * * *')
|
||||
|
||||
// every day at 5:00 utc
|
||||
cron('0 5 * * *')
|
||||
// cron('0 5 * * *')
|
||||
|
||||
//parameterizedCron('0 10 * * * %PRESELECT=week;SLICES=tdhy')
|
||||
|
||||
|
|
@ -75,105 +75,102 @@
|
|||
}
|
||||
|
||||
stages {
|
||||
stage('install required python packages') {
|
||||
steps {
|
||||
sh '''
|
||||
pip3 install --user -r requirements.txt
|
||||
'''
|
||||
}
|
||||
}
|
||||
// stage('install required python packages') {
|
||||
// steps {
|
||||
// sh '''
|
||||
// pip3 install --user -r requirements.txt
|
||||
// '''
|
||||
// }
|
||||
// }
|
||||
|
||||
stage('Execute Reporting Script') {
|
||||
steps {
|
||||
// stage('Execute Reporting Script') {
|
||||
// steps {
|
||||
|
||||
script{
|
||||
def SCRIPT_PARAMETER = ''
|
||||
if(SLICES.isEmpty()) {
|
||||
currentBuild.result = 'ABORTED'
|
||||
error('Aborting due to missing slice parameter')
|
||||
return
|
||||
}
|
||||
else {SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -s " + SLICES.toString()}
|
||||
// script{
|
||||
// def SCRIPT_PARAMETER = ''
|
||||
// if(SLICES.isEmpty()) {
|
||||
// currentBuild.result = 'ABORTED'
|
||||
// error('Aborting due to missing slice parameter')
|
||||
// return
|
||||
// }
|
||||
// else {SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -s " + SLICES.toString()}
|
||||
|
||||
if (PRESELECT.isEmpty()) {
|
||||
if (FROMDATE=='') {
|
||||
currentBuild.result = 'ABORTED'
|
||||
error('Aborting due to missing startdate parameter')
|
||||
return
|
||||
// if (PRESELECT.isEmpty()) {
|
||||
// if (FROMDATE=='') {
|
||||
// currentBuild.result = 'ABORTED'
|
||||
// error('Aborting due to missing startdate parameter')
|
||||
// return
|
||||
|
||||
}
|
||||
else { SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -f " + FROMDATE.toString() }
|
||||
if (TODATE=='') {
|
||||
currentBuild.result = 'ABORTED'
|
||||
error('Aborting due to missing enddate parameter')
|
||||
return
|
||||
}
|
||||
else {SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -t " + TODATE.toString()}
|
||||
// }
|
||||
// else { SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -f " + FROMDATE.toString() }
|
||||
// if (TODATE=='') {
|
||||
// currentBuild.result = 'ABORTED'
|
||||
// error('Aborting due to missing enddate parameter')
|
||||
// return
|
||||
// }
|
||||
// else {SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -t " + TODATE.toString()}
|
||||
|
||||
}
|
||||
else { SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -p " + PRESELECT.toString()}
|
||||
// }
|
||||
// else { SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -p " + PRESELECT.toString()}
|
||||
|
||||
|
||||
|
||||
|
||||
echo "${SCRIPT_PARAMETER}"
|
||||
// sh "python3 createReport.py ${SCRIPT_PARAMETER}"
|
||||
sh "python3 create_datalake_report.py ${SCRIPT_PARAMETER}"
|
||||
// echo "${SCRIPT_PARAMETER}"
|
||||
// // sh "python3 createReport.py ${SCRIPT_PARAMETER}"
|
||||
|
||||
sh "python3 summary.py"
|
||||
summary = readFile('summary.txt').trim()
|
||||
}
|
||||
// sh "python3 create_datalake_report.py ${SCRIPT_PARAMETER}"
|
||||
|
||||
//Only required once CN is not reachable from EMEA
|
||||
//loopEnvironments(environments)
|
||||
}
|
||||
// sh "python3 summary.py"
|
||||
// summary = readFile('summary.txt').trim()
|
||||
// }
|
||||
|
||||
// //Only required once CN is not reachable from EMEA
|
||||
// //loopEnvironments(environments)
|
||||
// }
|
||||
|
||||
}
|
||||
stage('Send report') {
|
||||
steps {
|
||||
script {
|
||||
try {
|
||||
tmp_body = "Please find the output of the daily QM-Report generated with data from the Dynatrace Datalake attached </br></br>${summary}"
|
||||
emailext subject: env.JOB_NAME,
|
||||
mimeType: 'text/html',
|
||||
body: tmp_body,
|
||||
//to: 'michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Andreas.DA.Danzer@partner.bmw.de',
|
||||
//to: 'rene.forstner@nttdata.com, Andreas.DA.Danzer@partner.bmw.de, linnea.bickeboeller@partner.bmwgroup.com',
|
||||
//to: 'rene.forstner@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de',
|
||||
//to: 'rene.forstner@nttdata.com, ermis.wieger@nttdata.com, patryk.gudalewicz.bp@nttdata.com',
|
||||
//to: 'patryk.gudalewicz.bp@nttdata.com',
|
||||
//to: 'rene.forstner@nttdata.com, ermis.wieger@nttdata.com, arnel.arnautovic@nttdata.com, patryk.gudalewicz.bp@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Andreas.DB.Danzer@bmwgroup.com',
|
||||
// default below
|
||||
// to: 'ermis.wieger@nttdata.com, Andreas.DB.Danzer@bmwgroup.com, OOC-Support@bmwgroup.com, michaela.jaeger@bmw.de, thilo.bindel@bmwgroup.com',
|
||||
// replyTo: 'coco-apm@bmw.de',
|
||||
// TEST
|
||||
to: 'ermis.wieger@nttdata.com, daniel.mikula@nttdata.com',
|
||||
replyTo: 'daniel.mikula@nttdata.com'
|
||||
attachmentsPattern: '*.xlsx'
|
||||
// }
|
||||
// stage('Send report') {
|
||||
// steps {
|
||||
// script {
|
||||
// try {
|
||||
// tmp_body = "Please find the output of the daily QM-Report generated with data from the Dynatrace Datalake attached </br></br>${summary}"
|
||||
// emailext subject: env.JOB_NAME,
|
||||
// mimeType: 'text/html',
|
||||
// body: tmp_body,
|
||||
// //to: 'michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Andreas.DA.Danzer@partner.bmw.de',
|
||||
// //to: 'rene.forstner@nttdata.com, Andreas.DA.Danzer@partner.bmw.de, linnea.bickeboeller@partner.bmwgroup.com',
|
||||
// //to: 'rene.forstner@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de',
|
||||
// //to: 'rene.forstner@nttdata.com, ermis.wieger@nttdata.com, patryk.gudalewicz.bp@nttdata.com',
|
||||
// //to: 'patryk.gudalewicz.bp@nttdata.com',
|
||||
// //to: 'rene.forstner@nttdata.com, ermis.wieger@nttdata.com, arnel.arnautovic@nttdata.com, patryk.gudalewicz.bp@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Andreas.DB.Danzer@bmwgroup.com',
|
||||
|
||||
// // to: 'ermis.wieger@nttdata.com, Andreas.DB.Danzer@bmwgroup.com, OOC-Support@bmwgroup.com, michaela.jaeger@bmw.de, thilo.bindel@bmwgroup.com',
|
||||
// // replyTo: 'coco-apm@bmw.de',
|
||||
|
||||
}
|
||||
catch ( mailExc ){
|
||||
echo "Sending Email Failed: ${mailExc}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
// catch ( mailExc ){
|
||||
// echo "Sending Email Failed: ${mailExc}"
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
post {
|
||||
failure {
|
||||
emailext subject: "${env.JOB_NAME} build ${env.BUILD_ID} failed",
|
||||
body: "QM report failed, see logs for details: ${env.BUILD_URL}",
|
||||
// default below
|
||||
// to: 'BMW.CoCo.Dynatrace@nttdata.com, ermis.wieger@nttdata.com, Andreas.DB.Danzer@bmwgroup.com'
|
||||
// TEST
|
||||
to: 'daniel.mikula@nttdata.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"
|
||||
}
|
||||
// failure {
|
||||
// emailext subject: "${env.JOB_NAME} build ${env.BUILD_ID} failed",
|
||||
// body: "QM report failed, see logs for details: ${env.BUILD_URL}",
|
||||
// // default below
|
||||
// // to: 'BMW.CoCo.Dynatrace@nttdata.com, ermis.wieger@nttdata.com, Andreas.DB.Danzer@bmwgroup.com'
|
||||
// // TEST
|
||||
// to: 'daniel.mikula@nttdata.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()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,10 +70,7 @@ def get_slos(urls_request: typing.Dict) -> typing.Dict:
|
|||
responses = defaultdict(list)
|
||||
for hub in urls_request.keys():
|
||||
for url in urls_request[hub]:
|
||||
response = requests.get(url)
|
||||
# TODO: DEBUG
|
||||
print(response.status_code)
|
||||
print(response)
|
||||
response = requests.get(url, verify=False)
|
||||
if response.status_code == 200:
|
||||
responses[hub].append(response.json())
|
||||
else:
|
||||
|
|
@ -434,9 +431,6 @@ def process_data(data_from_datalake: typing.Dict, slo_parameters: typing.Dict) -
|
|||
# logger.warn(f"{hub} - Incomplete")
|
||||
print(f"{hub} - Incomplete")
|
||||
|
||||
# TODO: remove
|
||||
print(f"data from datalake - {data_from_datalake}")
|
||||
|
||||
for hub in data_from_datalake.keys():
|
||||
|
||||
# only used for checking if all slos are in the report
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
<html><body><style> table, th, td { border: 1px solid black; border-collapse: collapse; padding: 10px; text-align: center; }</style><br><p><b>Processed SLO count: 81</b></p><table><tr><th></th><th>cnprod</th><th>euprod</th><th>naprod</th><th>total</th></tr><tr><td style="background-color:Green;">>= 99</td><td>28</td><td>27</td><td>26</td><td><b>81</b></td></tr><tr><td style="background-color:Orange;">>= 98</td><td>0</td><td>0</td><td>0</td><td><b>0</b></td></tr><tr><td style="background-color:Red;">< 98</td><td>0</td><td>0</td><td>0</td><td><b>0</b></td></tr><tr><td style="background-color:DodgerBlue;">-1</td><td>0</td><td>0</td><td>0</td><td><b>0</b></td></tr></table></body></html>
|
||||
Loading…
Reference in New Issue