async def req(c): for ii in range(100): ctx = SpanContext(trace_id=randomnize.getrandbits(32), span_id=randomnize.getrandbits(32), parent_id=0, flags=1) span = Span(context=ctx, operation_name='RootSpan', tracer=tracer) span.log_kv({ 'event': 'RootSpan', }) # with tracer.start_span('TestSpan') as span: # # span.log_kv({'span.trace_id': span.trace_id, # 'span.span_id': span.span_id, # 'span.parent_id': span.parent_id, # 'span.operation_name': span.operation_name, # }) # # # ctx = SpanContext(trace_id=child_span.trace_id, span_id=span_id1, parent_id=child_span.span_id, flags=1) # # span1 = Span(context=ctx, operation_name='ChildSpanChildSpan', tracer=tracer) # # span1.log_kv({'event': 'ChildSpanChildSpan', }) # # # t1 = time.time() # # try: # # r = await c.SayHello( # # helloworld_pb2.HelloRequest(name='test11', spaninfo=get_span_str(span))) # # # print("Greeting:", r.message) # # except Exception as e: # # pass # # # # t2 = time.time() # # print(t2 - t1) # # span.log_kv({'span.trace_id': span.trace_id, # 'span.span_id': span.span_id, # 'span.parent_id': span.parent_id, # 'span.operation_name': span.operation_name, # }) t1 = time.time() try: r = await c.SayHello( helloworld_pb2.HelloRequest(name='test11', spaninfo=get_span_str(span))) # print("Greeting:", r.message) except Exception as e: pass t2 = time.time() print(t2 - t1) span.log_kv({ 'event': t2 - t1, }) span.finish()
'span.parent_id': span.parent_id, 'span.operation_name': span.operation_name, }) with tracer.start_span('ChildSpan', child_of=span) as child_span: child_span.log_kv({'span.trace_id': child_span.trace_id, 'child_span.span_id': child_span.span_id, 'child_span.parent_id': child_span.parent_id, 'child_span.operation_name': child_span.operation_name, }) ctx = SpanContext(trace_id=child_span.trace_id, span_id=span_id1, parent_id=child_span.span_id, flags=1) span1 = Span(context=ctx, operation_name='ChildSpanChildSpan', tracer=tracer) span1.log_kv({'event': 'ChildSpanChildSpan', }) span1.finish() child_span.log_kv({'span.trace_id': child_span.trace_id, 'child_span.span_id': child_span.span_id, 'child_span.parent_id': child_span.parent_id, 'child_span.operation_name': child_span.operation_name, }) span.log_kv({'span.trace_id': span.trace_id, 'span.span_id': span.span_id, 'span.parent_id': span.parent_id, 'span.operation_name': span.operation_name, }) time.sleep(5) # yield to IOLoop to flush the spans - https://github.com/jaegertracing/jaeger-client-python/issues/50 tracer.close() # flush any buffered spans