def __init__(self, **kwargs): super(GnocchiStorage, self).__init__(**kwargs) conf = kwargs.get('conf') or ck_utils.load_conf( CONF.collect.metrics_conf) self.conf = validate_conf(conf) self.auth = ks_loading.load_auth_from_conf_options( CONF, GNOCCHI_STORAGE_OPTS) self.session = ks_loading.load_session_from_conf_options( CONF, GNOCCHI_STORAGE_OPTS, auth=self.auth) self._conn = gclient.Client( '1', session=self.session, adapter_options={'connect_retries': 3, 'interface': CONF.storage_gnocchi.interface}) self._archive_policy_name = ( CONF.storage_gnocchi.archive_policy_name) self._archive_policy_definition = json.loads( CONF.storage_gnocchi.archive_policy_definition) self._period = kwargs.get('period') or CONF.collect.period self._measurements = dict() self._resource_type_data = dict() self._init_resource_types()
def __init__(self, collector, storage, tenant_id): self._collector = collector self._storage = storage self._period = CONF.collect.period self._wait_time = CONF.collect.wait_periods * self._period self._tenant_id = tenant_id self._conf = ck_utils.load_conf(CONF.collect.metrics_conf) self._state = state.StateManager() super(Worker, self).__init__(self._tenant_id)
def get_collector(): metrics_conf = ck_utils.load_conf(CONF.collect.metrics_conf) collector_args = { 'period': CONF.collect.period, 'conf': metrics_conf, } return driver.DriverManager(COLLECTORS_NAMESPACE, CONF.collect.collector, invoke_on_load=True, invoke_kwds=collector_args).driver
def __init__(self, collector, storage, tenant_id, worker_id): self._collector = collector self._storage = storage self._period = CONF.collect.period self._wait_time = CONF.collect.wait_periods * self._period self._tenant_id = tenant_id self._worker_id = worker_id self._conf = ck_utils.load_conf(CONF.collect.metrics_conf) self._state = state.StateManager() super(Worker, self).__init__(self._tenant_id)
def get_collector(transformers=None): metrics_conf = ck_utils.load_conf(CONF.collect.metrics_conf) if not transformers: transformers = transformer.get_transformers() collector_args = { 'period': CONF.collect.period, 'transformers': transformers, } collector_args.update({'conf': metrics_conf}) return driver.DriverManager(COLLECTORS_NAMESPACE, CONF.collect.collector, invoke_on_load=True, invoke_kwds=collector_args).driver
def get_collector(transformers=None): metrics_conf = ck_utils.load_conf(CONF.collect.metrics_conf) if not transformers: transformers = transformer.get_transformers() collector_args = { 'period': CONF.collect.period, 'transformers': transformers, } collector_args.update({'conf': metrics_conf}) return driver.DriverManager( COLLECTORS_NAMESPACE, CONF.collect.collector, invoke_on_load=True, invoke_kwds=collector_args).driver
def get_one_metric(metric_name): try: metrics_conf = collector.validate_conf( ck_utils.load_conf(CONF.collect.metrics_conf)) except (voluptuous.Invalid, voluptuous.MultipleInvalid): msg = 'Invalid endpoint: no metrics in current configuration.' pecan.abort(405, msg) policy.authorize(pecan.request.context, 'info:get_metric_info', {}) metric = _find_metric(metric_name, metrics_conf) if not metric: pecan.abort(404, six.text_type(metric_name)) info = metric.copy() info['metric_id'] = info['alt_name'] return info_models.CloudkittyMetricInfo(**info)
def get_one_metric(metric_name): try: metrics_conf = collector.validate_conf( ck_utils.load_conf(CONF.collect.metrics_conf)) except (voluptuous.Invalid, voluptuous.MultipleInvalid): msg = 'Invalid endpoint: no metrics in current configuration.' pecan.abort(405, msg) policy.authorize(pecan.request.context, 'info:get_metric_info', {}) metric = _find_metric(metric_name, metrics_conf) if not metric: pecan.abort(404, str(metric_name)) info = metric.copy() info['metric_id'] = info['alt_name'] return info_models.CloudkittyMetricInfo(**info)
def __init__(self, collector, storage, tenant_id, worker_id): self._collector = collector self._storage = storage self._period = CONF.collect.period self._wait_time = CONF.collect.wait_periods * self._period self._tenant_id = tenant_id self._worker_id = worker_id self._log_prefix = '[scope: {scope}, worker: {worker}] '.format( scope=self._tenant_id, worker=self._worker_id) self._conf = ck_utils.load_conf(CONF.collect.metrics_conf) self._state = state.StateManager() self._check_state = functools.partial(_check_state, self, self._period, self._tenant_id) super(Worker, self).__init__(self._tenant_id)
def get_metrics_based_collector_metadata(): """Return dict of metadata. Results are based on enabled collector and metrics in CONF. """ metrics_conf = ck_utils.load_conf(CONF.collect.metrics_conf) collector = get_collector_without_invoke() metadata = {} if 'metrics' in metrics_conf: for metric_name, metric in metrics_conf.get('metrics', {}).items(): alt_name = metric.get('alt_name', metric_name) metadata[alt_name] = collector.get_metadata( metric_name, metrics_conf, ) return metadata
def get_all_metrics(): try: metrics_conf = collector.validate_conf( ck_utils.load_conf(CONF.collect.metrics_conf)) except (voluptuous.Invalid, voluptuous.MultipleInvalid): msg = 'Invalid endpoint: no metrics in current configuration.' pecan.abort(405, msg) policy.authorize(pecan.request.context, 'info:list_metrics_info', {}) metrics_info_list = [] for metric_name, metric in metrics_conf.items(): info = metric.copy() info['metric_id'] = info['alt_name'] metrics_info_list.append(info_models.CloudkittyMetricInfo(**info)) return info_models.CloudkittyMetricInfoCollection( metrics=metrics_info_list)
def get_all_metrics(): try: metrics_conf = collector.validate_conf( ck_utils.load_conf(CONF.collect.metrics_conf)) except (voluptuous.Invalid, voluptuous.MultipleInvalid): msg = 'Invalid endpoint: no metrics in current configuration.' pecan.abort(405, msg) policy.authorize(pecan.request.context, 'info:list_metrics_info', {}) metrics_info_list = [] for metric_name, metric in metrics_conf.items(): info = metric.copy() info['metric_id'] = info['alt_name'] metrics_info_list.append( info_models.CloudkittyMetricInfo(**info)) return info_models.CloudkittyMetricInfoCollection( metrics=metrics_info_list)
def get_metrics_based_collector_metadata(): """Return dict of metadata. Results are based on enabled collector and metrics in CONF. """ metrics_conf = ck_utils.load_conf(CONF.collect.metrics_conf) transformers = transformer.get_transformers() collector = get_collector_without_invoke() metadata = {} if 'metrics' in metrics_conf: for metric_name, metric in metrics_conf.get('metrics', {}).items(): alt_name = metric.get('alt_name', metric_name) metadata[alt_name] = collector.get_metadata( metric_name, transformers, metrics_conf, ) return metadata
'monasca_service_name', default='monasca', help='Name of the Monasca service (defaults to monasca)', ), ] 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.load_conf(CONF.collect.metrics_conf) MONASCA_EXTRA_SCHEMA = { Required('extra_args'): { # Key corresponding to the resource id in a metric's dimensions # Allows to adapt the resource identifier. Should not need to be # modified in a standard OpenStack installation Required('resource_key', default='resource_id'): All(str, Length(min=1)), Required('aggregation_method', default='max'): In(['max', 'mean', 'min']), }, } class EndpointNotFound(Exception):
help='Endpoint URL type (defaults to internal)', ), cfg.StrOpt( 'monasca_service_name', default='monasca', help='Name of the Monasca service (defaults to monasca)', ), ] cfg.CONF.register_opts(collector_monasca_opts, COLLECTOR_MONASCA_OPTS) cfg.CONF.register_opts(mcollector_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.load_conf(CONF.collect.metrics_conf) MONASCA_EXTRA_SCHEMA = { Required('extra_args'): { # Key corresponding to the resource id in a metric's dimensions # Allows to adapt the resource identifier. Should not need to be # modified in a standard OpenStack installation Required('resource_key', default='resource_id'): All(str, Length(min=1)), Required('aggregation_method', default='max'): In(['max', 'mean', 'min']), }, } class EndpointNotFound(Exception):
def config(self): """Return current configuration.""" policy.authorize(pecan.request.context, 'info:get_config', {}) return ck_utils.load_conf(CONF.collect.metrics_conf)
def config(self): """Return current configuration.""" policy.authorize(pecan.request.context, 'info:get_config', {}) return ck_utils.load_conf(CONF.collect.metrics_conf)