Add Prometheus role

This commit is contained in:
uumas
2023-03-21 01:33:57 +02:00
parent c569974ba7
commit aa7216d6e2
4 changed files with 135 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
---
prometheus_scrape_interval: 5s
prometheus_evaluation_interval: 15s
prometheus_install_grafana: false
prometheus_hcloud_relabel_configs: []

View File

@@ -0,0 +1,73 @@
---
argument_specs:
main:
short_description: Prometheus docker container
options:
prometheus_scrape_interval:
description: Interval how often prometheus will scrape the monitoring targets
type: str
required: false
default: 5s
prometheus_evaluation_interval:
description: Interval how often prometheus will evaluate the scraped metrics against defined conditions
type: str
required: false
default: 15s
prometheus_hcloud_token:
description: Access token for hetzner cloud service discovery. It will be enabled if this variable is defined
type: str
required: false
prometheus_hcloud_relabel_configs:
description: Relabel configs for hcloud
type: list
required: false
default: []
elements: dict
options:
source_labels:
type: list
required: true
elements: str
target_label:
type: str
required: true
replacement:
type: str
required: false
prometheus_install_grafana:
description: If true, installs grafana in the same docker network as prometheus and configures it with prometheus as data source
type: bool
required: false
default: false
# All options after this will be passed directly to the container role
docker_service_suffix:
description: "Passed to container role"
required: false
docker_host_user:
description: "Passed to container role"
required: false
database_passwords:
description: "Passed to container role"
required: false
docker_additional_services:
description: "Passed to container role"
required: false
docker_volume_type:
description: "Passed to container role"
required: false
reverse_proxy_type:
description: "Passed to container role"
required: false
ports:
description: "Passed to container role"
required: false
docker_vhost_domains:
description: "Passed to container role"
required: false
docker_entrypoint:
description: "Passed to container role"
required: false

View File

@@ -0,0 +1,22 @@
---
- name: Prometheus container
import_role:
name: container
vars:
docker_service: prometheus
docker_image: prom/prometheus
reverse_proxy_type: none
docker_volumes:
- name: data
path: /prometheus
- template: prometheus.yml
path: /etc/prometheus/prometheus.yml
- name: Grafana container for prometheus
include_role:
name: grafana
vars:
docker_networks:
- name: prometheus
when: prometheus_install_grafana

View File

@@ -0,0 +1,34 @@
---
# my global config
global:
scrape_interval: {{ prometheus_scrape_interval }}
evaluation_interval: {{ prometheus_evaluation_interval }}
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
{% if prometheus_hcloud_token is defined %}
- job_name: hcloud
hetzner_sd_configs:
- role: hcloud
authorization:
credentials: {{ prometheus_hcloud_token }}
relabel_configs: {{ prometheus_hcloud_relabel_configs }}
{% endif %}