def __init__(self, get_response=None): settings = getattr(django.conf.settings, 'OPENCENSUS', {}) settings = settings.get('TRACE', {}) self.sampler = (settings.get('SAMPLER', None) or samplers.ProbabilitySampler()) if isinstance(self.sampler, six.string_types): self.sampler = configuration.load(self.sampler) self.exporter = settings.get('EXPORTER', None) or \ print_exporter.PrintExporter() if isinstance(self.exporter, six.string_types): self.exporter = configuration.load(self.exporter) self.propagator = settings.get('PROPAGATOR', None) or \ trace_context_http_header_format.TraceContextPropagator() if isinstance(self.propagator, six.string_types): self.propagator = configuration.load(self.propagator) self.excludelist_paths = settings.get(EXCLUDELIST_PATHS, None) self.excludelist_hostnames = settings.get(EXCLUDELIST_HOSTNAMES, None) if django.VERSION >= (2, ): # pragma: NO COVER connection.execute_wrappers.append(_trace_db_call) super().__init__(get_response)
def init_app(self, app): self.app = app # get settings from app config settings = self.app.config.get('OPENCENSUS', {}) settings = settings.get('TRACE', {}) if self.sampler is None: self.sampler = (settings.get('SAMPLER', None) or samplers.ProbabilitySampler()) if isinstance(self.sampler, six.string_types): self.sampler = configuration.load(self.sampler) if self.exporter is None: self.exporter = settings.get('EXPORTER', None) or \ print_exporter.PrintExporter() if isinstance(self.exporter, six.string_types): self.exporter = configuration.load(self.exporter) if self.propagator is None: self.propagator = settings.get('PROPAGATOR', None) or \ trace_context_http_header_format.TraceContextPropagator() if isinstance(self.propagator, six.string_types): self.propagator = configuration.load(self.propagator) self.blacklist_paths = settings.get(BLACKLIST_PATHS, self.blacklist_paths) self.blacklist_hostnames = settings.get(BLACKLIST_HOSTNAMES, None) self.setup_trace()
def __init__(self, get_response=None): self.get_response = get_response settings = getattr(django.conf.settings, 'OPENCENSUS', {}) settings = settings.get('TRACE', {}) self.sampler = (settings.get('SAMPLER', None) or samplers.ProbabilitySampler()) if isinstance(self.sampler, six.string_types): self.sampler = configuration.load(self.sampler) self.exporter = settings.get('EXPORTER', None) or \ print_exporter.PrintExporter() if isinstance(self.exporter, six.string_types): self.exporter = configuration.load(self.exporter) self.propagator = settings.get('PROPAGATOR', None) or \ trace_context_http_header_format.TraceContextPropagator() if isinstance(self.propagator, six.string_types): self.propagator = configuration.load(self.propagator) self.blacklist_paths = settings.get(BLACKLIST_PATHS, None) self.blacklist_hostnames = settings.get(BLACKLIST_HOSTNAMES, None) self.explain_mode = settings.get('EXPLAIN', None) logger.debug(f"OpenCensus Exporter: {self.exporter}")
def load_config(self, settings): if settings.get('TRACE', {}): settings = settings.get('TRACE', {}) self.sampler = (settings.get('SAMPLER', None) or self.sampler) if isinstance(self.sampler, six.string_types): self.sampler = configuration.load(self.sampler) self.exporter = settings.get('EXPORTER', None) or self.exporter if isinstance(self.exporter, six.string_types): self.exporter = configuration.load(self.exporter) self.propagator = settings.get('PROPAGATOR', None) or self.propagator if isinstance(self.propagator, six.string_types): self.propagator = configuration.load(self.propagator)
def get_tracer_exporter(): global _tracer_exporter if _tracer_exporter is None: settings_ = getattr(settings, 'OPENCENSUS', {}) settings_ = settings_.get('TRACE', {}) _tracer_exporter = settings_.get('EXPORTER', None) or \ print_exporter.PrintExporter() if isinstance(_tracer_exporter, str): _tracer_exporter = configuration.load(_tracer_exporter) return _tracer_exporter
def get_tracer_sampler(): global _tracer_sampler if _tracer_sampler is None: settings_ = getattr(settings, 'OPENCENSUS', {}) settings_ = settings_.get('TRACE', {}) _tracer_sampler = settings_.get('SAMPLER', None) or \ samplers.ProbabilitySampler() if isinstance(_tracer_sampler, str): _tracer_sampler = configuration.load(_tracer_sampler) return _tracer_sampler
def get_tracer_propagator(): global _tracer_propagator if _tracer_propagator is None: settings_ = getattr(settings, 'OPENCENSUS', {}) settings_ = settings_.get('TRACE', {}) _tracer_propagator = settings_.get('PROPAGATOR', None) or \ trace_context_http_header_format.TraceContextPropagator() if isinstance(_tracer_propagator, str): _tracer_propagator = configuration.load(_tracer_propagator) return _tracer_propagator
def __init__(self, get_response=None): self.get_response = get_response settings = getattr(django.conf.settings, 'OPENCENSUS', {}) settings = settings.get('TRACE', {}) self.sampler = settings.get('SAMPLER', None) or \ always_on.AlwaysOnSampler() if isinstance(self.sampler, six.string_types): self.sampler = configuration.load(self.sampler) self.exporter = settings.get('EXPORTER', None) or \ print_exporter.PrintExporter() if isinstance(self.exporter, six.string_types): self.exporter = configuration.load(self.exporter) self.propagator = settings.get('PROPAGATOR', None) or \ trace_context_http_header_format.TraceContextPropagator() if isinstance(self.propagator, six.string_types): self.propagator = configuration.load(self.propagator) self.blacklist_paths = settings.get(BLACKLIST_PATHS, None) self.blacklist_hostnames = settings.get(BLACKLIST_HOSTNAMES, None)
def test_load(self): ns = configuration.load( 'opencensus.common.configuration.Namespace("foo")') self.assertEqual(ns.name, 'foo')
def test_load_syntax_error(self): with self.assertRaises(SyntaxError): configuration.load(')')
def test_load_name_error(self): with self.assertRaises(NameError): configuration.load('nonexist.foo()')
def test_load_import_error(self): with self.assertRaises(ImportError): configuration.load('opencensus.nonexist.foo()')
from django.core.management import execute_from_command_line import django import django.conf except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?") from exc # Get OpenCensus settings from settings.py SETTINGS = getattr(django.conf.settings, 'OPENCENSUS', {}) SETTINGS = SETTINGS.get('TRACE', {}) SAMPLER = (SETTINGS.get('SAMPLER', None) or ProbabilitySampler(rate=1.0)) if isinstance(SAMPLER, six.string_types): SAMPLER = configuration.load(SAMPLER) EXPORTER = SETTINGS.get('EXPORTER', None) or PrintExporter() if isinstance(EXPORTER, six.string_types): EXPORTER = configuration.load(EXPORTER) TRACER = Tracer( exporter=EXPORTER, sampler=SAMPLER, ) # Add tracing for PostgreSQL config_integration.trace_integrations(['postgresql']) # Configure logging from settings.py logging.config.dictConfig(getattr(django.conf.settings, 'LOGGING', {}))