Skip to content

Commit d48a925

Browse files
fix: catch invalid labels exception
1 parent 244e796 commit d48a925

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

datapower_net.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,22 +224,29 @@ def fetch_data(self, provider, label, suffix=''):
224224
verify=False, timeout=1).json()
225225
logger.debug(status)
226226
data = status.get(provider, {})
227+
labels = self.labels
227228
if type(data) is list:
228229
for item in data:
229230
try:
230231
name = item[provider.replace('Status', '')]['value']
231232
del(item[provider.replace('Status', '')])
232233
logger.debug(item)
233234
for key in item:
234-
self.trawler.set_gauge('datapower',
235-
"{}.{}.{}{}".format(label, name, key, suffix), item[key],
236-
pod_name=self.name, labels=self.labels)
235+
self.trawler.set_gauge(
236+
'datapower',
237+
"{}.{}.{}{}".format(label, name, key, suffix), item[key],
238+
pod_name=self.name, labels=self.labels)
237239
except KeyError:
238240
logger.warning('Failed to parse response for {}'.format(provider))
239241
logger.info(item)
240242
else:
241243
for key in data:
242-
self.trawler.set_gauge('datapower', "{}_{}{}".format(label, key, suffix), data[key], pod_name=self.name, labels=self.labels)
244+
self.trawler.set_gauge(
245+
'datapower',
246+
"{}_{}{}".format(label, key, suffix),
247+
data[key],
248+
pod_name=self.name,
249+
labels=labels)
243250
except requests.exceptions.RequestException as e:
244251
logger.info("{}: {} (Check rest-mgmt is enabled and you have network connectivity)".format(provider, e.strerror))
245252

@@ -342,15 +349,15 @@ def invoke_api(self, api):
342349
'datapower',
343350
"invoke_api_{}_status_total".format(api['name']),
344351
1,
345-
pod_name=self.name, labels=self.labels)
352+
pod_name=self.name, labels=status_labels)
346353
except requests.RequestException:
347354
status_labels = self.labels
348355
status_labels['code'] = '000'
349356
self.trawler.set_gauge(
350357
'datapower',
351358
"invoke_api_{}_status_total".format(api['name']),
352359
0,
353-
pod_name=self.name, labels=self.labels)
360+
pod_name=self.name, labels=status_labels)
354361

355362
if __name__ == "__main__":
356363
net = DataPowerNet()

trawler.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,13 @@ def set_gauge(self, component, target_name, value, pod_name=None, labels=None):
116116

117117
logger.debug("Setting gauge %s to %f",
118118
self.gauges[prometheus_target]._name, value)
119-
if labels:
120-
self.gauges[prometheus_target].labels(**labels).set(value)
121-
else:
122-
self.gauges[prometheus_target].set(value)
119+
try:
120+
if labels:
121+
self.gauges[prometheus_target].labels(**labels).set(value)
122+
else:
123+
self.gauges[prometheus_target].set(value)
124+
except ValueError as valueException:
125+
self.logger.exception(valueException)
123126
if self.config['graphite']['enabled']:
124127
if pod_name:
125128
metric_name = "{}.{}.{}".format(component, pod_name, target_name)

0 commit comments

Comments
 (0)