mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-01 11:29:48 +08:00
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from contextlib import contextmanager
|
|
|
|
|
|
def empty_server_interceptor_decorator(target_server, interceptor):
|
|
return target_server
|
|
|
|
|
|
@contextmanager
|
|
def EmptySpan(*args, **kwargs):
|
|
yield None
|
|
return
|
|
|
|
|
|
class Tracer:
|
|
def __init__(self,
|
|
tracer=None,
|
|
interceptor=None,
|
|
server_decorator=empty_server_interceptor_decorator):
|
|
self.tracer = tracer
|
|
self.interceptor = interceptor
|
|
self.server_decorator = server_decorator
|
|
|
|
def decorate(self, server):
|
|
return self.server_decorator(server, self.interceptor)
|
|
|
|
@property
|
|
def empty(self):
|
|
return self.tracer is None
|
|
|
|
def close(self):
|
|
self.tracer and self.tracer.close()
|
|
|
|
def start_span(self,
|
|
operation_name=None,
|
|
child_of=None,
|
|
references=None,
|
|
tags=None,
|
|
start_time=None,
|
|
ignore_active_span=False):
|
|
if self.empty:
|
|
return EmptySpan()
|
|
return self.tracer.start_span(operation_name, child_of, references,
|
|
tags, start_time, ignore_active_span)
|