blob: 2d16c497ad31e01ccc3f2499c02522c518cae7e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
"""Generic host utility functions.
Generic utility functions not specifc to a larger suite of tools.
For example, not specific to OCP, Gluster, Heketi, etc.
"""
import random
import string
from prometheus_client.parser import text_string_to_metric_families
def get_random_str(size=14):
chars = string.ascii_lowercase + string.digits
return ''.join(random.choice(chars) for _ in range(size))
def parse_prometheus_data(text):
"""Parse prometheus-formatted text to the python objects
Args:
text (str): prometheus-formatted data
Returns:
dict: parsed data as python dictionary
"""
metrics = {}
for family in text_string_to_metric_families(text):
for sample in family.samples:
key, data, val = (sample.name, sample.labels, sample.value)
if data.keys():
data['value'] = val
if key in metrics.keys():
metrics[key].append(data)
else:
metrics[key] = [data]
else:
metrics[key] = val
return metrics
|