update
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
services:
|
||||
<< service_name >>:
|
||||
image: docker.io/prom/prometheus:v3.11.3
|
||||
restart: << restart_policy >>
|
||||
command:
|
||||
- --config.file=/etc/prometheus/prometheus.yaml
|
||||
- --storage.tsdb.retention.time=<< metrics_retention_time >>
|
||||
<%- if metrics_retention_size != '0' %>
|
||||
- --storage.tsdb.retention.size=<< metrics_retention_size >>
|
||||
<%- endif %>
|
||||
<%- if metrics_enable_remote_write %>
|
||||
- --web.enable-remote-write-receiver
|
||||
<%- endif %>
|
||||
<%- if traefik_enabled %>
|
||||
<%- if traefik_tls_enabled %>
|
||||
- --web.external-url=https://<< traefik_host >>.<< traefik_domain >>
|
||||
<%- else %>
|
||||
- --web.external-url=http://<< traefik_host >>.<< traefik_domain >>
|
||||
<%- endif %>
|
||||
<%- endif %>
|
||||
<%- if not traefik_enabled %>
|
||||
ports:
|
||||
- "<< ports_http >>:9090"
|
||||
<%- endif %>
|
||||
volumes:
|
||||
- << service_name >>_data:/prometheus
|
||||
- ./config/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
|
||||
<%- if traefik_enabled %>
|
||||
networks:
|
||||
<< traefik_network >>:
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=<< traefik_network >>
|
||||
- traefik.http.services.<< service_name >>_web.loadBalancer.server.port=9090
|
||||
- traefik.http.routers.<< service_name >>_http.service=<< service_name >>_web
|
||||
- traefik.http.routers.<< service_name >>_http.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
||||
- traefik.http.routers.<< service_name >>_http.entrypoints=<< traefik_entrypoint >>
|
||||
<%- if traefik_tls_enabled %>
|
||||
- traefik.http.routers.<< service_name >>_https.service=<< service_name >>_web
|
||||
- traefik.http.routers.<< service_name >>_https.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
||||
- traefik.http.routers.<< service_name >>_https.entrypoints=<< traefik_tls_entrypoint >>
|
||||
- traefik.http.routers.<< service_name >>_https.tls=true
|
||||
- traefik.http.routers.<< service_name >>_https.tls.certresolver=<< traefik_tls_certresolver >>
|
||||
<%- endif %>
|
||||
<%- endif %>
|
||||
|
||||
volumes:
|
||||
<< service_name >>_data:
|
||||
driver: local
|
||||
|
||||
<%- if traefik_enabled %>
|
||||
networks:
|
||||
<< traefik_network >>:
|
||||
external: true
|
||||
<%- endif %>
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
---
|
||||
global:
|
||||
scrape_interval: 15s # By default, scrape targets every 15 seconds.
|
||||
|
||||
# Attach these labels to any time series or alerts when communicating with
|
||||
# external systems (federation, remote storage, Alertmanager).
|
||||
# external_labels:
|
||||
# monitor: 'codelab-monitor'
|
||||
|
||||
# A scrape configuration containing exactly one endpoint to scrape:
|
||||
# Here it's Prometheus itself.
|
||||
scrape_configs:
|
||||
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
|
||||
- job_name: 'prometheus'
|
||||
# Override the global default and scrape targets from this job every 5 seconds.
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
# Example job for node_exporter
|
||||
# - job_name: 'node_exporter'
|
||||
# static_configs:
|
||||
# - targets: ['node_exporter:9100']
|
||||
|
||||
# Example job for cadvisor
|
||||
# - job_name: 'cadvisor'
|
||||
# static_configs:
|
||||
# - targets: ['cadvisor:8080']
|
||||
@@ -0,0 +1,191 @@
|
||||
{
|
||||
"slug": "prometheus",
|
||||
"kind": "compose",
|
||||
"metadata": {
|
||||
"name": "Prometheus",
|
||||
"description": "Open-source systems monitoring and alerting toolkit. Collects and stores metrics as time series data, with a powerful query language (PromQL) and integration with visualization tools like Grafana.",
|
||||
"tags": [
|
||||
"traefik",
|
||||
"authentik"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "prometheus"
|
||||
},
|
||||
"draft": false,
|
||||
"version": {
|
||||
"name": "v3.11.3",
|
||||
"source_dep_name": "docker.io/prom/prometheus",
|
||||
"source_dep_version": "v3.11.3"
|
||||
}
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"title": "General",
|
||||
"name": "general",
|
||||
"items": [
|
||||
{
|
||||
"name": "service_name",
|
||||
"type": "str",
|
||||
"title": "Service Name",
|
||||
"required": false,
|
||||
"default": "prometheus",
|
||||
"config": {
|
||||
"placeholder": "prometheus"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "restart_policy",
|
||||
"type": "enum",
|
||||
"title": "Restart Policy",
|
||||
"required": true,
|
||||
"default": "unless-stopped",
|
||||
"config": {
|
||||
"options": [
|
||||
"unless-stopped",
|
||||
"always",
|
||||
"on-failure",
|
||||
"no"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Metrics & Storage",
|
||||
"name": "metrics",
|
||||
"items": [
|
||||
{
|
||||
"name": "metrics_retention_time",
|
||||
"type": "str",
|
||||
"title": "Retention Time",
|
||||
"required": false,
|
||||
"default": "15d",
|
||||
"description": "How long to retain samples (e.g., 15d, 30d, 1y)",
|
||||
"config": {
|
||||
"placeholder": "15d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "metrics_retention_size",
|
||||
"type": "str",
|
||||
"title": "Retention Size",
|
||||
"required": false,
|
||||
"default": "0",
|
||||
"description": "Maximum storage size (e.g., 5GB, 10GB, 1TB)",
|
||||
"config": {
|
||||
"placeholder": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "metrics_enable_remote_write",
|
||||
"type": "bool",
|
||||
"title": "Remote Write Receiver",
|
||||
"required": false,
|
||||
"default": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Ports",
|
||||
"name": "ports",
|
||||
"items": [
|
||||
{
|
||||
"name": "ports_http",
|
||||
"type": "str",
|
||||
"title": "HTTP Port",
|
||||
"required": false,
|
||||
"default": 9090,
|
||||
"config": {
|
||||
"placeholder": "9090"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Traefik",
|
||||
"name": "traefik",
|
||||
"toggle": "traefik_enabled",
|
||||
"items": [
|
||||
{
|
||||
"name": "traefik_enabled",
|
||||
"type": "bool",
|
||||
"title": "Traefik",
|
||||
"required": false,
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "traefik_host",
|
||||
"type": "str",
|
||||
"title": "Host",
|
||||
"required": true,
|
||||
"config": {
|
||||
"placeholder": "prometheus"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_domain",
|
||||
"type": "str",
|
||||
"title": "Domain",
|
||||
"required": true,
|
||||
"config": {
|
||||
"placeholder": "home.arpa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_entrypoint",
|
||||
"type": "str",
|
||||
"title": "Entrypoint",
|
||||
"required": true,
|
||||
"default": "web",
|
||||
"config": {
|
||||
"placeholder": "web"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_network",
|
||||
"type": "str",
|
||||
"title": "Network",
|
||||
"required": true,
|
||||
"default": "traefik",
|
||||
"config": {
|
||||
"placeholder": "traefik"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_tls_enabled",
|
||||
"type": "bool",
|
||||
"title": "TLS",
|
||||
"required": false,
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "traefik_tls_entrypoint",
|
||||
"type": "str",
|
||||
"title": "TLS Entrypoint",
|
||||
"required": true,
|
||||
"default": "websecure",
|
||||
"config": {
|
||||
"placeholder": "websecure"
|
||||
},
|
||||
"needs": [
|
||||
"traefik_tls_enabled=true"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "traefik_tls_certresolver",
|
||||
"type": "str",
|
||||
"title": "Cert Resolver",
|
||||
"required": true,
|
||||
"default": "cloudflare",
|
||||
"config": {
|
||||
"placeholder": "cloudflare"
|
||||
},
|
||||
"needs": [
|
||||
"traefik_tls_enabled=true"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user