cuneus 0.2.11__tar.gz → 0.2.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cuneus-0.2.11 → cuneus-0.2.12}/PKG-INFO +1 -1
- {cuneus-0.2.11 → cuneus-0.2.12}/pyproject.toml +1 -1
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/ext/otel.py +16 -8
- {cuneus-0.2.11 → cuneus-0.2.12}/.gitignore +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/.python-version +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/Makefile +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/README.md +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/examples/my_app/__init__.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/examples/my_app/main.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/examples/pyproject.toml +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/__init__.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/cli.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/core/__init__.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/core/application.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/core/exceptions.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/core/extensions.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/core/logging.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/core/settings.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/dependencies.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/ext/__init__.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/ext/database.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/ext/health.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/ext/server.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/py.typed +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/src/cuneus/utils.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/cli/test_cli.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/cli/testapp/__init__.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/cli/testapp/main.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/cli/testapp/pyproject.toml +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/ext/test_database.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/ext/test_health.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/ext/test_otel.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/test_dependencies.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/test_exceptions.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/test_extensions.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/test_integration.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/tests/test_utils.py +0 -0
- {cuneus-0.2.11 → cuneus-0.2.12}/uv.lock +0 -0
|
@@ -104,6 +104,7 @@ class OTelExtension(BaseExtension, HasMiddleware):
|
|
|
104
104
|
"""
|
|
105
105
|
|
|
106
106
|
_tracer_provider: TracerProvider
|
|
107
|
+
_meter_provider: MeterProvider | None = None
|
|
107
108
|
|
|
108
109
|
def __init__(
|
|
109
110
|
self,
|
|
@@ -146,7 +147,7 @@ class OTelExtension(BaseExtension, HasMiddleware):
|
|
|
146
147
|
self._tracer_provider.get_tracer(self.settings.service_name),
|
|
147
148
|
)
|
|
148
149
|
|
|
149
|
-
self._setup_auto_instrumentation()
|
|
150
|
+
self._setup_auto_instrumentation(app)
|
|
150
151
|
|
|
151
152
|
logger.info(
|
|
152
153
|
"OpenTelemetry tracing started",
|
|
@@ -159,7 +160,8 @@ class OTelExtension(BaseExtension, HasMiddleware):
|
|
|
159
160
|
if self.settings.metrics_enabled:
|
|
160
161
|
meter_provider = MeterProvider(resource=resource)
|
|
161
162
|
metrics.set_meter_provider(meter_provider)
|
|
162
|
-
|
|
163
|
+
self._meter_provider = meter_provider
|
|
164
|
+
registry.register_value(MeterProvider, self._meter_provider)
|
|
163
165
|
|
|
164
166
|
return {"tracer_provider": self._tracer_provider}
|
|
165
167
|
|
|
@@ -179,14 +181,9 @@ class OTelExtension(BaseExtension, HasMiddleware):
|
|
|
179
181
|
)
|
|
180
182
|
]
|
|
181
183
|
|
|
182
|
-
def _setup_auto_instrumentation(self) -> None:
|
|
184
|
+
def _setup_auto_instrumentation(self, app: FastAPI) -> None:
|
|
183
185
|
"""Setup auto-instrumentation based on settings."""
|
|
184
186
|
instrumentors = [
|
|
185
|
-
(
|
|
186
|
-
self.settings.instrument_fastapi,
|
|
187
|
-
"opentelemetry.instrumentation.fastapi",
|
|
188
|
-
"FastAPIInstrumentor",
|
|
189
|
-
),
|
|
190
187
|
(
|
|
191
188
|
self.settings.instrument_sqlalchemy,
|
|
192
189
|
"opentelemetry.instrumentation.sqlalchemy",
|
|
@@ -208,6 +205,17 @@ class OTelExtension(BaseExtension, HasMiddleware):
|
|
|
208
205
|
if enabled:
|
|
209
206
|
self._try_instrument(module, class_name)
|
|
210
207
|
|
|
208
|
+
if self.settings.instrument_fastapi:
|
|
209
|
+
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
|
|
210
|
+
|
|
211
|
+
inst = FastAPIInstrumentor()
|
|
212
|
+
inst.instrument_app(
|
|
213
|
+
app,
|
|
214
|
+
tracer_provider=self._tracer_provider,
|
|
215
|
+
meter_provider=self._meter_provider,
|
|
216
|
+
)
|
|
217
|
+
logger.debug("FastAPIInstrumentor auto-instrumentation enabled")
|
|
218
|
+
|
|
211
219
|
def _try_instrument(self, module: str, class_name: str) -> None:
|
|
212
220
|
try:
|
|
213
221
|
mod = importlib.import_module(module)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|