summaryrefslogtreecommitdiff
path: root/roles/monitoring/grafana/filter_plugins/grafana.py
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2024-06-19 21:08:54 +0200
committerChristian Pointner <equinox@spreadspace.org>2024-06-19 21:08:54 +0200
commit02fa342e7d98365b7bde8a390e0432249aaf12a1 (patch)
tree875d98e8ab02cf8cb9565b05f81c207bab7ea0f4 /roles/monitoring/grafana/filter_plugins/grafana.py
parentprometheus: revamp labels for metrcis from blackbox exporter (diff)
grafana: create new dashboards for revamped blackbox exporter metric labels
Diffstat (limited to 'roles/monitoring/grafana/filter_plugins/grafana.py')
-rw-r--r--roles/monitoring/grafana/filter_plugins/grafana.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/roles/monitoring/grafana/filter_plugins/grafana.py b/roles/monitoring/grafana/filter_plugins/grafana.py
index 750dc46d..9fb78734 100644
--- a/roles/monitoring/grafana/filter_plugins/grafana.py
+++ b/roles/monitoring/grafana/filter_plugins/grafana.py
@@ -1,6 +1,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
+import os
from functools import partial
from ansible import errors
@@ -22,10 +23,40 @@ def resolve_grafana_url(url, config):
raise errors.AnsibleFilterError("resolve_grafana_url(): %s" % str(e))
+def grafana_dashboard_subdirs(dashboards):
+ try:
+ dirs = []
+ for dashboard in dashboards:
+ if 'file' in dashboard:
+ if '/' in dashboard['file']:
+ dirs.append(os.path.dirname(dashboard['file']))
+ else:
+ if '/' in dashboard['name']:
+ dirs.append(os.path.dirname(dashboard['name']))
+ return dirs
+ except Exception as e:
+ raise errors.AnsibleFilterError("grafana_dashboard_subdirs(): %s" % str(e))
+
+
+def grafana_dashboard_dest(dashboard):
+ try:
+ key = 'name'
+ if 'file' in dashboard:
+ key = 'file'
+
+ if '/' in dashboard[key]:
+ return "%s/%s_%s" % (os.path.dirname(dashboard[key]), dashboard['datasource'], os.path.basename(dashboard[key]))
+ return "%s_%s" % (dashboard['datasource'], dashboard[key])
+ except Exception as e:
+ raise errors.AnsibleFilterError("grafana_dashboard_dest(): %s" % str(e))
+
+
class FilterModule(object):
filter_map = {
'resolve_grafana_url': resolve_grafana_url,
+ 'grafana_dashboard_subdirs': grafana_dashboard_subdirs,
+ 'grafana_dashboard_dest': grafana_dashboard_dest,
}
def filters(self):