This is my below code
def pushgateway(ip_addr, hostname, env_name, services, type):
"""Notify prometheus alerts via pushgateway"""
registry = CollectorRegistry()
label_keys=['ip','hostname','env_name']
label_values=[ip_addr, hostname, env_name]
for key, value in services.items():
label_keys.append(key)
label_values.append(value)
assert len(label_keys) == len(label_values). # this is through
g = Gauge(type[0], f'process status for {type[0]}', label_keys)
g.labels(label_values).set(int(type[1]))
push_to_gateway('localhost:9091',job=f"{service}_{env_name}",registry=registry)
While executing I get this error, What am I doing wrong?
File "/home/username/.local/lib/python3.6/site-packages/prometheus_client/metrics.py", line 164, in labels
raise ValueError('Incorrect label count') ValueError: Incorrect label count
Printing the values from metrics.py - I get the below:
print(f"{labelvalues} - {self._labelnames}")
--> (('a', 'b', 'c'),) - ('a','b','c')
len(labelvalues)
is 1 and labelvalues[1]
is 3 and
len(self._labelnames)
is 3.
and assert fails:
if len(labelvalues) != len(self._labelnames):
raise ValueError('Incorrect label count')
How to fix this ? should i pass it in a different format ?