diff --git a/monitoring/act.tf b/monitoring/act.tf new file mode 100644 index 0000000..8f845d3 --- /dev/null +++ b/monitoring/act.tf @@ -0,0 +1,16 @@ +data "docker_registry_image" "act-exporter" { + name = "captn3m0/prometheus-act-exporter:latest" +} + +resource "docker_container" "act-exporter" { + name = "act-exporter" + image = "${docker_image.act-exporter.latest}" + + entrypoint = ["/usr/local/bin/node", "server.js"] + + networks = ["${docker_network.monitoring.id}"] + + restart = "unless-stopped" + destroy_grace_seconds = 10 + must_run = true +} diff --git a/monitoring/cadvisor.tf b/monitoring/cadvisor.tf index e80fe5d..4a4f1f1 100644 --- a/monitoring/cadvisor.tf +++ b/monitoring/cadvisor.tf @@ -30,7 +30,7 @@ resource "docker_container" "cadvisor" { container_path = "/var/run" } - networks = ["${var.traefik-network-id}"] + networks = ["${var.traefik-network-id}", "${docker_network.monitoring.id}"] labels = "${merge( var.traefik-labels, map( diff --git a/monitoring/config/prometheus.yml b/monitoring/config/prometheus.yml index 691f46d..199e00e 100644 --- a/monitoring/config/prometheus.yml +++ b/monitoring/config/prometheus.yml @@ -36,6 +36,7 @@ scrape_configs: - job_name: 'act' scrape_interval: 5m + scrape_timeout: 1m static_configs: - targets: ['act-exporter:3000'] diff --git a/monitoring/grafana.tf b/monitoring/grafana.tf index cdfb144..1db6d61 100644 --- a/monitoring/grafana.tf +++ b/monitoring/grafana.tf @@ -16,17 +16,16 @@ resource "docker_container" "grafana" { container_path = "/var/lib/grafana" } - links = ["${docker_container.prometheus.name}"] - networks = ["${var.traefik-network-id}"] + networks = ["${var.traefik-network-id}", "${docker_network.monitoring.id}"] env = [ "GF_SERVER_ROOT_URL=https://grafana.${var.domain}", "GF_AUTH_ANONYMOUS_ENABLED=true", "GF_AUTH_ANONYMOUS_ORG_NAME=Tatooine", - ] - # Keep this disabled unless bringing up a new grafana instance - # "GF_SECURITY_ADMIN_PASSWORD=${var.gf-security-admin-password}", + # Keep this disabled unless bringing up a new grafana instance + "GF_SECURITY_ADMIN_PASSWORD=${var.gf-security-admin-password}", + ] restart = "unless-stopped" destroy_grace_seconds = 10 diff --git a/monitoring/network.tf b/monitoring/network.tf new file mode 100644 index 0000000..aa53012 --- /dev/null +++ b/monitoring/network.tf @@ -0,0 +1,5 @@ +resource "docker_network" "monitoring" { + name = "monitoring" + driver = "bridge" + internal = true +} diff --git a/monitoring/nodeexporter.tf b/monitoring/nodeexporter.tf index 9ac623f..a8365c4 100644 --- a/monitoring/nodeexporter.tf +++ b/monitoring/nodeexporter.tf @@ -24,6 +24,8 @@ resource "docker_container" "nodeexporter" { "--collector.filesystem.ignored-mount-points=\"^/(sys|proc|dev|host|etc)($$|/)\"", ] + networks = ["${docker_network.monitoring.id}"] + restart = "unless-stopped" destroy_grace_seconds = 10 must_run = true diff --git a/monitoring/prometheus.tf b/monitoring/prometheus.tf index d023dd7..b61c253 100644 --- a/monitoring/prometheus.tf +++ b/monitoring/prometheus.tf @@ -29,13 +29,8 @@ resource "docker_container" "prometheus" { file = "/etc/prometheus/prometheus.yml" } - // TODO: Use network instead - links = [ - "${docker_container.nodeexporter.name}", - "${docker_container.cadvisor.name}", - "${docker_container.speedtest.name}", - "${docker_container.act-exporter.name}", - "${var.links-traefik}", + networks = [ + "${docker_network.monitoring.id}", ] restart = "unless-stopped" diff --git a/monitoring/speedtest.tf b/monitoring/speedtest.tf index 67531df..dd46197 100644 --- a/monitoring/speedtest.tf +++ b/monitoring/speedtest.tf @@ -5,6 +5,8 @@ resource "docker_container" "speedtest" { name = "speedtest" image = "${docker_image.speedtest.latest}" + networks = ["${docker_network.monitoring.id}"] + restart = "unless-stopped" destroy_grace_seconds = 10 must_run = true