diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2020-10-08 19:41:09 +0200 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2020-10-14 13:56:44 +0200 |
commit | 514f20a9b53ea575078ab9a413d38646bb48aa0b (patch) | |
tree | 7336da9f1374927b5d76dd1967d6910957a36eb6 /src | |
parent | 038150a3d0f89696726c540b359c0b2317a7a740 (diff) | |
download | cuirass-514f20a9b53ea575078ab9a413d38646bb48aa0b.tar cuirass-514f20a9b53ea575078ab9a413d38646bb48aa0b.tar.gz |
Update metrics in a single transaction.
* src/cuirass/metrics.scm (db-update-metrics): Update all metrics in a single
transaction.
Diffstat (limited to 'src')
-rw-r--r-- | src/cuirass/metrics.scm | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/src/cuirass/metrics.scm b/src/cuirass/metrics.scm index fa42e43..f244c01 100644 --- a/src/cuirass/metrics.scm +++ b/src/cuirass/metrics.scm @@ -328,41 +328,43 @@ timestamp) VALUES (" (define (db-update-metrics) "Compute and update all available metrics in database." - (define specifications - (map (cut assq-ref <> #:name) (db-get-specifications))) + (with-db-worker-thread db + ;; We can not update all evaluations metrics for performance reasons. + ;; Limit to the evaluations that were added during the past three days. + (let ((specifications + (map (cut assq-ref <> #:name) (db-get-specifications))) + (evaluations (db-latest-evaluations))) + (sqlite-exec db "BEGIN TRANSACTION;") - ;; We can not update all evaluations metrics for performance reasons. Limit - ;; to the evaluations that were added during the past three days. - (define evaluations - (db-latest-evaluations)) + (db-update-metric 'builds-per-day) + (db-update-metric 'new-derivations-per-day) + (db-update-metric 'pending-builds) - (db-update-metric 'builds-per-day) - (db-update-metric 'new-derivations-per-day) - (db-update-metric 'pending-builds) + ;; Update specification related metrics. + (for-each (lambda (spec) + (db-update-metric + 'average-10-last-eval-duration-per-spec spec) + (db-update-metric + 'average-100-last-eval-duration-per-spec spec) + (db-update-metric + 'average-eval-duration-per-spec spec) - ;; Update specification related metrics. - (for-each (lambda (spec) - (db-update-metric - 'average-10-last-eval-duration-per-spec spec) - (db-update-metric - 'average-100-last-eval-duration-per-spec spec) - (db-update-metric - 'average-eval-duration-per-spec spec) + (db-update-metric + 'percentage-failure-10-last-eval-per-spec spec) + (db-update-metric + 'percentage-failure-100-last-eval-per-spec spec) + (db-update-metric + 'percentage-failed-eval-per-spec spec)) + specifications) - (db-update-metric - 'percentage-failure-10-last-eval-per-spec spec) - (db-update-metric - 'percentage-failure-100-last-eval-per-spec spec) - (db-update-metric - 'percentage-failed-eval-per-spec spec)) - specifications) + ;; Update evaluation related metrics. + (for-each (lambda (evaluation) + (db-update-metric + 'average-eval-build-start-time evaluation) + (db-update-metric + 'average-eval-build-complete-time evaluation) + (db-update-metric + 'evaluation-completion-speed evaluation)) + evaluations) - ;; Update evaluation related metrics. - (for-each (lambda (evaluation) - (db-update-metric - 'average-eval-build-start-time evaluation) - (db-update-metric - 'average-eval-build-complete-time evaluation) - (db-update-metric - 'evaluation-completion-speed evaluation)) - evaluations)) + (sqlite-exec db "COMMIT;")))) |