Esempio n. 1
0
def traced_template_render(django, pin, wrapped, instance, args, kwargs):
    """Instrument django.template.base.Template.render for tracing template rendering."""
    template_name = maybe_stringify(getattr(instance, "name", None))
    if template_name:
        resource = template_name
    else:
        resource = "{0}.{1}".format(func_name(instance), wrapped.__name__)

    with pin.tracer.trace("django.template.render",
                          resource=resource,
                          span_type=http.TEMPLATE) as span:
        if template_name:
            span._set_str_tag("django.template.name", template_name)
        engine = getattr(instance, "engine", None)
        if engine:
            span._set_str_tag("django.template.engine.class",
                              func_name(engine))

        return wrapped(*args, **kwargs)
Esempio n. 2
0
def test_maybe_stringify(obj):
    assert type(maybe_stringify(obj)) is (obj is not None and six.text_type
                                          or type(None))