Skip to content

Commit 9cb152d

Browse files
committed
improve error handling, label usage, bump versions
Signed-off-by: Zen <[email protected]>
1 parent 9f578bb commit 9cb152d

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "json_exporter"
7-
version = "0.11.0"
7+
version = "0.11.2"
88
authors = [
99
{ name="Desultory", email="[email protected]" },
1010
]
@@ -17,9 +17,9 @@ classifiers = [
1717
"Operating System :: OS Independent",
1818
]
1919
dependencies = [
20-
"prometheus_exporter >= 0.11.2",
20+
"prometheus_exporter >= 0.11.3",
2121
"aiohttp >= 3.9.1",
22-
"zenlib >= 1.6.2"
22+
"zenlib >= 1.6.4"
2323
]
2424

2525
[project.scripts]

src/json_exporter/json_endpoint.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ def __init__(self, name, *args, **kwargs):
1212

1313
def get_labels(self):
1414
""" Returns the labels for the JSON endpoint """
15-
return self.labels.copy() | self.json_labels
15+
return self.labels | self._json_labels
1616

1717
def read_config(self):
18+
""" Reads the config file using the parent method, adds json specific config """
1819
super().read_config()
1920
if self.name not in self.config['json']:
2021
raise ValueError("Endpoint not defined in config: %s" % self.name)
@@ -98,12 +99,12 @@ async def get_metrics(self, label_filter={}, *args, **kwargs):
9899
def update_json_labels(self):
99100
""" Updates the JSON labels """
100101
from .json_labels import JSONLabels
101-
self.logger.debug("[%s] Updating JSON labels", self.name)
102+
self.logger.debug("[%s] Updating JSON labels for: %s" % (self.name, self.json_labels))
102103

103104
kwargs = {'json_paths': self.json_labels, 'json_data': self.data,
104105
'logger': self.logger, '_log_init': False}
105106

106-
self.json_labels = JSONLabels(**kwargs)
107+
self._json_labels = JSONLabels(**kwargs)
107108

108109
def __str__(self):
109110
"""

src/json_exporter/json_exporter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,5 @@ async def get_metrics(self, *args, **kwargs):
4242
if endpoint.metrics:
4343
metric_list += endpoint.metrics
4444

45-
self.logger.debug("Got metrics: %s", metric_list)
45+
self.logger.debug("Got %d metrics", len(metric_list))
4646
self.metrics = metric_list

src/json_exporter/json_labels.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ def __getitem__(self, name):
3232

3333
value = self.data.copy()
3434
for key in self.json_paths[name].split('.'):
35-
value = value[key]
35+
try:
36+
value = value[key]
37+
except KeyError:
38+
self.logger.warning("Unable to resolve JSON path: %s" % self.json_paths[name])
39+
self.logger.debug("JSON data: %a" % self.data)
3640
self.logger.debug("[%s]Resolved JSON data from path: %s -> %a" % (name, self.json_paths[name], value))
3741
return value
3842

0 commit comments

Comments
 (0)