Open Telemetry Instrumentation#
Starlite includes optional OpenTelemetry instrumentation that is exported from starlite.contrib.opentelemetry. To use
this package, you should first install the required dependencies:
pip install opentelemetry-instrumentation-asgi
pip install starlite[opentelemetry]
Once these requirements are satisfied, you can instrument your Starlite application by creating an instance
of OpenTelemetryConfig and passing the middleware it creates to
the Starlite constructor:
from starlite import Starlite
from starlite.contrib.opentelemetry import OpenTelemetryConfig
open_telemetry_config = OpenTelemetryConfig()
app = Starlite(route_handlers=[], middleware=[open_telemetry_config.middleware])
The above example will work out of the box if you configure a global tracer_provider and/or metric_provider and an
exporter to use these (see the
OpenTelemetry Exporter docs for further details).
You can also pass con figuration to the OpenTelemetryConfig telling it which providers to use. Consult
reference docs regarding the configuration options you can use.