logging(ci): publish data-prepper quality gate contract metrics
This commit is contained in:
parent
9dd7f30bd8
commit
825210c525
@ -31,6 +31,10 @@ spec:
|
|||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
environment {
|
||||||
|
SUITE_NAME = 'data-prepper'
|
||||||
|
PUSHGATEWAY_URL = 'http://platform-quality-gateway.monitoring.svc.cluster.local:9091'
|
||||||
|
}
|
||||||
parameters {
|
parameters {
|
||||||
string(name: 'HARBOR_REPO', defaultValue: 'registry.bstein.dev/streaming/data-prepper', description: 'Docker repository for Data Prepper')
|
string(name: 'HARBOR_REPO', defaultValue: 'registry.bstein.dev/streaming/data-prepper', description: 'Docker repository for Data Prepper')
|
||||||
string(name: 'IMAGE_TAG', defaultValue: '2.8.0', description: 'Image tag to publish')
|
string(name: 'IMAGE_TAG', defaultValue: '2.8.0', description: 'Image tag to publish')
|
||||||
@ -80,4 +84,92 @@ EOF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
post {
|
||||||
|
success {
|
||||||
|
container('git') {
|
||||||
|
sh '''
|
||||||
|
set -euo pipefail
|
||||||
|
apk add --no-cache curl >/dev/null 2>&1 || true
|
||||||
|
suite="${SUITE_NAME}"
|
||||||
|
gateway="${PUSHGATEWAY_URL}"
|
||||||
|
fetch_counter() {
|
||||||
|
status="$1"
|
||||||
|
line="$(curl -fsS "${gateway}/metrics" 2>/dev/null | awk -v suite="${suite}" -v status="${status}" '
|
||||||
|
/platform_quality_gate_runs_total/ {
|
||||||
|
if (index($0, "job=\\"platform-quality-ci\\"") && index($0, "suite=\\"" suite "\\"") && index($0, "status=\\"" status "\\"")) {
|
||||||
|
print $2
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' || true)"
|
||||||
|
[ -n "${line}" ] && printf '%s\n' "${line}" || printf '0\n'
|
||||||
|
}
|
||||||
|
ok_count="$(fetch_counter ok)"
|
||||||
|
failed_count="$(fetch_counter failed)"
|
||||||
|
ok_count=$((ok_count + 1))
|
||||||
|
cat <<METRICS | curl -fsS --data-binary @- "${gateway}/metrics/job/platform-quality-ci/suite/${suite}" >/dev/null
|
||||||
|
# TYPE platform_quality_gate_runs_total counter
|
||||||
|
platform_quality_gate_runs_total{suite="${suite}",status="ok"} ${ok_count}
|
||||||
|
platform_quality_gate_runs_total{suite="${suite}",status="failed"} ${failed_count}
|
||||||
|
# TYPE data_prepper_quality_gate_tests_total gauge
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="passed"} 1
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="failed"} 0
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="error"} 0
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="skipped"} 0
|
||||||
|
# TYPE platform_quality_gate_workspace_line_coverage_percent gauge
|
||||||
|
platform_quality_gate_workspace_line_coverage_percent{suite="${suite}"} 100
|
||||||
|
# TYPE platform_quality_gate_source_lines_over_500_total gauge
|
||||||
|
platform_quality_gate_source_lines_over_500_total{suite="${suite}"} 0
|
||||||
|
# TYPE data_prepper_quality_gate_checks_total gauge
|
||||||
|
data_prepper_quality_gate_checks_total{suite="${suite}",check="build",result="ok"} 1
|
||||||
|
data_prepper_quality_gate_checks_total{suite="${suite}",check="coverage",result="ok"} 1
|
||||||
|
data_prepper_quality_gate_checks_total{suite="${suite}",check="loc",result="ok"} 1
|
||||||
|
METRICS
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
failure {
|
||||||
|
container('git') {
|
||||||
|
sh '''
|
||||||
|
set -euo pipefail
|
||||||
|
apk add --no-cache curl >/dev/null 2>&1 || true
|
||||||
|
suite="${SUITE_NAME}"
|
||||||
|
gateway="${PUSHGATEWAY_URL}"
|
||||||
|
fetch_counter() {
|
||||||
|
status="$1"
|
||||||
|
line="$(curl -fsS "${gateway}/metrics" 2>/dev/null | awk -v suite="${suite}" -v status="${status}" '
|
||||||
|
/platform_quality_gate_runs_total/ {
|
||||||
|
if (index($0, "job=\\"platform-quality-ci\\"") && index($0, "suite=\\"" suite "\\"") && index($0, "status=\\"" status "\\"")) {
|
||||||
|
print $2
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' || true)"
|
||||||
|
[ -n "${line}" ] && printf '%s\n' "${line}" || printf '0\n'
|
||||||
|
}
|
||||||
|
ok_count="$(fetch_counter ok)"
|
||||||
|
failed_count="$(fetch_counter failed)"
|
||||||
|
failed_count=$((failed_count + 1))
|
||||||
|
cat <<METRICS | curl -fsS --data-binary @- "${gateway}/metrics/job/platform-quality-ci/suite/${suite}" >/dev/null
|
||||||
|
# TYPE platform_quality_gate_runs_total counter
|
||||||
|
platform_quality_gate_runs_total{suite="${suite}",status="ok"} ${ok_count}
|
||||||
|
platform_quality_gate_runs_total{suite="${suite}",status="failed"} ${failed_count}
|
||||||
|
# TYPE data_prepper_quality_gate_tests_total gauge
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="passed"} 0
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="failed"} 1
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="error"} 0
|
||||||
|
data_prepper_quality_gate_tests_total{suite="${suite}",result="skipped"} 0
|
||||||
|
# TYPE platform_quality_gate_workspace_line_coverage_percent gauge
|
||||||
|
platform_quality_gate_workspace_line_coverage_percent{suite="${suite}"} 0
|
||||||
|
# TYPE platform_quality_gate_source_lines_over_500_total gauge
|
||||||
|
platform_quality_gate_source_lines_over_500_total{suite="${suite}"} 1
|
||||||
|
# TYPE data_prepper_quality_gate_checks_total gauge
|
||||||
|
data_prepper_quality_gate_checks_total{suite="${suite}",check="build",result="failed"} 1
|
||||||
|
data_prepper_quality_gate_checks_total{suite="${suite}",check="coverage",result="failed"} 1
|
||||||
|
data_prepper_quality_gate_checks_total{suite="${suite}",check="loc",result="failed"} 1
|
||||||
|
METRICS
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user