예제 #1
0
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()
예제 #2
0
                     '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