in blueprints/cloud-operations/network-quota-monitoring/src/main.py [0:0]
def do_timeseries_calc(resources, descriptors, timeseries, debug_plugin=None):
'''Calls timeseries plugins and collect resulting descriptors and timeseries.
Timeseries plugin return a list of MetricDescriptors and Timeseries instances,
one per each metric.
Args:
resources: shared map of configuration and discovered resources.
descriptors: list where collected descriptors will be stored.
timeseries: list where collected timeseries will be stored.
debug_plugin: optional name of a single plugin to call
'''
LOGGER.info(f'timeseries calc start (debug plugin: {debug_plugin})')
for plugin in plugins.get_timeseries_plugins():
if debug_plugin and plugin.name != debug_plugin:
LOGGER.info(f'skipping {plugin.name}')
continue
num_desc, num_ts = 0, 0
for result in plugin.func(resources):
if not result:
continue
# append result to the relevant collection (descriptors or timeseries)
if isinstance(result, plugins.MetricDescriptor):
descriptors.append(result)
num_desc += 1
elif isinstance(result, plugins.TimeSeries):
timeseries.append(result)
num_ts += 1
LOGGER.info(f'{plugin.name}: {num_desc} descriptors {num_ts} timeseries')
LOGGER.info('timeseries calc end (descriptors: {} timeseries: {})'.format(
len(descriptors), len(timeseries)))