diff --git a/jobs/ingress/traefik.hcl b/jobs/ingress/traefik.hcl index 2c830c5..3379f4f 100644 --- a/jobs/ingress/traefik.hcl +++ b/jobs/ingress/traefik.hcl @@ -44,6 +44,10 @@ job "traefik" { "/storage/nomad/traefik/access.log:/access.log", ] } + resources { + cpu = 500 + memory = 1024 + } template { destination = "local/.env" @@ -137,6 +141,12 @@ EOF [tracing] +[metrics] + [metrics.prometheus] + addServicesLabels = true + addRoutersLabels = true + addEntryPointsLabels = true + [accessLog] filePath = "/access.log" EOF @@ -221,6 +231,7 @@ EOF certResolver = "lets-encrypt" {{ end -}} + url = "http://127.0.0.1" # Dummy service - not used EOF } } diff --git a/jobs/monitoring/grafana.hcl b/jobs/monitoring/grafana.hcl new file mode 100644 index 0000000..5a981ae --- /dev/null +++ b/jobs/monitoring/grafana.hcl @@ -0,0 +1,110 @@ +job "grafana" { + datacenters = ["aperture"] + + type = "service" + + group "monitoring" { + network { + port "http" { + to = 3000 + } + port "db" { + to = 5432 + } + } + + service { + name = "grafana" + port = "http" + + check { + type = "http" + path = "/" + interval = "10s" + timeout = "2s" + } + + tags = [ + "traefik.enable=true", + "traefik.http.routers.grafana.entrypoints=web,websecure", + "traefik.http.routers.grafana.rule=Host(`grafana.redbrick.dcu.ie`)", + "traefik.http.routers.grafana.tls=true", + "traefik.http.routers.grafana.tls.certresolver=lets-encrypt", + ] + } + + task "grafana" { + driver = "docker" + user = "1001:1001" + + env { + GF_AUTH_BASIC_ENABLED = "true" + GF_INSTALL_PLUGINS = "grafana-piechart-panel" + GF_SERVER_ROOT_URL = "https://grafana.redbrick.dcu.ie" + } + + 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 = <