Пример #1
0
async def test_create_task(tracer):
    # the helper should create a new Task that has the Context attached
    async def future_work():
        child_span = tracer.trace("child_task")
        return child_span

    root_span = tracer.trace("main_task")
    # schedule future work and wait for a result
    task = helpers.create_task(future_work())
    result = await task
    assert result.name == "child_task"
    assert root_span.trace_id == result.trace_id
    assert root_span.span_id == result.parent_id
Пример #2
0
async def main_page(request):
    redis_list = get_list(request)
    if request.method == "POST":
        statsd.increment("guestbook.post")
        form = await request.post()

        headers = {
            'x-datadog-trace-id': str(tracer.current_span().trace_id),
            'x-datadog-parent-id': str(tracer.current_span().span_id),
        }
        task_img = helpers.create_task(getdoggo(headers))
        task_text = helpers.create_task(makelolz(form["entry"], headers))
        img = await task_img
        text = await task_text

        entry = "<img src=\"{}\" /><span>{}</span>".format(img, text)

        app.redis.lpush(redis_list, entry)
        return web.HTTPFound("/")
    else:
        statsd.increment("guestbook.view")
        entries = app.redis.lrange(redis_list, 0, -1)
        return {"entries": entries}
Пример #3
0
    def test_create_task(self):
        # the helper should create a new Task that has the Context attached
        @asyncio.coroutine
        def future_work():
            # the ctx is available in this task
            ctx = self.tracer.get_call_context()
            eq_(0, len(ctx._trace))
            child_span = self.tracer.trace('child_task')
            return child_span

        root_span = self.tracer.trace('main_task')
        # schedule future work and wait for a result
        task = helpers.create_task(future_work())
        result = yield from task
        eq_(root_span.trace_id, result.trace_id)
        eq_(root_span.span_id, result.parent_id)
Пример #4
0
    def test_create_task(self):
        # the helper should create a new Task that has the Context attached
        @asyncio.coroutine
        def future_work():
            # the ctx is available in this task
            ctx = self.tracer.get_call_context()
            eq_(0, len(ctx._trace))
            child_span = self.tracer.trace('child_task')
            return child_span

        root_span = self.tracer.trace('main_task')
        # schedule future work and wait for a result
        task = helpers.create_task(future_work())
        result = yield from task
        eq_(root_span.trace_id, result.trace_id)
        eq_(root_span.span_id, result.parent_id)