add prometheus and grafana
This commit is contained in:
parent
d1ae851fcc
commit
e5ea720753
38
grafana.nomad
Normal file
38
grafana.nomad
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
job "grafana" {
|
||||||
|
datacenters = ["homelab"]
|
||||||
|
type = "service"
|
||||||
|
meta {
|
||||||
|
forcedeploiement = 1
|
||||||
|
}
|
||||||
|
group "grafana" {
|
||||||
|
network {
|
||||||
|
port "http" {
|
||||||
|
to = 3000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service {
|
||||||
|
name = "grafana"
|
||||||
|
port = "http"
|
||||||
|
tags= [
|
||||||
|
"traefik.enable=true",
|
||||||
|
"traefik.http.routers.grafana.entryPoints=websecure",
|
||||||
|
"traefik.http.routers.grafana.rule=Host(`grafana.ducamps.win`)",
|
||||||
|
"traefik.http.routers.grafana.tls.domains[0].sans=grafana.ducamps.win",
|
||||||
|
"traefik.http.routers.grafana.tls.certresolver=myresolver",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
task "dashboard" {
|
||||||
|
driver = "docker"
|
||||||
|
config {
|
||||||
|
image = "grafana/grafana"
|
||||||
|
ports = ["http"]
|
||||||
|
volumes = [
|
||||||
|
"/mnt/diskstation/nomad/grafana/config:/etc/grafana",
|
||||||
|
"/mnt/diskstation/nomad/grafana/lib:/var/lib/grafana"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
88
prometheus.nomad
Normal file
88
prometheus.nomad
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
job "prometheus" {
|
||||||
|
datacenters = ["homelab"]
|
||||||
|
type = "service"
|
||||||
|
|
||||||
|
group "prometheus" {
|
||||||
|
count = 1
|
||||||
|
|
||||||
|
network {
|
||||||
|
port "prometheus_ui" {
|
||||||
|
static = 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
restart {
|
||||||
|
attempts = 2
|
||||||
|
interval = "30m"
|
||||||
|
delay = "15s"
|
||||||
|
mode = "fail"
|
||||||
|
}
|
||||||
|
|
||||||
|
ephemeral_disk {
|
||||||
|
size = 300
|
||||||
|
}
|
||||||
|
|
||||||
|
task "prometheus" {
|
||||||
|
template {
|
||||||
|
change_mode = "noop"
|
||||||
|
destination = "local/prometheus.yml"
|
||||||
|
|
||||||
|
data = <<EOH
|
||||||
|
---
|
||||||
|
global:
|
||||||
|
scrape_interval: 10s
|
||||||
|
evaluation_interval: 10s
|
||||||
|
|
||||||
|
scrape_configs:
|
||||||
|
|
||||||
|
- job_name: 'nomad_metrics'
|
||||||
|
|
||||||
|
consul_sd_configs:
|
||||||
|
- server: 'consul.service.consul:8500'
|
||||||
|
services: ['nomad-client', 'nomad']
|
||||||
|
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: ['__meta_consul_tags']
|
||||||
|
regex: '(.*)http(.*)'
|
||||||
|
action: keep
|
||||||
|
|
||||||
|
scrape_interval: 5s
|
||||||
|
metrics_path: /v1/metrics
|
||||||
|
params:
|
||||||
|
format: ['prometheus']
|
||||||
|
EOH
|
||||||
|
}
|
||||||
|
|
||||||
|
driver = "docker"
|
||||||
|
|
||||||
|
config {
|
||||||
|
image = "prom/prometheus:latest"
|
||||||
|
args = [
|
||||||
|
"--config.file=/etc/prometheus/prometheus.yml",
|
||||||
|
"--storage.tsdb.path=/prometheus",
|
||||||
|
"--storage.tsdb.retention.time=15d",
|
||||||
|
]
|
||||||
|
volumes = [
|
||||||
|
"local/prometheus.yml:/etc/prometheus/prometheus.yml",
|
||||||
|
"/mnt/diskstation/nomad/prometheus:/prometheus"
|
||||||
|
]
|
||||||
|
|
||||||
|
ports = ["prometheus_ui"]
|
||||||
|
}
|
||||||
|
|
||||||
|
service {
|
||||||
|
name = "prometheus"
|
||||||
|
tags = ["urlprefix-/"]
|
||||||
|
port = "prometheus_ui"
|
||||||
|
|
||||||
|
check {
|
||||||
|
name = "prometheus_ui port alive"
|
||||||
|
type = "http"
|
||||||
|
path = "/-/healthy"
|
||||||
|
interval = "10s"
|
||||||
|
timeout = "2s"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user