Esempio n. 1
0
def get_metrics_list():
    metrics_conf = ck_utils.get_metrics_conf(CONF.collect.metrics_conf)
    try:
        metrics = list(metrics_conf['metrics'].keys())
        cloudkitty_metrics = wtypes.Enum(wtypes.text, *metrics)
    except KeyError:
        metrics = list(DEFAULT_METRICS_CONF['metrics'].keys())
        cloudkitty_metrics = wtypes.Enum(wtypes.text, *metrics)

    return cloudkitty_metrics
Esempio n. 2
0
def get_collector(transformers=None):
    metrics_conf = ck_utils.get_metrics_conf(CONF.collect.metrics_conf)
    if not transformers:
        transformers = transformer.get_transformers()
    collector_args = {
        'period': metrics_conf.get('period', 3600),
        'transformers': transformers,
    }
    collector_args.update({'conf': metrics_conf})
    return driver.DriverManager(COLLECTORS_NAMESPACE,
                                metrics_conf.get('collector', 'gnocchi'),
                                invoke_on_load=True,
                                invoke_kwds=collector_args).driver
Esempio n. 3
0
def get_metrics_based_collector_metadata():
    """Return dict of metadata.

    Results are based on enabled collector and metrics in CONF.
    """
    metrics_conf = ck_utils.get_metrics_conf(CONF.collect.metrics_conf)
    transformers = transformer.get_transformers()
    collector = get_collector_without_invoke()
    metadata = {}
    if 'metrics' in metrics_conf:
        for metric in metrics_conf.get('metrics', {}):
            metadata[metric] = collector.get_metadata(
                metric,
                transformers,
                metrics_conf,
            )
    return metadata
Esempio n. 4
0
from cloudkitty import collector
from cloudkitty import transformer
from cloudkitty import utils as ck_utils

LOG = logging.getLogger(__name__)

MONASCA_API_VERSION = '2_0'
COLLECTOR_MONASCA_OPTS = 'collector_monasca'
collector_monasca_opts = ks_loading.get_auth_common_conf_options()

cfg.CONF.register_opts(collector_monasca_opts, COLLECTOR_MONASCA_OPTS)
ks_loading.register_session_conf_options(cfg.CONF, COLLECTOR_MONASCA_OPTS)
ks_loading.register_auth_conf_options(cfg.CONF, COLLECTOR_MONASCA_OPTS)
CONF = cfg.CONF

METRICS_CONF = ck_utils.get_metrics_conf(CONF.collect.metrics_conf)


class EndpointNotFound(Exception):
    """Exception raised if the Monasca endpoint is not found"""
    pass


class MonascaCollector(collector.BaseCollector):
    collector_name = 'monasca'
    dependencies = ['CloudKittyFormatTransformer']
    retrieve_mappings = {
        'compute': 'cpu',
        'image': 'image.size',
        'volume': 'volume.size',
        'network.floating': 'ip.floating',
Esempio n. 5
0
def get_collector_without_invoke():
    """Return the collector without invoke it."""
    metrics_conf = ck_utils.get_metrics_conf(CONF.collect.metrics_conf)
    return driver.DriverManager(COLLECTORS_NAMESPACE,
                                metrics_conf.get('collector', 'gnocchi'),
                                invoke_on_load=False).driver