diff --git a/django_opentracing/tracing.py b/django_opentracing/tracing.py index ded55d7..9ad0891 100644 --- a/django_opentracing/tracing.py +++ b/django_opentracing/tracing.py @@ -72,6 +72,22 @@ def wrapper(request, *args, **kwargs): return wrapper return decorator + def another_trace(self, name, is_method=False): + def decorator(func): + def wrapper(*args, **kwargs): + # check if `func' is a method or not + if is_method: + fname = type(args[0]).__name__ + '.' + name + else: + fname = name + + with self.tracer.start_active_span(fname): + r = func(*args, **kwargs) + return r + + return wrapper + return decorator + def _apply_tracing(self, request, view_func, attributes): ''' Helper function to avoid rewriting for middleware and decorator.