From 25e758c3aca889272626ff0cd91968ce5476f1d5 Mon Sep 17 00:00:00 2001 From: Aris <64918822+Arisamiga@users.noreply.github.com> Date: Mon, 27 Apr 2026 20:02:55 +0100 Subject: [PATCH 1/2] Grafana Added --- jobs/monitoring/grafana.hcl | 121 ++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 jobs/monitoring/grafana.hcl diff --git a/jobs/monitoring/grafana.hcl b/jobs/monitoring/grafana.hcl new file mode 100644 index 0000000..71c3b1d --- /dev/null +++ b/jobs/monitoring/grafana.hcl @@ -0,0 +1,121 @@ +job "grafana" { + datacenters = ["aperture"] + type = "service" + + meta { + domain = "grafana.redbrick.dcu.ie" + } + + group "monitoring" { + count = 1 + network { + port "http" { + to = 3000 + } + port "db" { + to = 5432 + } + } + + service { + name = "grafana-rb" + port = "http" + + check { + type = "http" + path = "/" + interval = "10s" + timeout = "2s" + } + + tags = [ + "traefik.enable=true", + "traefik.port=${NOMAD_PORT_http}", + "traefik.http.routers.grafanarb.rule=Host(`${NOMAD_META_domain}`)", + "traefik.http.routers.grafanarb.entrypoints=web,websecure", + "traefik.http.routers.grafanarb.tls.certresolver=rb", + "traefik.http.routers.grafanarb.tls=true", + ] + } + + task "grafana" { + driver = "docker" + + config { + image = "grafana/grafana" + ports = ["http"] + + volumes = [ + "/storage/nomad/${NOMAD_JOB_NAME}/${NOMAD_TASK_NAME}:/var/lib/grafana", + "local/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml" + ] + } + + template { + data = < Date: Tue, 5 May 2026 16:13:41 +0100 Subject: [PATCH 2/2] Added wait-for-db integration --- jobs/monitoring/grafana.hcl | 124 ++++++++++++++++++++++++++---------- 1 file changed, 91 insertions(+), 33 deletions(-) diff --git a/jobs/monitoring/grafana.hcl b/jobs/monitoring/grafana.hcl index 71c3b1d..03ab851 100644 --- a/jobs/monitoring/grafana.hcl +++ b/jobs/monitoring/grafana.hcl @@ -6,17 +6,68 @@ job "grafana" { domain = "grafana.redbrick.dcu.ie" } - group "monitoring" { + group "database" { count = 1 + network { - port "http" { - to = 3000 - } port "db" { to = 5432 } } + service { + name = "grafana-db" + port = "db" + + check { + name = "postgres-tcp" + type = "tcp" + port = "db" + interval = "10s" + timeout = "2s" + } + } + + task "db" { + driver = "docker" + kill_signal = "SIGTERM" # SIGTERM instead of SIGKILL so database can shutdown safely + kill_timeout = "30s" + shutdown_delay = "5s" + + config { + image = "postgres:17-alpine" + ports = ["db"] + + volumes = [ + "/storage/nomad/${NOMAD_JOB_NAME}/${NOMAD_TASK_NAME}:/var/lib/postgresql/data" + ] + } + + template { + data = <