Skip to content

Commit

Permalink
Test query_metric_stats and give it two assisting functions
Browse files Browse the repository at this point in the history
  • Loading branch information
burmanm committed Feb 23, 2017
1 parent a322f99 commit cb6d8f5
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
11 changes: 11 additions & 0 deletions hawkular/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,4 +343,15 @@ def create_metric(metric_type, metric_id, data):
data = [data]

return { 'type': metric_type,'id': metric_id, 'data': data }

def create_percentiles_filter(*percentiles):
"""
Create percentiles filter from a list of float64 percentile values
"""
return ','.join("%s" % p for p in percentiles)

def create_tags_filter(**tags):
"""
Transform a set of parameters to a tag query language filter
"""
return HawkularMetricsClient._transform_tags(**tags)
22 changes: 22 additions & 0 deletions tests/test_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,28 @@ def test_query_options(self):
d = self.client.query_metric(MetricType.Gauge, 'test.query.gauge.1', start=(t - 1000))
self.assertEqual(1, len(d))

def test_stats_queries(self):
self.client.create_metric_definition(MetricType.Gauge, 'test.buckets.1', units='bytes', env='unittest')
self.client.create_metric_definition(MetricType.Gauge, 'test.buckets.2', units='bytes', env='unittest')

t = time_millis()
dps = []

for i in range(0, 10):
t = t - 1000
val = 1.45 * i
dps.append(create_datapoint(val, timestamp=t))

self.client.put(create_metric(MetricType.Gauge, 'test.buckets.1', dps))
self.client.put(create_metric(MetricType.Gauge, 'test.buckets.2', [create_datapoint(2.4)]))

# Read single stats bucket
bp = self.client.query_metric_stats(MetricType.Gauge, 'test.buckets.1', buckets=1, tags=create_tags_filter(units='bytes', env='unittest'), percentiles=create_percentiles_filter(90.0, 99.0))

self.assertEqual(1, len(bp), "Only one bucket was requested")
self.assertEqual(10, bp[0]['samples'])
self.assertEqual(2, len(bp[0]['percentiles']))

def test_tenant_changing(self):
self.client.create_metric_definition(MetricType.Availability, 'test.tenant.avail.1')
# Fetch metrics and check that it did appear
Expand Down

0 comments on commit cb6d8f5

Please sign in to comment.