Skip to content

Commit ca9a110

Browse files
authored
Merge branch 'main' into fix-fastapi-url
2 parents b78bcef + fd21563 commit ca9a110

File tree

57 files changed

+2530
-284
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+2530
-284
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,11 @@ body:
6464
options:
6565
- "No"
6666
- "Yes"
67+
68+
- type: dropdown
69+
attributes:
70+
label: Tip
71+
description: This element is static, used to render a helpful sub-heading for end-users and community members to help prioritize issues. Please leave as is.
72+
options:
73+
- <sub>[React](https://github.blog/news-insights/product-news/add-reactions-to-pull-requests-issues-and-comments/) with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it. Learn more [here](https://opentelemetry.io/community/end-user/issue-participation/).</sub>
74+
default: 0

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,11 @@ body:
4848
options:
4949
- "No"
5050
- "Yes"
51+
52+
- type: dropdown
53+
attributes:
54+
label: Tip
55+
description: This element is static, used to render a helpful sub-heading for end-users and community members to help prioritize issues. Please leave as is.
56+
options:
57+
- <sub>[React](https://github.blog/news-insights/product-news/add-reactions-to-pull-requests-issues-and-comments/) with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it. Learn more [here](https://opentelemetry.io/community/end-user/issue-participation/).</sub>
58+
default: 0

.github/component_owners.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,11 @@ components:
3333
- dorkolog
3434

3535
propagator/opentelemetry-propagator-aws-xray:
36-
- NathanielRN
36+
- jj22ee
3737

3838
sdk-extension/opentelemetry-sdk-extension-aws:
39-
- NathanielRN
40-
- Kausik-A
4139
- srprash
40+
- jj22ee
4241

4342
instrumentation/opentelemetry-instrumentation-tortoiseorm:
4443
- tonybaloney

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1515

1616
### Fixed
1717

18+
- `opentelemetry-instrumentation-fastapi`: Fix middleware ordering to cover all exception handling use cases.
19+
([#3664](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3664))
20+
- `opentelemetry-instrumentation-asgi`: Make all user hooks failsafe and record exceptions in hooks.
21+
([#3664](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3664))
22+
- `opentelemetry-instrumentation-fastapi`: Fix memory leak in `uninstrument_app()` by properly removing apps from the tracking set
23+
([#3688](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3688))
1824
- `opentelemetry-instrumentation-tornado` Fix server (request) duration metric calculation
1925
([#3679](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3679))
26+
- `opentelemetry-instrumentation-tornado`: Fix to properly skip all server telemetry when URL excluded.
27+
([#3680](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3680))
2028
- `opentelemetry-instrumentation`: Avoid calls to `context.detach` with `None` token.
2129
([#3673](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3673))
30+
- `opentelemetry-instrumentation-starlette`/`opentelemetry-instrumentation-fastapi`: Fixes a crash when host-based routing is used
31+
([#3507](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3507))
32+
- Fix documentation order of sections and headers for Django, Flask, MySQL, mysqlclient, psycopg, psycopg2, pymysql, sqlalchemy instrumentations.
33+
([#3719](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3719))
2234

2335
### Added
2436

2537
- `opentelemetry-instrumentation-confluent-kafka` Add support for confluent-kafka <=2.11.0
2638
([#3685](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3685))
39+
- `opentelemetry-instrumentation-system-metrics`: Add `cpython.gc.collected_objects` and `cpython.gc.uncollectable_objects` metrics
40+
([#3666](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3666))
41+
- `opentelemetry-sdk-extension-aws` Add AWS X-Ray Remote Sampler with initial Rules Poller implementation
42+
([#3366](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3366))
43+
- `opentelemetry-instrumentation`: add support for `OTEL_PYTHON_AUTO_INSTRUMENTATION_EXPERIMENTAL_GEVENT_PATCH` to inform opentelemetry-instrument about gevent monkeypatching
44+
([#3699](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3699))
2745

2846
## Version 1.36.0/0.57b0 (2025-07-29)
2947

instrumentation-genai/opentelemetry-instrumentation-openai-v2/examples/manual/main.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44
from openai import OpenAI
55

66
# NOTE: OpenTelemetry Python Logs and Events APIs are in beta
7-
from opentelemetry import _events, _logs, trace
7+
from opentelemetry import _events, _logs, metrics, trace
88
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
99
OTLPLogExporter,
1010
)
11+
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import (
12+
OTLPMetricExporter,
13+
)
1114
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
1215
OTLPSpanExporter,
1316
)
1417
from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor
1518
from opentelemetry.sdk._events import EventLoggerProvider
1619
from opentelemetry.sdk._logs import LoggerProvider
1720
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
21+
from opentelemetry.sdk.metrics import MeterProvider
22+
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
1823
from opentelemetry.sdk.trace import TracerProvider
1924
from opentelemetry.sdk.trace.export import BatchSpanProcessor
2025

@@ -31,6 +36,17 @@
3136
)
3237
_events.set_event_logger_provider(EventLoggerProvider())
3338

39+
# configure metrics
40+
metrics.set_meter_provider(
41+
MeterProvider(
42+
metric_readers=[
43+
PeriodicExportingMetricReader(
44+
OTLPMetricExporter(),
45+
),
46+
]
47+
)
48+
)
49+
3450
# instrument OpenAI
3551
OpenAIInstrumentor().instrument()
3652

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
openai~=1.57.3
22

3-
opentelemetry-sdk~=1.30.0
4-
opentelemetry-exporter-otlp-proto-grpc~=1.30.0
3+
opentelemetry-sdk~=1.36.0
4+
opentelemetry-exporter-otlp-proto-grpc~=1.36.0
55
opentelemetry-instrumentation-openai-v2~=2.1b0
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
openai~=1.57.3
22

3-
opentelemetry-sdk~=1.30.0
4-
opentelemetry-exporter-otlp-proto-grpc~=1.30.0
5-
opentelemetry-distro~=0.51b0
3+
opentelemetry-sdk~=1.36.0
4+
opentelemetry-exporter-otlp-proto-grpc~=1.36.0
5+
opentelemetry-distro~=0.57b0
66
opentelemetry-instrumentation-openai-v2~=2.1b0

instrumentation-genai/opentelemetry-instrumentation-vertexai/src/opentelemetry/instrumentation/vertexai/events.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
# type: ignore[reportUnknownDeprecated]
16+
1517
"""
1618
Factories for event types described in
1719
https://github.com/open-telemetry/semantic-conventions/blob/main/docs/gen-ai/gen-ai-events.md#system-event.

instrumentation-genai/opentelemetry-instrumentation-vertexai/src/opentelemetry/instrumentation/vertexai/utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
# type: ignore[reportUnknownDeprecated]
16+
1517
from __future__ import annotations
1618

1719
import re

instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/__init__.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ def client_response_hook(span: Span, scope: Scope, message: dict[str, Any]):
268268
HTTP_SERVER_REQUEST_DURATION,
269269
)
270270
from opentelemetry.semconv.trace import SpanAttributes
271-
from opentelemetry.trace import set_span_in_context
271+
from opentelemetry.trace import Span, set_span_in_context
272272
from opentelemetry.util.http import (
273273
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS,
274274
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST,
@@ -661,9 +661,23 @@ def __init__(
661661
self.default_span_details = (
662662
default_span_details or get_default_span_details
663663
)
664-
self.server_request_hook = server_request_hook
665-
self.client_request_hook = client_request_hook
666-
self.client_response_hook = client_response_hook
664+
665+
def failsafe(func):
666+
if func is None:
667+
return None
668+
669+
@wraps(func)
670+
def wrapper(span: Span, *args, **kwargs):
671+
try:
672+
func(span, *args, **kwargs)
673+
except Exception as exc: # pylint: disable=broad-exception-caught
674+
span.record_exception(exc)
675+
676+
return wrapper
677+
678+
self.server_request_hook = failsafe(server_request_hook)
679+
self.client_request_hook = failsafe(client_request_hook)
680+
self.client_response_hook = failsafe(client_response_hook)
667681
self.content_length_header = None
668682
self._sem_conv_opt_in_mode = sem_conv_opt_in_mode
669683

0 commit comments

Comments
 (0)