Add option to discard the hostname dimension for http_check plugin
Change-Id: I77fe5541c2ad7d6eae6896625a43c6387c8f2541
diff --git a/collectd/files/collectd_http_check.conf b/collectd/files/collectd_http_check.conf
index d2ff29e..bb19265 100644
--- a/collectd/files/collectd_http_check.conf
+++ b/collectd/files/collectd_http_check.conf
@@ -14,6 +14,9 @@
{%- if params.get('metric_name') %}
MetricName "{{ name }}" "{{ params.metric_name }}"
{%- endif %}
+ {%- if params.get('discard_hostname') %}
+ DiscardHostname "{{ name }}" "{{ params.discard_hostname }}"
+ {%- endif %}
{%- if params.verify is defined %}
Verify "{{ name }}" "{{ params.verify }}"
{%- endif %}
diff --git a/collectd/files/plugin/collectd_http_check.py b/collectd/files/plugin/collectd_http_check.py
index e909eb4..897bae7 100644
--- a/collectd/files/plugin/collectd_http_check.py
+++ b/collectd/files/plugin/collectd_http_check.py
@@ -39,6 +39,7 @@
self.timeout = 3
self.max_retries = 2
self.metric_names = {}
+ self.discard_hostnames = {}
self.interval = base.INTERVAL
self.polling_interval = base.INTERVAL
@@ -60,6 +61,9 @@
self.urls[node.values[0]] = node.values[1]
elif node.key == 'MetricName':
self.metric_names[node.values[0]] = node.values[1]
+ elif node.key == 'DiscardHostname':
+ if node.values[1].lower() == 'true':
+ self.discard_hostnames[node.values[0]] = True
elif node.key == 'ExpectedCode':
self.expected_codes[node.values[0]] = int(node.values[1])
elif node.key == 'ExpectedContent':
@@ -149,7 +153,11 @@
for name, url in self.urls.items():
r = self.check_url(name, url)
if r:
- yield {'meta': {'service': name},
+ meta = {'service': name}
+ if self.discard_hostnames.get(name):
+ meta['discard_hostname'] = True
+
+ yield {'meta': meta,
'values': r,
'plugin': self.metric_names.get(name),
}