import logging
import os
from pkg_resources import iter_entry_points
logger = logging.getLogger(__name__)
[docs]def store_autocreate(loop=None):
store_type = os.environ.get('METRICS_STORE') or os.environ.get('METRIC_STORE') \
or os.environ.get('CSP_METRICS_STORE')
if store_type:
return create_store(store_type, loop=loop)
else:
logger.warning('No metric-store configured.')
from .noop import NoopStore
return NoopStore()
[docs]def create_store(store_type, loop=None):
for ep in iter_entry_points(group='caspia.metric_store', name=store_type):
store_creator = ep.resolve()
return store_creator(loop=loop)
raise RuntimeError('Unknown store type %r' % store_type)