在Python中动态创建变量并将其分配给Prometheus指标

时间:2019-02-05 23:45:55

标签: python prometheus

我正在尝试遍历列表并获取密钥和我需要的相应值,例如categorycurrent_severityevent,{{1 }}和component_name

我面临的挑战是,列表的内容可能会更改,例如将保持不变,但节数可能更少,为零或更多。所以我需要更动态的东西。

我需要将动态创建的变量分配给普罗米修斯指标,这也需要保持动态。

我试图创建这样的动态变量,它可以部分工作,就像创建重复项一样。

我尝试的代码:-

component_type

这会打印出重复的内容,例如

url = htpp://url
data = json.loads(r.get(url, headers=headers, 
verify=False).content.decode('UTF-8'))

var = string.ascii_lowercase
d = {}
k = 0

for value in data:
      d[var[k]] = value['software']
      k += 1
      d[var[k]] = value['current_severity']
      k += 1
      print(d)

我想将值分配给变量,并将这些值分配给普罗米修斯度量标准。 Prometheus度量标准还将根据其中有多少个变量来创建。

我想要的输出:

 {'a': 'software', 'b': low}
 {'a': 'software', 'b': low, 'c': 'software', 'd': medium}

应动态创建metric = Metric('prometheus_metric_name', 'prometheus metric name', 'gauge') metric.add_sample('prometheus_metric_name', value=float(0), labels={'software':(variable of software will go here), 'severity':(variable of current_severity will go here)}) 行,以返回多少节。以下是metric.add_sample

返回的列表
data

按节的意思是-在以上[{'category': 'software', 'code': 110, 'actual': '["5.1.4"]', 'opened': '2018-10-16T09:18:12Z', 'component_type': 'update', 'event': 'new update available', 'current_severity': 'info', 'details': '', 'expected': None, 'id': 10088862, 'component_name': 'Purity//FA'}, {'category': 'software', 'code': 67, 'actual': None, 'opened': '2018-10-18T01:14:45Z', 'component_type': 'host', 'event': 'misconfiguration', 'current_severity': 'critical', 'details': '', 'expected': None, 'id': 10088898, 'component_name': 'pudc-vm-001'} 中有两个节。因此,我需要从中获得键和值对,并为其分配和创建度量。

0 个答案:

没有答案