diff --git a/.gitignore b/.gitignore index dfbfb23..ed7cd31 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ public/js/ .eastwood +.envrc diff --git a/infrastructure/backup/image/Dockerfile b/infrastructure/backup/image/Dockerfile index 59a99c5..564b1ee 100644 --- a/infrastructure/backup/image/Dockerfile +++ b/infrastructure/backup/image/Dockerfile @@ -1,4 +1,4 @@ -FROM domaindrivenarchitecture/dda-backup:5.3.0 +FROM domaindrivenarchitecture/dda-backup:5.4.0 ADD resources /tmp RUN /tmp/install.bb diff --git a/infrastructure/backup/image/resources/backup.bb b/infrastructure/backup/image/resources/backup.bb index 6509399..f139424 100755 --- a/infrastructure/backup/image/resources/backup.bb +++ b/infrastructure/backup/image/resources/backup.bb @@ -5,6 +5,7 @@ '[dda.backup.config :as cfg] '[dda.backup.restic :as rc] '[dda.backup.postgresql :as pg] + '[dda.backup.monitoring :as mon] '[dda.backup.backup :as bak]) (def config (cfg/read-config "/usr/local/bin/config.edn")) @@ -24,6 +25,13 @@ (bak/backup-file! (:file-config config)) (bak/backup-db! (:db-config config))) -(prepare!) -(restic-repo-init!) -(restic-backup!) + +(try + (restic-repo-init!) + (mon/backup-start-metrics! (:db-config config)) + (prepare!) + (restic-repo-init!) + (restic-backup!) + (mon/backup-success-metrics! (:db-config config)) + (catch Exception e + (mon/backup-fail-metrics! (:db-config config)))) diff --git a/infrastructure/backup/image/resources/config.edn b/infrastructure/backup/image/resources/config.edn index 26d9fa1..3ed839a 100644 --- a/infrastructure/backup/image/resources/config.edn +++ b/infrastructure/backup/image/resources/config.edn @@ -1,12 +1,14 @@ -{:restic-repo {:password-file #env-or-file "RESTIC_PASSWORD_FILE" - :restic-repository #env-or-file "RESTIC_REPOSITORY"} +{:monitoring {:namespace "forgejo"} + + :restic-repo #merge [#ref [:monitoring] + {:password-file #env-or-file "RESTIC_PASSWORD_FILE" + :restic-repository #env-or-file "RESTIC_REPOSITORY"}] :file-config #merge [#ref [:restic-repo] {:backup-path "files" :execution-directory "/var/backups/" :files ["gitea/" "git/repositories/"]}] - :db-config #merge [#ref [:restic-repo] {:backup-path "pg-database" :pg-host #env-or-file "POSTGRES_SERVICE" diff --git a/infrastructure/backup/image/resources/install.bb b/infrastructure/backup/image/resources/install.bb index 3f96494..301e714 100755 --- a/infrastructure/backup/image/resources/install.bb +++ b/infrastructure/backup/image/resources/install.bb @@ -14,4 +14,5 @@ (in/install! "list-snapshots.bb") (in/install! "change-password.bb") (in/install! "wait.bb") +(in/install! "monitoring.bb") (ub/cleanup-container!) \ No newline at end of file diff --git a/infrastructure/backup/image/resources/monitoring.bb b/infrastructure/backup/image/resources/monitoring.bb new file mode 100644 index 0000000..b963e93 --- /dev/null +++ b/infrastructure/backup/image/resources/monitoring.bb @@ -0,0 +1,11 @@ +#!/usr/bin/env bb + +(require + '[dda.backup.monitoring :as mon]) + +(def config {:metrics {:kube_job_status_active 0 + :kube_job_status_failed 1 + :kube_job_status_succeeded 0 + :kube_job_status_start_time (/ (System/currentTimeMillis) 1000)}}) + +(mon/send-metrics! config) \ No newline at end of file