Usage

Introduction

This package provides the @otelize decorator that wraps a function or a class method in an OTEL span automatically. All arguments of that function will be added as span attributes (or included in a span event).

Remember that the values are converted to make sure no sensible data is leaked, and that we serialize complex objects. View OtelValueConverter.

The otelize decorator

Functions

Just add the decorator to your functions:

from otelize import otelize

@otelize
def your_function(a_param: str, another_param: int, a_list: list[float], a_dict: dict[str, str]):
    ...

All the parameters and the return value will be added as attributes to the OTEL span created (with an arg or kwarg prefix depending on how it was called).

Classes

You can also decorate classes:

from otelize import otelize

@otelize
class DummyCalculator:
    def __init__(self, initial_value: float) -> None:
        self.__value = initial_value

    def add(self, other: float) -> float:
        self.__value += other
        return self.__value

    def subtract(self, other: float) -> float:
        self.__value -= other
        return self.__value

For the non-magic methods of a class, a new span will be created. This span will contain the arguments used to call the method.