After we increase/decrease the count of the node-exporter, we get a 500
- Internal server error from api/prometheus/rules endpoint. On further
debugging its caused by the jsonDecodder, because I guess the expected
input for the json.loads() is not a json formatted input. So to fix
that issue I can either do an error handling on the json.loads() or I
can move the json.loads() on the already existing try block. I went for
the second approach here.
Fixes: https://tracker.ceph.com/issues/54356
Signed-off-by: Nizamudeen A <nia@redhat.com>
"Could not reach {}'s API on {}".format(api_name, base_url),
http_status_code=404,
component='prometheus')
- content = json.loads(response.content)
+ try:
+ content = json.loads(response.content, strict=False)
+ except json.JSONDecodeError as e:
+ raise DashboardException(
+ "Error parsing Prometheus Alertmanager response: {}".format(e.msg),
+ component='prometheus')
if content['status'] == 'success':
if 'data' in content:
return content['data']