This repository was archived by the owner on Mar 6, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 5 files changed +69
-9
lines changed Expand file tree Collapse file tree 5 files changed +69
-9
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,19 @@ All variables you can see [here](defaults/main.yml).
37
37
38
38
This role doesn't have dependencies.
39
39
40
+ ## Defining alerting rules files
41
+
42
+ Put the rules files to rules foleder
43
+
44
+ Alerting rules are defined in the following syntax:
45
+ ` ` ` yaml
46
+ ALERT <alert name>
47
+ IF <expression>
48
+ [ FOR <duration> ]
49
+ [ LABELS <label set> ]
50
+ [ ANNOTATIONS <label set> ]
51
+ ```
52
+
40
53
## Example Playbook
41
54
``` yaml
42
55
---
Original file line number Diff line number Diff line change @@ -20,16 +20,16 @@ prometheus_bin_dir: "{{ prometheus_root_dir }}/current"
20
20
prometheus_rules_dir : " {{ prometheus_config_dir }}/rules"
21
21
prometheus_file_sd_config_dir : " {{ prometheus_config_dir }}/tgroups"
22
22
23
- prometheus_rules_src_dir : " {{ playbook_dir }}/rules"
24
- # prometheus_config_parts_src_dir: "{{ playbook_dir }}/../environments/main_server/files"
25
- # prometheus_tgroups_src_dir: "{{ playbook_dir }}/files/tgroups"
23
+ # prometheus_rules_src_dir: "{{ playbook_dir }}/../files /rules"
24
+ # prometheus_config_parts_src_dir: "{{ playbook_dir }}/../environments/main_server/files"
25
+ # prometheus_tgroups_src_dir: "{{ playbook_dir }}/files/tgroups"
26
26
27
27
prometheus_config_dir : /etc/prometheus
28
28
prometheus_pid_path : /var/run/prometheus.pid
29
29
prometheus_db_dir : /var/lib/prometheus
30
30
# prometheus_db_dir: /home/soi/prometheus
31
31
32
- prometheus_rules_files : []
32
+ prometheus_rules_files : [alert.rules ]
33
33
34
34
prometheus_web_listen_address : " 0.0.0.0:9090"
35
35
prometheus_web_external_url : ' http://localhost:9090/'
Original file line number Diff line number Diff line change
1
+ # Alert for any instance that is unreachable for >5 minutes.
2
+ ALERT InstanceDown
3
+ IF up == 0
4
+ FOR 5m
5
+ LABELS { severity = "slack" }
6
+ ANNOTATIONS {
7
+ summary = "Instance {{ $labels.instance }} down",
8
+ description = "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.",
9
+ }
Original file line number Diff line number Diff line change 1
1
---
2
+ # - name: register rules files exists on server
3
+ # shell: "ls -1 {{ prometheus_rules_dir }}"
4
+ # register: rules_content
5
+ # changed_when: False
6
+ #
7
+ # - name: delete unmanaged rules files
8
+ # file:
9
+ # path: "{{ prometheus_rules_dir }}/{{ item }}"
10
+ # state: absent
11
+ # with_items: "{{ rules_content.stdout_lines | difference(prometheus_rules_files) }}"
12
+ # notify:
13
+ # - reload prometheus
14
+ #
15
+ # - name: copy rule files from playbook directory
16
+ # copy:
17
+ # src: "{{ prometheus_rules_src_dir }}/{{ item }}"
18
+ # dest: "{{ prometheus_rules_dir }}/{{ item }}"
19
+ # owner: "{{ prometheus_user }}"
20
+ # group: "{{ prometheus_group }}"
21
+ # mode: 0644
22
+ # validate: "{{ prometheus_bin_dir }}/promtool check-rules %s"
23
+ # with_items:
24
+ # - "{{ prometheus_rules_files }}"
25
+ # notify:
26
+ # - reload prometheus
27
+ - name : copy rule files to prometheus
28
+ copy :
29
+ src : " rules/"
30
+ dest : " {{ prometheus_rules_dir }}"
31
+ owner : " {{ prometheus_user }}"
32
+ group : " {{ prometheus_group }}"
33
+ mode : 0644
34
+ validate : " {{ prometheus_bin_dir }}/promtool check-rules %s"
35
+ notify :
36
+ - reload prometheus
37
+
38
+
2
39
- name : configure prometheus
3
40
tags :
4
41
- config
13
50
notify :
14
51
- reload prometheus
15
52
53
+
Original file line number Diff line number Diff line change @@ -14,12 +14,12 @@ global:
14
14
{% endfor %}
15
15
{% endif %}
16
16
17
- # Load and evaluate rules in this file every 'evaluation_interval' seconds. This field may be repeated.
18
- {% if prometheus_rule_files is defined and prometheus_rule_files | count > 0 %}
17
+ {% if prometheus_rules_files is defined %}
18
+ # Rule files specifies a list of files from which rules are read.
19
19
rule_files:
20
- {% for file in prometheus_rule_files %}
21
- - ' {{ file }}'
22
- {% endfor %}
20
+ {% for dest in prometheus_rules_files %}
21
+ - {{ prometheus_rules_dir }}/{{ dest }}
22
+ {% endfor %}
23
23
{% endif %}
24
24
25
25
scrape_configs:
You can’t perform that action at this time.
0 commit comments