summaryrefslogtreecommitdiff
path: root/roles/monitoring
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-10-26 12:24:44 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-10-26 12:24:44 +0200
commita89e88a786dc1fbe3f6c49f24388da33d6703c1f (patch)
tree85f98aaeb3ecabf9e4bb92064bd2a0a392c68bc4 /roles/monitoring
parentprometheus: scrape exporter running on server using localhost address (diff)
installing grafana dashboards works now
Diffstat (limited to 'roles/monitoring')
-rw-r--r--roles/monitoring/grafana/defaults/main.yml15
-rw-r--r--roles/monitoring/grafana/tasks/main.yml29
2 files changed, 35 insertions, 9 deletions
diff --git a/roles/monitoring/grafana/defaults/main.yml b/roles/monitoring/grafana/defaults/main.yml
index fad27b4a..f2149dd5 100644
--- a/roles/monitoring/grafana/defaults/main.yml
+++ b/roles/monitoring/grafana/defaults/main.yml
@@ -36,6 +36,15 @@ grafana_datasources: []
# tlsSkipVerify: true
grafana_dashboards: []
- # - node-full
- # - chronyd
- # - environment-sensors
+# - file: node-full
+# datasource: "Prometheus"
+# - file: chronyd
+# datasource: "Prometheus"
+# - file: environment-sensors
+# datasource: "Prometheus"
+# - content: '... json-data ...'
+# name: bar
+# datasource: "Graphite"
+# - id: 19
+# revision: 3
+# datasource: "Foo"
diff --git a/roles/monitoring/grafana/tasks/main.yml b/roles/monitoring/grafana/tasks/main.yml
index 46130882..8b1db9c6 100644
--- a/roles/monitoring/grafana/tasks/main.yml
+++ b/roles/monitoring/grafana/tasks/main.yml
@@ -86,14 +86,31 @@
group: grafana
mode: 0750
- ## TODO: fix datasource selection
-- name: install
- loop: "{{ grafana_dashboards }}"
+- name: install dashboards from file
+ loop: "{{ grafana_dashboards | selectattr('file', 'defined') }}"
+ loop_control:
+ label: "{{ item.file }} -> {{ item.datasource }}"
+ copy:
+ content: "{{ lookup('file', 'dashboard-'+item.file+'.json') | regex_replace('\"(?:\\${)?DS_[A-Z0-9_-]+(?:})?\"', '\"'+item.datasource+'\"') }}\n"
+ dest: "/var/lib/grafana/dashboards/ansible/{{ item.datasource }}_{{ item.file }}.json"
+
+- name: install dashboards from content
+ loop: "{{ grafana_dashboards | selectattr('content', 'defined') }}"
+ loop_control:
+ label: "{{ item.name }} -> {{ item.datasource }}"
copy:
- src: "dashboard-{{ item }}.json"
- dest: "/var/lib/grafana/dashboards/ansible/{{ item }}.json"
+ content: "{{ item.content | regex_replace('\"(?:\\${)?DS_[A-Z0-9_-]+(?:})?\"', '\"'+item.datasource+'\"') }}\n"
+ dest: "/var/lib/grafana/dashboards/ansible/{{ item.datasource }}_{{ item.name }}.json"
+
+ ## TODO: implement this
+- name: install dashboards from grafana.com
+ loop: "{{ grafana_dashboards | selectattr('id', 'defined') }}"
+ loop_control:
+ label: "https://grafana.com/api/dashboards/{{ item.id }} -> {{ item.datasource }}"
+ debug:
+ msg: 'installing dashboards from grafana.com is not yet supported!'
-- name: make sure grafan-server is enabled and started
+- name: make sure grafana-server is enabled and started
systemd:
name: grafana-server
state: started