Instrumenting custom code

edit

Elastic APM instruments a variety of libraries out of the box, but sometimes you need to know how long a specific function took or how often it gets called.

You can apply the @elasticapm.capture_span() decorator to achieve exactly that. It can also be used as a context manager in the following way:

import elasticapm

@elasticapm.capture_span()
def coffee_maker(strength):
    fetch_water()

    with elasticapm.capture_span('near-to-machine'):
        insert_filter()
        for i in range(strengh):
            pour_coffee()

        start_drip()

    fresh_pots()