Skip to content

Commit 6862dfc

Browse files
feat: include analytics service-status (#98)
Signed-off-by: Ricky Moorhouse <[email protected]>
1 parent ca87049 commit 6862dfc

File tree

1 file changed

+34
-8
lines changed

1 file changed

+34
-8
lines changed

analytics_net.py

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,33 @@ def fish_analytics_v1(self):
181181
else:
182182
logger.info("Cluster health failed, so no data and no point querying for calls")
183183

184+
def analytics_service_status(self):
185+
""" Query analytics service status"""
186+
error = False
187+
try:
188+
status = requests.get(
189+
"https://{}/cloud/service-status".format(self.hostname),
190+
verify=False,
191+
cert=self.certificates.name
192+
)
193+
status_obj = status.json()
194+
logger.debug(status.text)
195+
except requests.exceptions.ConnectionError:
196+
error = True
197+
logger.error("Error getting cluster health")
198+
status_obj = {}
199+
200+
if not error:
201+
self.trawler.set_gauge('analytics', 'rollover_status', 1 if status_obj.get('rollover_ok', True) else 0)
202+
self.trawler.set_gauge('analytics', 'diskspace_status', 1 if status_obj.get('diskspace_ok', True) else 0)
203+
self.trawler.set_gauge('analytics', 'transform_status', 1 if status_obj.get('transform_ok', True) else 0)
204+
self.trawler.set_gauge('analytics', 'storage_memory_status', 1 if status_obj.get('storage_memory_ok', True) else 0)
205+
self.trawler.set_gauge('analytics', 'reindex_status', 1 if status_obj.get('reindex_ok', True) else 0)
206+
184207
def fish_analytics_v2(self):
185-
errored=False
208+
""" Main fishing function for analytics v2 (10.0.5 onwards)"""
209+
self.analytics_service_status()
210+
errored = False
186211
# Cluster Health
187212
try:
188213
health = requests.get(
@@ -238,14 +263,15 @@ def fish_analytics_v2(self):
238263
summary = calls_req.json()
239264
summary_output = {'1':0,'2':0,'3':0,'4':0,'5':0}
240265
total = 0
241-
for status in summary['status_codes']['data']:
242-
if status['group'][0] in summary_output:
243-
summary_output[status['group'][0]] += status['value']
244-
total += status['value']
266+
if 'status_codes' in summary:
267+
for status in summary['status_codes']['data']:
268+
if status['group'][0] in summary_output:
269+
summary_output[status['group'][0]] += status['value']
270+
total += status['value']
245271

246-
self.trawler.set_gauge('analytics', 'apicalls_{}.total'.format(metric_name), total)
247-
for status in summary_output:
248-
self.trawler.set_gauge('analytics', 'apicalls_{}.{}xx'.format(metric_name, status), summary_output[status])
272+
self.trawler.set_gauge('analytics', 'apicalls_{}.total'.format(metric_name), total)
273+
for status in summary_output:
274+
self.trawler.set_gauge('analytics', 'apicalls_{}.{}xx'.format(metric_name, status), summary_output[status])
249275

250276

251277
@alog.timed_function(logger.trace)

0 commit comments

Comments
 (0)