Skip to content

Commit 2aa4a1a

Browse files
committed
feat(otel): move to plugins, fix bugs #4468 and #4466, add upstream parity
1 parent d63f917 commit 2aa4a1a

18 files changed

Lines changed: 334 additions & 163 deletions

File tree

docs/conf.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
(PY_METH, "litestar.typing.ParsedType.is_subclass_of"),
118118
(PY_METH, "type_engine"),
119119
# type vars and aliases / intentionally undocumented
120+
(PY_CLASS, "ClientRequestHookHandler"),
121+
(PY_CLASS, "ClientResponseHookHandler"),
122+
(PY_CLASS, "ServerRequestHookHandler"),
120123
(PY_CLASS, "AnyIOBackend"),
121124
(PY_CLASS, "BaseSessionBackendT"),
122125
(PY_CLASS, "C"),

docs/getting-started.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Installation
3838
:doc:`Prometheus Instrumentation </usage/metrics/prometheus>`
3939
:code:`pip install 'litestar[prometheus]'`
4040

41-
:doc:`Open Telemetry Instrumentation </usage/metrics/open-telemetry>`
41+
:doc:`OpenTelemetry Instrumentation </usage/metrics/opentelemetry>`
4242
:code:`pip install 'litestar[opentelemetry]'`
4343

4444
:doc:`SQLAlchemy </usage/databases/sqlalchemy/index>` (via `Advanced-Alchemy <https://advanced-alchemy.litestar.dev/latest/>`_)

docs/reference/contrib/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ contrib
66

77
jinja
88
mako
9-
opentelemetry

docs/reference/contrib/opentelemetry.rst

Lines changed: 0 additions & 7 deletions
This file was deleted.

docs/reference/plugins/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ plugins
1212
attrs
1313
flash_messages
1414
htmx
15+
opentelemetry
1516
problem_details
1617
prometheus
1718
pydantic
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
opentelemetry
2+
=============
3+
4+
.. automodule:: litestar.plugins.opentelemetry
5+
:members:
6+
7+
.. automodule:: litestar.plugins.opentelemetry.config
8+
:members:

docs/usage/metrics/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ Metrics
44
.. toctree::
55
:titlesonly:
66

7-
open-telemetry
7+
opentelemetry
88
prometheus
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
OpenTelemetry
22
=============
33

4-
Litestar includes optional OpenTelemetry instrumentation that is exported from ``litestar.contrib.opentelemetry``. To use
4+
Litestar includes optional OpenTelemetry instrumentation that is exported from ``litestar.plugins.opentelemetry``. To use
55
this package, you should first install the required dependencies:
66

77
.. code-block:: bash
@@ -16,13 +16,13 @@ this package, you should first install the required dependencies:
1616
pip install 'litestar[opentelemetry]'
1717
1818
Once these requirements are satisfied, you can instrument your Litestar application by creating an instance
19-
of :class:`OpenTelemetryConfig <litestar.contrib.opentelemetry.OpenTelemetryConfig>` and passing the middleware it creates to
19+
of :class:`OpenTelemetryConfig <litestar.plugins.opentelemetry.OpenTelemetryConfig>` and passing the middleware it creates to
2020
the Litestar constructor:
2121

2222
.. code-block:: python
2323
2424
from litestar import Litestar
25-
from litestar.contrib.opentelemetry import OpenTelemetryConfig, OpenTelemetryPlugin
25+
from litestar.plugins.opentelemetry import OpenTelemetryConfig, OpenTelemetryPlugin
2626
2727
open_telemetry_config = OpenTelemetryConfig()
2828
@@ -33,4 +33,4 @@ exporter to use these (see the
3333
`OpenTelemetry Exporter docs <https://opentelemetry.io/docs/instrumentation/python/exporters/>`_ for further details).
3434

3535
You can also pass con figuration to the ``OpenTelemetryConfig`` telling it which providers to use. Consult
36-
:class:`reference docs <litestar.contrib.opentelemetry.OpenTelemetryConfig>` regarding the configuration options you can use.
36+
:class:`reference docs <litestar.plugins.opentelemetry.OpenTelemetryConfig>` regarding the configuration options you can use.

litestar/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@
6262
from litestar.config.compression import CompressionConfig
6363
from litestar.config.cors import CORSConfig
6464
from litestar.config.csrf import CSRFConfig
65-
from litestar.contrib.opentelemetry import OpenTelemetryPlugin
6665
from litestar.datastructures import CacheControlHeader, ETag
6766
from litestar.dto import AbstractDTO
6867
from litestar.events.listener import EventListener
6968
from litestar.openapi.spec import SecurityRequirement
7069
from litestar.openapi.spec.open_api import OpenAPI
70+
from litestar.plugins.opentelemetry import OpenTelemetryPlugin
7171
from litestar.response import Response
7272
from litestar.stores.base import Store
7373
from litestar.types import (
@@ -493,7 +493,7 @@ def _patch_opentelemetry_middleware(config: AppConfig) -> AppConfig:
493493
# workaround to support otel middleware priority. Should be replaced by regular
494494
# middleware priorities once available
495495
try:
496-
from litestar.contrib.opentelemetry import OpenTelemetryPlugin
496+
from litestar.plugins.opentelemetry import OpenTelemetryPlugin
497497

498498
if not any(isinstance(p, OpenTelemetryPlugin) for p in config.plugins):
499499
config.middleware, otel_middleware = OpenTelemetryPlugin._pop_otel_middleware(config.middleware)

litestar/contrib/opentelemetry/__init__.py

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)