Ejemplo n.º 1
0
class OpencensusMiddleware(_OpencensusMiddleware):
    def __init__(self, get_response=None):
        self.get_response = get_response

        self.propagator = get_tracer_propagator()
        self.exporter = get_tracer_exporter()
        self.sampler = get_tracer_sampler()

        settings_ = getattr(settings, 'OPENCENSUS', {})
        settings_ = settings_.get('TRACE', {})
        self.blacklist_paths = settings_.get(BLACKLIST_PATHS, None)
        self.blacklist_hostnames = settings_.get(BLACKLIST_HOSTNAMES, None)

        self.resolver = RouteResolver()

    def process_view(self, request, view_func, *args, **kwargs):
        """Process view is executed before the view function, here we get the
        function name add set it as the span name.
        """

        # Do not trace if the url is blacklisted
        if utils.disable_tracing_url(request.path, self.blacklist_paths):
            return

        try:
            # Get the current span and set the span name to the current
            # function name of the request.
            tracer = _get_current_tracer()
            span = tracer.current_span()
            span.name = 'Recv.' + self.resolver.resolve(request.path_info)
            tracer.add_attribute_to_current_span(
                attribute_key='django.view',
                attribute_value=utils.get_func_name(view_func))
        except Exception:  # pragma: no cover
            logger.error('Failed to trace request', exc_info=True)
Ejemplo n.º 2
0
def test_included_match():
    resolver = RouteResolver()
    result = resolver.resolve('/example/foo/bar/baz', example_url_conf)
    assert result == '/example/foo/bar/{param}'
Ejemplo n.º 3
0
def test_complex_match():
    resolver = RouteResolver()
    result = resolver.resolve('/api/1234/store/', example_url_conf)
    assert result == '/api/{project_id}/store/'
Ejemplo n.º 4
0
def test_simple_match():
    resolver = RouteResolver()
    result = resolver.resolve('/report/', example_url_conf)
    assert result == '/report/'
Ejemplo n.º 5
0
def test_no_match():
    resolver = RouteResolver()
    result = resolver.resolve('/foo/bar', example_url_conf)
    assert result == '/foo/bar'
Ejemplo n.º 6
0
def test_included_match():
    resolver = RouteResolver()
    result = resolver.resolve('/example/foo/bar/baz', example_url_conf)
    assert result == '/example/foo/bar/{param}'
Ejemplo n.º 7
0
def test_complex_match():
    resolver = RouteResolver()
    result = resolver.resolve('/api/1234/store/', example_url_conf)
    assert result == '/api/{project_id}/store/'
Ejemplo n.º 8
0
def test_simple_match():
    resolver = RouteResolver()
    result = resolver.resolve('/report/', example_url_conf)
    assert result == '/report/'
Ejemplo n.º 9
0
def test_no_match():
    resolver = RouteResolver()
    result = resolver.resolve('/foo/bar', example_url_conf)
    assert result == '/foo/bar'
Ejemplo n.º 10
0
def test_simple_match(
):  # TODO: ash add matchedstring to make this test actually test something
    resolver = RouteResolver()
    result = resolver.resolve('/report/', example_url_conf)
    assert result == '/report/'
Ejemplo n.º 11
0
def test_simple_match():  # TODO: ash add matchedstring to make this test actually test something
    resolver = RouteResolver()
    result = resolver.resolve('/report/', example_url_conf)
    assert result == '/report/'