From 9d37edec6446e2c59ef88e7e50c90ebb1b120e29 Mon Sep 17 00:00:00 2001 From: f5zong Date: Wed, 9 Mar 2022 12:23:54 +0800 Subject: [PATCH] Add prometheus data collection --- f5_cccl/service/manager.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/f5_cccl/service/manager.py b/f5_cccl/service/manager.py index 8265057..d8942f8 100644 --- a/f5_cccl/service/manager.py +++ b/f5_cccl/service/manager.py @@ -19,6 +19,7 @@ import logging +import json from time import time import f5_cccl.exceptions as exc @@ -676,6 +677,24 @@ def apply_ltm_config(self, service_config, user_agent): LOGGER.debug( "apply_ltm_config took %.5f seconds.", (time() - start_time)) + try: + prom_data = {} + for i in service_config.get('iapps', []): + prom_data[i['name']] = { + 'timecost': int((time() - start_time)*1000), + 'members': [] + } + pmt = i.get('poolMemberTable', {}) + for m in pmt.get('members', []): + prom_data[i['name']]['members'].append(m['address']) + # TODO: handle ingress type under cccl mode. + # for i in service_config.get('pools'/'l7Policies'/'monitors'/'virtualServers'/) + # pass + except Exception as e: + LOGGER.error("failed to handle ltm prom data: %s" % e) + + LOGGER.info("prometheus.data.ltm="+json.dumps(prom_data)) + return retval def apply_net_config(self, service_config): @@ -711,4 +730,13 @@ def apply_net_config(self, service_config): LOGGER.debug( "apply_net_config took %.5f seconds.", (time() - start_time)) + try: + prom_data = {} + for i in service_config.get('arps', []): + prom_data[i['ipAddress']] = int((time() - start_time)*1000) + except Exception as e: + LOGGER.error("failed to handle net prom data: %s" % e) + + LOGGER.info("prometheus.data.net="+json.dumps(prom_data)) + return retval