|
|
|
@ -18,6 +18,7 @@ from decimal import ROUND_HALF_UP
|
|
|
|
|
|
|
|
|
|
from oslo_config import cfg |
|
|
|
|
from oslo_log import log |
|
|
|
|
from voluptuous import All |
|
|
|
|
from voluptuous import In |
|
|
|
|
from voluptuous import Optional |
|
|
|
|
from voluptuous import Required |
|
|
|
@ -83,7 +84,9 @@ PROMETHEUS_EXTRA_SCHEMA = {
|
|
|
|
|
'changes', 'delta', 'deriv', |
|
|
|
|
'idelta', 'irange', 'irate', |
|
|
|
|
'rate' |
|
|
|
|
]) |
|
|
|
|
]), |
|
|
|
|
Optional('query_prefix', default=''): All(str), |
|
|
|
|
Optional('query_suffix', default=''): All(str), |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -159,6 +162,8 @@ class PrometheusCollector(collector.BaseCollector):
|
|
|
|
|
'range_function') |
|
|
|
|
groupby = self.conf[metric_name].get('groupby', []) |
|
|
|
|
metadata = self.conf[metric_name].get('metadata', []) |
|
|
|
|
query_prefix = self.conf[metric_name]['extra_args']['query_prefix'] |
|
|
|
|
query_suffix = self.conf[metric_name]['extra_args']['query_suffix'] |
|
|
|
|
period = tzutils.diff_seconds(end, start) |
|
|
|
|
time = end |
|
|
|
|
|
|
|
|
@ -198,6 +203,14 @@ class PrometheusCollector(collector.BaseCollector):
|
|
|
|
|
', '.join(groupby + metadata) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Add custom query prefix |
|
|
|
|
if query_prefix: |
|
|
|
|
query = "{0} {1}".format(query_prefix, query) |
|
|
|
|
|
|
|
|
|
# Add custom query suffix |
|
|
|
|
if query_suffix: |
|
|
|
|
query = "{0} {1}".format(query, query_suffix) |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
res = self._conn.get_instant( |
|
|
|
|
query, |
|
|
|
|