From be8dfdc4d88ad6f9d3e7f1945e8b47cebc076dc1 Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Wed, 3 Dec 2025 00:42:05 -0800 Subject: [PATCH 1/4] Add safety check for bedrock ConverseStream responses (#3990) * add defensive check for from_converse response * add defensive check for from_converse response * Update instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock_utils.py * Update CHANGELOG.md * add comment for malformed repsonses in from_converse * merge suggested changes * fix botocore converse stream test * lint fix * Update instrumentation/opentelemetry-instrumentation-botocore/tests/test_botocore_bedrock.py * add defensive check just in case content doesn't exist in orig_message * lint fix * new line --------- Co-authored-by: Riccardo Magliocchetti --- CHANGELOG.md | 2 ++ .../botocore/extensions/bedrock_utils.py | 8 +++++--- .../tests/test_botocore_bedrock.py | 11 +++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cbbe7aa..bfef4b9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- `opentelemetry-instrumentation-botocore`: bedrock: Add safety check for bedrock ConverseStream responses + ([#3990](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3990)) - `opentelemetry-instrumentation-botocore`: bedrock: only decode JSON input buffer in Anthropic Claude streaming ([#3875](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3875)) - `opentelemetry-instrumentation-aiohttp-client`, `opentelemetry-instrumentation-aiohttp-server`: Fix readme links and text diff --git a/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock_utils.py b/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock_utils.py index 2260d8ac..0b164b1f 100644 --- a/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock_utils.py +++ b/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock_utils.py @@ -528,7 +528,9 @@ def __init__( def from_converse( cls, response: dict[str, Any], capture_content: bool ) -> _Choice: - orig_message = response["output"]["message"] + # be defensive about malformed responses, refer to #3958 for more context + output = response.get("output", {}) + orig_message = output.get("message", {}) if role := orig_message.get("role"): message = {"role": role} else: @@ -537,8 +539,8 @@ def from_converse( if tool_calls := extract_tool_calls(orig_message, capture_content): message["tool_calls"] = tool_calls - elif capture_content: - message["content"] = orig_message["content"] + elif capture_content and (content := orig_message.get("content")): + message["content"] = content return cls(message, response["stopReason"], index=0) diff --git a/instrumentation/opentelemetry-instrumentation-botocore/tests/test_botocore_bedrock.py b/instrumentation/opentelemetry-instrumentation-botocore/tests/test_botocore_bedrock.py index da8194c6..a8a0afe1 100644 --- a/instrumentation/opentelemetry-instrumentation-botocore/tests/test_botocore_bedrock.py +++ b/instrumentation/opentelemetry-instrumentation-botocore/tests/test_botocore_bedrock.py @@ -27,6 +27,7 @@ from opentelemetry.instrumentation.botocore.extensions.bedrock_utils import ( InvokeModelWithResponseStreamWrapper, + _Choice, ) from opentelemetry.semconv._incubating.attributes.error_attributes import ( ERROR_TYPE, @@ -3051,6 +3052,16 @@ def stream_error_callback(exc, ended): assert "input" not in tool_block +def test_converse_stream_with_missing_output_in_response(): + # Test malformed response missing "output" key + malformed_response = {"stopReason": "end_turn"} + choice = _Choice.from_converse(malformed_response, capture_content=True) + + assert choice.finish_reason == "end_turn" + assert choice.message == {} + assert choice.index == 0 + + def amazon_nova_messages(): return [ {"role": "user", "content": [{"text": "Say this is a test"}]}, From f88fa49e4ce947dbce3539c3b1f6e6fdd5d56cc7 Mon Sep 17 00:00:00 2001 From: "otelbot[bot]" <197425009+otelbot[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:38:11 +0100 Subject: [PATCH 2/4] Update version to 1.40.0.dev/0.61b0.dev (#3995) Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> --- CHANGELOG.md | 2 + _template/version.py | 2 +- eachdist.ini | 4 +- .../gcp_credential_provider/version.py | 2 +- .../prometheus_remote_write/version.py | 2 +- .../pyproject.toml | 2 +- .../exporter/richconsole/version.py | 2 +- .../pyproject.toml | 2 +- .../instrumentation/aio_pika/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/aiohttp_client/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/aiohttp_server/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/aiokafka/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/aiopg/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/asgi/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/asyncclick/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/asyncio/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/asyncpg/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/aws_lambda/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/boto/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/boto3sqs/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/botocore/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/cassandra/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/celery/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/click/version.py | 2 +- .../pyproject.toml | 2 +- .../confluent_kafka/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/dbapi/version.py | 2 +- .../pyproject.toml | 10 +- .../instrumentation/django/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/elasticsearch/version.py | 2 +- .../pyproject.toml | 8 +- .../instrumentation/falcon/version.py | 2 +- .../pyproject.toml | 8 +- .../instrumentation/fastapi/version.py | 2 +- .../pyproject.toml | 8 +- .../instrumentation/flask/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/grpc/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/httpx/version.py | 2 +- .../pyproject.toml | 2 +- .../instrumentation/jinja2/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/kafka/version.py | 2 +- .../pyproject.toml | 2 +- .../instrumentation/logging/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/mysql/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/mysqlclient/version.py | 2 +- .../pyproject.toml | 2 +- .../instrumentation/pika/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/psycopg/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/psycopg2/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/pymemcache/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/pymongo/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/pymssql/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/pymysql/version.py | 2 +- .../pyproject.toml | 8 +- .../instrumentation/pyramid/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/redis/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/remoulade/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/requests/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/sqlalchemy/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/sqlite3/version.py | 2 +- .../pyproject.toml | 8 +- .../instrumentation/starlette/version.py | 2 +- .../pyproject.toml | 2 +- .../instrumentation/system_metrics/version.py | 2 +- .../pyproject.toml | 2 +- .../instrumentation/threading/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/tornado/version.py | 2 +- .../pyproject.toml | 4 +- .../instrumentation/tortoiseorm/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/urllib/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/urllib3/version.py | 2 +- .../pyproject.toml | 6 +- .../instrumentation/wsgi/version.py | 2 +- .../pyproject.toml | 102 ++++++++--------- .../contrib-instrumentations/version.py | 2 +- opentelemetry-distro/pyproject.toml | 4 +- .../src/opentelemetry/distro/version.py | 2 +- opentelemetry-instrumentation/pyproject.toml | 2 +- .../instrumentation/bootstrap_gen.py | 108 +++++++++--------- .../opentelemetry/instrumentation/version.py | 2 +- .../processor/baggage/version.py | 2 +- .../propagators/ot_trace/version.py | 2 +- .../resource/detector/containerid/version.py | 2 +- .../src/opentelemetry/util/http/version.py | 2 +- 120 files changed, 292 insertions(+), 290 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfef4b9c..b637347b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## Version 1.39.0/0.60b0 (2025-12-03) + - `opentelemetry-instrumentation-requests`, `opentelemetry-instrumentation-wsgi`, `opentelemetry-instrumentation-asgi` Detect synthetic sources on requests, ASGI, and WSGI. ([#3674](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3674)) diff --git a/_template/version.py b/_template/version.py index eee85dcc..c099e944 100644 --- a/_template/version.py +++ b/_template/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/eachdist.ini b/eachdist.ini index 23925806..f570632b 100644 --- a/eachdist.ini +++ b/eachdist.ini @@ -16,7 +16,7 @@ sortfirst= ext/* [stable] -version=1.39.0.dev +version=1.40.0.dev packages= opentelemetry-sdk @@ -35,7 +35,7 @@ packages= opentelemetry-exporter-credential-provider-gcp [prerelease] -version=0.60b0.dev +version=0.61b0.dev packages= all diff --git a/exporter/opentelemetry-exporter-credential-provider-gcp/src/opentelemetry/gcp_credential_provider/version.py b/exporter/opentelemetry-exporter-credential-provider-gcp/src/opentelemetry/gcp_credential_provider/version.py index eee85dcc..c099e944 100644 --- a/exporter/opentelemetry-exporter-credential-provider-gcp/src/opentelemetry/gcp_credential_provider/version.py +++ b/exporter/opentelemetry-exporter-credential-provider-gcp/src/opentelemetry/gcp_credential_provider/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/exporter/opentelemetry-exporter-prometheus-remote-write/src/opentelemetry/exporter/prometheus_remote_write/version.py b/exporter/opentelemetry-exporter-prometheus-remote-write/src/opentelemetry/exporter/prometheus_remote_write/version.py index eee85dcc..c099e944 100644 --- a/exporter/opentelemetry-exporter-prometheus-remote-write/src/opentelemetry/exporter/prometheus_remote_write/version.py +++ b/exporter/opentelemetry-exporter-prometheus-remote-write/src/opentelemetry/exporter/prometheus_remote_write/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/exporter/opentelemetry-exporter-richconsole/pyproject.toml b/exporter/opentelemetry-exporter-richconsole/pyproject.toml index 93d3a736..ef33f274 100644 --- a/exporter/opentelemetry-exporter-richconsole/pyproject.toml +++ b/exporter/opentelemetry-exporter-richconsole/pyproject.toml @@ -27,7 +27,7 @@ classifiers = [ dependencies = [ "opentelemetry-api ~= 1.12", "opentelemetry-sdk ~= 1.12", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "rich>=10.0.0", ] diff --git a/exporter/opentelemetry-exporter-richconsole/src/opentelemetry/exporter/richconsole/version.py b/exporter/opentelemetry-exporter-richconsole/src/opentelemetry/exporter/richconsole/version.py index eee85dcc..c099e944 100644 --- a/exporter/opentelemetry-exporter-richconsole/src/opentelemetry/exporter/richconsole/version.py +++ b/exporter/opentelemetry-exporter-richconsole/src/opentelemetry/exporter/richconsole/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml index bda37551..dadab87d 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml @@ -26,7 +26,7 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.5", - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/version.py b/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/version.py +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-client/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aiohttp-client/pyproject.toml index cbd3096e..3cdcd4fc 100644 --- a/instrumentation/opentelemetry-instrumentation-aiohttp-client/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aiohttp-client/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/version.py b/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/version.py index 2724d580..a618d89e 100644 --- a/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/version.py +++ b/instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-server/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aiohttp-server/pyproject.toml index 056390fd..ed2e9b82 100644 --- a/instrumentation/opentelemetry-instrumentation-aiohttp-server/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aiohttp-server/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server/version.py b/instrumentation/opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server/version.py +++ b/instrumentation/opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-aiokafka/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aiokafka/pyproject.toml index 9336aee0..d1fcc540 100644 --- a/instrumentation/opentelemetry-instrumentation-aiokafka/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aiokafka/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.27", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "typing_extensions ~= 4.1", ] diff --git a/instrumentation/opentelemetry-instrumentation-aiokafka/src/opentelemetry/instrumentation/aiokafka/version.py b/instrumentation/opentelemetry-instrumentation-aiokafka/src/opentelemetry/instrumentation/aiokafka/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-aiokafka/src/opentelemetry/instrumentation/aiokafka/version.py +++ b/instrumentation/opentelemetry-instrumentation-aiokafka/src/opentelemetry/instrumentation/aiokafka/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-aiopg/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aiopg/pyproject.toml index c5003ac2..14183a7f 100644 --- a/instrumentation/opentelemetry-instrumentation-aiopg/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aiopg/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/version.py b/instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/version.py +++ b/instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-asgi/pyproject.toml b/instrumentation/opentelemetry-instrumentation-asgi/pyproject.toml index 7863ddd3..15ab20be 100644 --- a/instrumentation/opentelemetry-instrumentation-asgi/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-asgi/pyproject.toml @@ -27,9 +27,9 @@ classifiers = [ dependencies = [ "asgiref ~= 3.0", "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/version.py b/instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/version.py +++ b/instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-asyncclick/pyproject.toml b/instrumentation/opentelemetry-instrumentation-asyncclick/pyproject.toml index 12930f47..b9a89c20 100644 --- a/instrumentation/opentelemetry-instrumentation-asyncclick/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-asyncclick/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt ~= 1.0", "typing_extensions ~= 4.12", ] diff --git a/instrumentation/opentelemetry-instrumentation-asyncclick/src/opentelemetry/instrumentation/asyncclick/version.py b/instrumentation/opentelemetry-instrumentation-asyncclick/src/opentelemetry/instrumentation/asyncclick/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-asyncclick/src/opentelemetry/instrumentation/asyncclick/version.py +++ b/instrumentation/opentelemetry-instrumentation-asyncclick/src/opentelemetry/instrumentation/asyncclick/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-asyncio/pyproject.toml b/instrumentation/opentelemetry-instrumentation-asyncio/pyproject.toml index 79f1ce35..4f1a735d 100644 --- a/instrumentation/opentelemetry-instrumentation-asyncio/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-asyncio/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.14", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-asyncio/src/opentelemetry/instrumentation/asyncio/version.py b/instrumentation/opentelemetry-instrumentation-asyncio/src/opentelemetry/instrumentation/asyncio/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-asyncio/src/opentelemetry/instrumentation/asyncio/version.py +++ b/instrumentation/opentelemetry-instrumentation-asyncio/src/opentelemetry/instrumentation/asyncio/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-asyncpg/pyproject.toml b/instrumentation/opentelemetry-instrumentation-asyncpg/pyproject.toml index 2a5bd1ba..96b7b654 100644 --- a/instrumentation/opentelemetry-instrumentation-asyncpg/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-asyncpg/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-asyncpg/src/opentelemetry/instrumentation/asyncpg/version.py b/instrumentation/opentelemetry-instrumentation-asyncpg/src/opentelemetry/instrumentation/asyncpg/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-asyncpg/src/opentelemetry/instrumentation/asyncpg/version.py +++ b/instrumentation/opentelemetry-instrumentation-asyncpg/src/opentelemetry/instrumentation/asyncpg/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-aws-lambda/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aws-lambda/pyproject.toml index ac039f15..ebbffbdb 100644 --- a/instrumentation/opentelemetry-instrumentation-aws-lambda/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aws-lambda/pyproject.toml @@ -25,8 +25,8 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] dependencies = [ - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "opentelemetry-propagator-aws-xray ~= 1.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-aws-lambda/src/opentelemetry/instrumentation/aws_lambda/version.py b/instrumentation/opentelemetry-instrumentation-aws-lambda/src/opentelemetry/instrumentation/aws_lambda/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-aws-lambda/src/opentelemetry/instrumentation/aws_lambda/version.py +++ b/instrumentation/opentelemetry-instrumentation-aws-lambda/src/opentelemetry/instrumentation/aws_lambda/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-boto/pyproject.toml b/instrumentation/opentelemetry-instrumentation-boto/pyproject.toml index 5261a79f..a5fe88ea 100644 --- a/instrumentation/opentelemetry-instrumentation-boto/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-boto/pyproject.toml @@ -25,8 +25,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-boto/src/opentelemetry/instrumentation/boto/version.py b/instrumentation/opentelemetry-instrumentation-boto/src/opentelemetry/instrumentation/boto/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-boto/src/opentelemetry/instrumentation/boto/version.py +++ b/instrumentation/opentelemetry-instrumentation-boto/src/opentelemetry/instrumentation/boto/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-boto3sqs/pyproject.toml b/instrumentation/opentelemetry-instrumentation-boto3sqs/pyproject.toml index b4bc453c..d9fea6d3 100644 --- a/instrumentation/opentelemetry-instrumentation-boto3sqs/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-boto3sqs/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-boto3sqs/src/opentelemetry/instrumentation/boto3sqs/version.py b/instrumentation/opentelemetry-instrumentation-boto3sqs/src/opentelemetry/instrumentation/boto3sqs/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-boto3sqs/src/opentelemetry/instrumentation/boto3sqs/version.py +++ b/instrumentation/opentelemetry-instrumentation-boto3sqs/src/opentelemetry/instrumentation/boto3sqs/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-botocore/pyproject.toml b/instrumentation/opentelemetry-instrumentation-botocore/pyproject.toml index 8ab96176..cc4f480c 100644 --- a/instrumentation/opentelemetry-instrumentation-botocore/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-botocore/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.37", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "opentelemetry-propagator-aws-xray ~= 1.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/version.py b/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/version.py +++ b/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-cassandra/pyproject.toml b/instrumentation/opentelemetry-instrumentation-cassandra/pyproject.toml index 7026c51f..972f5cc7 100644 --- a/instrumentation/opentelemetry-instrumentation-cassandra/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-cassandra/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-cassandra/src/opentelemetry/instrumentation/cassandra/version.py b/instrumentation/opentelemetry-instrumentation-cassandra/src/opentelemetry/instrumentation/cassandra/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-cassandra/src/opentelemetry/instrumentation/cassandra/version.py +++ b/instrumentation/opentelemetry-instrumentation-cassandra/src/opentelemetry/instrumentation/cassandra/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-celery/pyproject.toml b/instrumentation/opentelemetry-instrumentation-celery/pyproject.toml index 38468afa..bfd6dce5 100644 --- a/instrumentation/opentelemetry-instrumentation-celery/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-celery/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-celery/src/opentelemetry/instrumentation/celery/version.py b/instrumentation/opentelemetry-instrumentation-celery/src/opentelemetry/instrumentation/celery/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-celery/src/opentelemetry/instrumentation/celery/version.py +++ b/instrumentation/opentelemetry-instrumentation-celery/src/opentelemetry/instrumentation/celery/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-click/pyproject.toml b/instrumentation/opentelemetry-instrumentation-click/pyproject.toml index 427d3079..e16eebae 100644 --- a/instrumentation/opentelemetry-instrumentation-click/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-click/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-click/src/opentelemetry/instrumentation/click/version.py b/instrumentation/opentelemetry-instrumentation-click/src/opentelemetry/instrumentation/click/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-click/src/opentelemetry/instrumentation/click/version.py +++ b/instrumentation/opentelemetry-instrumentation-click/src/opentelemetry/instrumentation/click/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-confluent-kafka/pyproject.toml b/instrumentation/opentelemetry-instrumentation-confluent-kafka/pyproject.toml index 59a4a8c8..2e78da1a 100644 --- a/instrumentation/opentelemetry-instrumentation-confluent-kafka/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-confluent-kafka/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] dependencies = [ - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", "opentelemetry-api ~= 1.12", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-confluent-kafka/src/opentelemetry/instrumentation/confluent_kafka/version.py b/instrumentation/opentelemetry-instrumentation-confluent-kafka/src/opentelemetry/instrumentation/confluent_kafka/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-confluent-kafka/src/opentelemetry/instrumentation/confluent_kafka/version.py +++ b/instrumentation/opentelemetry-instrumentation-confluent-kafka/src/opentelemetry/instrumentation/confluent_kafka/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-dbapi/pyproject.toml b/instrumentation/opentelemetry-instrumentation-dbapi/pyproject.toml index f9d9677d..95bbcb5e 100644 --- a/instrumentation/opentelemetry-instrumentation-dbapi/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-dbapi/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-dbapi/src/opentelemetry/instrumentation/dbapi/version.py b/instrumentation/opentelemetry-instrumentation-dbapi/src/opentelemetry/instrumentation/dbapi/version.py index a6757319..076fd05e 100644 --- a/instrumentation/opentelemetry-instrumentation-dbapi/src/opentelemetry/instrumentation/dbapi/version.py +++ b/instrumentation/opentelemetry-instrumentation-dbapi/src/opentelemetry/instrumentation/dbapi/version.py @@ -12,6 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" _instruments = tuple() diff --git a/instrumentation/opentelemetry-instrumentation-django/pyproject.toml b/instrumentation/opentelemetry-instrumentation-django/pyproject.toml index 7701206d..c6151a63 100644 --- a/instrumentation/opentelemetry-instrumentation-django/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-django/pyproject.toml @@ -26,15 +26,15 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-wsgi == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-wsgi == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] asgi = [ - "opentelemetry-instrumentation-asgi == 0.60b0.dev", + "opentelemetry-instrumentation-asgi == 0.61b0.dev", ] instruments = [ "django >= 1.10", diff --git a/instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/version.py b/instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/version.py +++ b/instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-elasticsearch/pyproject.toml b/instrumentation/opentelemetry-instrumentation-elasticsearch/pyproject.toml index 149c12d7..21eea1a5 100644 --- a/instrumentation/opentelemetry-instrumentation-elasticsearch/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-elasticsearch/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/version.py b/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/version.py +++ b/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-falcon/pyproject.toml b/instrumentation/opentelemetry-instrumentation-falcon/pyproject.toml index c3f79c91..e76aea12 100644 --- a/instrumentation/opentelemetry-instrumentation-falcon/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-falcon/pyproject.toml @@ -26,10 +26,10 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-wsgi == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-wsgi == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", "packaging >= 20.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-falcon/src/opentelemetry/instrumentation/falcon/version.py b/instrumentation/opentelemetry-instrumentation-falcon/src/opentelemetry/instrumentation/falcon/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-falcon/src/opentelemetry/instrumentation/falcon/version.py +++ b/instrumentation/opentelemetry-instrumentation-falcon/src/opentelemetry/instrumentation/falcon/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-fastapi/pyproject.toml b/instrumentation/opentelemetry-instrumentation-fastapi/pyproject.toml index 2c30d00c..4a0d0a39 100644 --- a/instrumentation/opentelemetry-instrumentation-fastapi/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-fastapi/pyproject.toml @@ -26,10 +26,10 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-asgi == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-asgi == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-fastapi/src/opentelemetry/instrumentation/fastapi/version.py b/instrumentation/opentelemetry-instrumentation-fastapi/src/opentelemetry/instrumentation/fastapi/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-fastapi/src/opentelemetry/instrumentation/fastapi/version.py +++ b/instrumentation/opentelemetry-instrumentation-fastapi/src/opentelemetry/instrumentation/fastapi/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-flask/pyproject.toml b/instrumentation/opentelemetry-instrumentation-flask/pyproject.toml index 946cfef7..9f95f229 100644 --- a/instrumentation/opentelemetry-instrumentation-flask/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-flask/pyproject.toml @@ -26,10 +26,10 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-wsgi == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-wsgi == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", "packaging >= 21.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/version.py b/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/version.py +++ b/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-grpc/pyproject.toml b/instrumentation/opentelemetry-instrumentation-grpc/pyproject.toml index 0c1fc823..81679e4f 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-grpc/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/version.py b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/version.py +++ b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-httpx/pyproject.toml b/instrumentation/opentelemetry-instrumentation-httpx/pyproject.toml index 5446d234..11eed424 100644 --- a/instrumentation/opentelemetry-instrumentation-httpx/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-httpx/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-httpx/src/opentelemetry/instrumentation/httpx/version.py b/instrumentation/opentelemetry-instrumentation-httpx/src/opentelemetry/instrumentation/httpx/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-httpx/src/opentelemetry/instrumentation/httpx/version.py +++ b/instrumentation/opentelemetry-instrumentation-httpx/src/opentelemetry/instrumentation/httpx/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-jinja2/pyproject.toml b/instrumentation/opentelemetry-instrumentation-jinja2/pyproject.toml index 61ab236f..f414dc60 100644 --- a/instrumentation/opentelemetry-instrumentation-jinja2/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-jinja2/pyproject.toml @@ -26,7 +26,7 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-jinja2/src/opentelemetry/instrumentation/jinja2/version.py b/instrumentation/opentelemetry-instrumentation-jinja2/src/opentelemetry/instrumentation/jinja2/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-jinja2/src/opentelemetry/instrumentation/jinja2/version.py +++ b/instrumentation/opentelemetry-instrumentation-jinja2/src/opentelemetry/instrumentation/jinja2/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-kafka-python/pyproject.toml b/instrumentation/opentelemetry-instrumentation-kafka-python/pyproject.toml index f010ba4f..d06d32e6 100644 --- a/instrumentation/opentelemetry-instrumentation-kafka-python/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-kafka-python/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.5", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-kafka-python/src/opentelemetry/instrumentation/kafka/version.py b/instrumentation/opentelemetry-instrumentation-kafka-python/src/opentelemetry/instrumentation/kafka/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-kafka-python/src/opentelemetry/instrumentation/kafka/version.py +++ b/instrumentation/opentelemetry-instrumentation-kafka-python/src/opentelemetry/instrumentation/kafka/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-logging/pyproject.toml b/instrumentation/opentelemetry-instrumentation-logging/pyproject.toml index caea3ce1..723cade2 100644 --- a/instrumentation/opentelemetry-instrumentation-logging/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-logging/pyproject.toml @@ -26,7 +26,7 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/version.py b/instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/version.py index a6757319..076fd05e 100644 --- a/instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/version.py +++ b/instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/version.py @@ -12,6 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" _instruments = tuple() diff --git a/instrumentation/opentelemetry-instrumentation-mysql/pyproject.toml b/instrumentation/opentelemetry-instrumentation-mysql/pyproject.toml index 2ce91067..4cabc080 100644 --- a/instrumentation/opentelemetry-instrumentation-mysql/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-mysql/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-mysql/src/opentelemetry/instrumentation/mysql/version.py b/instrumentation/opentelemetry-instrumentation-mysql/src/opentelemetry/instrumentation/mysql/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-mysql/src/opentelemetry/instrumentation/mysql/version.py +++ b/instrumentation/opentelemetry-instrumentation-mysql/src/opentelemetry/instrumentation/mysql/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-mysqlclient/pyproject.toml b/instrumentation/opentelemetry-instrumentation-mysqlclient/pyproject.toml index 56c42c9d..0b25416d 100644 --- a/instrumentation/opentelemetry-instrumentation-mysqlclient/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-mysqlclient/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-mysqlclient/src/opentelemetry/instrumentation/mysqlclient/version.py b/instrumentation/opentelemetry-instrumentation-mysqlclient/src/opentelemetry/instrumentation/mysqlclient/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-mysqlclient/src/opentelemetry/instrumentation/mysqlclient/version.py +++ b/instrumentation/opentelemetry-instrumentation-mysqlclient/src/opentelemetry/instrumentation/mysqlclient/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-pika/pyproject.toml b/instrumentation/opentelemetry-instrumentation-pika/pyproject.toml index e59c7dcc..ba5ae498 100644 --- a/instrumentation/opentelemetry-instrumentation-pika/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-pika/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] dependencies = [ - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", "opentelemetry-api ~= 1.5", "packaging >= 20.0", "wrapt >= 1.0.0, < 2.0.0", diff --git a/instrumentation/opentelemetry-instrumentation-pika/src/opentelemetry/instrumentation/pika/version.py b/instrumentation/opentelemetry-instrumentation-pika/src/opentelemetry/instrumentation/pika/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-pika/src/opentelemetry/instrumentation/pika/version.py +++ b/instrumentation/opentelemetry-instrumentation-pika/src/opentelemetry/instrumentation/pika/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-psycopg/pyproject.toml b/instrumentation/opentelemetry-instrumentation-psycopg/pyproject.toml index 60439f25..4f964921 100644 --- a/instrumentation/opentelemetry-instrumentation-psycopg/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-psycopg/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-psycopg/src/opentelemetry/instrumentation/psycopg/version.py b/instrumentation/opentelemetry-instrumentation-psycopg/src/opentelemetry/instrumentation/psycopg/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-psycopg/src/opentelemetry/instrumentation/psycopg/version.py +++ b/instrumentation/opentelemetry-instrumentation-psycopg/src/opentelemetry/instrumentation/psycopg/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-psycopg2/pyproject.toml b/instrumentation/opentelemetry-instrumentation-psycopg2/pyproject.toml index befb9876..2ee170b0 100644 --- a/instrumentation/opentelemetry-instrumentation-psycopg2/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-psycopg2/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-psycopg2/src/opentelemetry/instrumentation/psycopg2/version.py b/instrumentation/opentelemetry-instrumentation-psycopg2/src/opentelemetry/instrumentation/psycopg2/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-psycopg2/src/opentelemetry/instrumentation/psycopg2/version.py +++ b/instrumentation/opentelemetry-instrumentation-psycopg2/src/opentelemetry/instrumentation/psycopg2/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-pymemcache/pyproject.toml b/instrumentation/opentelemetry-instrumentation-pymemcache/pyproject.toml index c8a37182..60b81fa8 100644 --- a/instrumentation/opentelemetry-instrumentation-pymemcache/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-pymemcache/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-pymemcache/src/opentelemetry/instrumentation/pymemcache/version.py b/instrumentation/opentelemetry-instrumentation-pymemcache/src/opentelemetry/instrumentation/pymemcache/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-pymemcache/src/opentelemetry/instrumentation/pymemcache/version.py +++ b/instrumentation/opentelemetry-instrumentation-pymemcache/src/opentelemetry/instrumentation/pymemcache/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-pymongo/pyproject.toml b/instrumentation/opentelemetry-instrumentation-pymongo/pyproject.toml index 74f4f3ff..330b05ab 100644 --- a/instrumentation/opentelemetry-instrumentation-pymongo/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-pymongo/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-pymongo/src/opentelemetry/instrumentation/pymongo/version.py b/instrumentation/opentelemetry-instrumentation-pymongo/src/opentelemetry/instrumentation/pymongo/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-pymongo/src/opentelemetry/instrumentation/pymongo/version.py +++ b/instrumentation/opentelemetry-instrumentation-pymongo/src/opentelemetry/instrumentation/pymongo/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-pymssql/pyproject.toml b/instrumentation/opentelemetry-instrumentation-pymssql/pyproject.toml index e346420e..89e256e2 100644 --- a/instrumentation/opentelemetry-instrumentation-pymssql/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-pymssql/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-pymssql/src/opentelemetry/instrumentation/pymssql/version.py b/instrumentation/opentelemetry-instrumentation-pymssql/src/opentelemetry/instrumentation/pymssql/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-pymssql/src/opentelemetry/instrumentation/pymssql/version.py +++ b/instrumentation/opentelemetry-instrumentation-pymssql/src/opentelemetry/instrumentation/pymssql/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-pymysql/pyproject.toml b/instrumentation/opentelemetry-instrumentation-pymysql/pyproject.toml index 2fed9937..492282fd 100644 --- a/instrumentation/opentelemetry-instrumentation-pymysql/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-pymysql/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-pymysql/src/opentelemetry/instrumentation/pymysql/version.py b/instrumentation/opentelemetry-instrumentation-pymysql/src/opentelemetry/instrumentation/pymysql/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-pymysql/src/opentelemetry/instrumentation/pymysql/version.py +++ b/instrumentation/opentelemetry-instrumentation-pymysql/src/opentelemetry/instrumentation/pymysql/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-pyramid/pyproject.toml b/instrumentation/opentelemetry-instrumentation-pyramid/pyproject.toml index b9e1b7be..2ddb3ec7 100644 --- a/instrumentation/opentelemetry-instrumentation-pyramid/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-pyramid/pyproject.toml @@ -26,10 +26,10 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-wsgi == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-wsgi == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-pyramid/src/opentelemetry/instrumentation/pyramid/version.py b/instrumentation/opentelemetry-instrumentation-pyramid/src/opentelemetry/instrumentation/pyramid/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-pyramid/src/opentelemetry/instrumentation/pyramid/version.py +++ b/instrumentation/opentelemetry-instrumentation-pyramid/src/opentelemetry/instrumentation/pyramid/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-redis/pyproject.toml b/instrumentation/opentelemetry-instrumentation-redis/pyproject.toml index a2cf43b1..cfe511ab 100644 --- a/instrumentation/opentelemetry-instrumentation-redis/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-redis/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.12.1", ] diff --git a/instrumentation/opentelemetry-instrumentation-redis/src/opentelemetry/instrumentation/redis/version.py b/instrumentation/opentelemetry-instrumentation-redis/src/opentelemetry/instrumentation/redis/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-redis/src/opentelemetry/instrumentation/redis/version.py +++ b/instrumentation/opentelemetry-instrumentation-redis/src/opentelemetry/instrumentation/redis/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-remoulade/pyproject.toml b/instrumentation/opentelemetry-instrumentation-remoulade/pyproject.toml index 79fedc55..761299f0 100644 --- a/instrumentation/opentelemetry-instrumentation-remoulade/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-remoulade/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-remoulade/src/opentelemetry/instrumentation/remoulade/version.py b/instrumentation/opentelemetry-instrumentation-remoulade/src/opentelemetry/instrumentation/remoulade/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-remoulade/src/opentelemetry/instrumentation/remoulade/version.py +++ b/instrumentation/opentelemetry-instrumentation-remoulade/src/opentelemetry/instrumentation/remoulade/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-requests/pyproject.toml b/instrumentation/opentelemetry-instrumentation-requests/pyproject.toml index 31c2d0fe..107feac2 100644 --- a/instrumentation/opentelemetry-instrumentation-requests/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-requests/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/version.py b/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/version.py +++ b/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-sqlalchemy/pyproject.toml b/instrumentation/opentelemetry-instrumentation-sqlalchemy/pyproject.toml index 28c01d1b..fc382a86 100644 --- a/instrumentation/opentelemetry-instrumentation-sqlalchemy/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-sqlalchemy/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "packaging >= 21.0", "wrapt >= 1.11.2", ] diff --git a/instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/version.py b/instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/version.py +++ b/instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-sqlite3/pyproject.toml b/instrumentation/opentelemetry-instrumentation-sqlite3/pyproject.toml index 3aee7ca7..c6ba6ec9 100644 --- a/instrumentation/opentelemetry-instrumentation-sqlite3/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-sqlite3/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-dbapi == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-dbapi == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-sqlite3/src/opentelemetry/instrumentation/sqlite3/version.py b/instrumentation/opentelemetry-instrumentation-sqlite3/src/opentelemetry/instrumentation/sqlite3/version.py index a6757319..076fd05e 100644 --- a/instrumentation/opentelemetry-instrumentation-sqlite3/src/opentelemetry/instrumentation/sqlite3/version.py +++ b/instrumentation/opentelemetry-instrumentation-sqlite3/src/opentelemetry/instrumentation/sqlite3/version.py @@ -12,6 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" _instruments = tuple() diff --git a/instrumentation/opentelemetry-instrumentation-starlette/pyproject.toml b/instrumentation/opentelemetry-instrumentation-starlette/pyproject.toml index 595413b7..370968d6 100644 --- a/instrumentation/opentelemetry-instrumentation-starlette/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-starlette/pyproject.toml @@ -26,10 +26,10 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-instrumentation-asgi == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-instrumentation-asgi == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-starlette/src/opentelemetry/instrumentation/starlette/version.py b/instrumentation/opentelemetry-instrumentation-starlette/src/opentelemetry/instrumentation/starlette/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-starlette/src/opentelemetry/instrumentation/starlette/version.py +++ b/instrumentation/opentelemetry-instrumentation-starlette/src/opentelemetry/instrumentation/starlette/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-system-metrics/pyproject.toml b/instrumentation/opentelemetry-instrumentation-system-metrics/pyproject.toml index 8ae0eca3..d1305e4c 100644 --- a/instrumentation/opentelemetry-instrumentation-system-metrics/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-system-metrics/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] dependencies = [ - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", "opentelemetry-api ~= 1.11", "psutil >= 5.9.0, < 8", ] diff --git a/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/version.py b/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/version.py +++ b/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-threading/pyproject.toml b/instrumentation/opentelemetry-instrumentation-threading/pyproject.toml index baace32c..b40af286 100644 --- a/instrumentation/opentelemetry-instrumentation-threading/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-threading/pyproject.toml @@ -26,7 +26,7 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-threading/src/opentelemetry/instrumentation/threading/version.py b/instrumentation/opentelemetry-instrumentation-threading/src/opentelemetry/instrumentation/threading/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-threading/src/opentelemetry/instrumentation/threading/version.py +++ b/instrumentation/opentelemetry-instrumentation-threading/src/opentelemetry/instrumentation/threading/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-tornado/pyproject.toml b/instrumentation/opentelemetry-instrumentation-tornado/pyproject.toml index 719e0729..da5f68a8 100644 --- a/instrumentation/opentelemetry-instrumentation-tornado/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-tornado/pyproject.toml @@ -25,9 +25,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-tornado/src/opentelemetry/instrumentation/tornado/version.py b/instrumentation/opentelemetry-instrumentation-tornado/src/opentelemetry/instrumentation/tornado/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-tornado/src/opentelemetry/instrumentation/tornado/version.py +++ b/instrumentation/opentelemetry-instrumentation-tornado/src/opentelemetry/instrumentation/tornado/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-tortoiseorm/pyproject.toml b/instrumentation/opentelemetry-instrumentation-tortoiseorm/pyproject.toml index 17a51ecd..7875b729 100644 --- a/instrumentation/opentelemetry-instrumentation-tortoiseorm/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-tortoiseorm/pyproject.toml @@ -26,8 +26,8 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-tortoiseorm/src/opentelemetry/instrumentation/tortoiseorm/version.py b/instrumentation/opentelemetry-instrumentation-tortoiseorm/src/opentelemetry/instrumentation/tortoiseorm/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-tortoiseorm/src/opentelemetry/instrumentation/tortoiseorm/version.py +++ b/instrumentation/opentelemetry-instrumentation-tortoiseorm/src/opentelemetry/instrumentation/tortoiseorm/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-urllib/pyproject.toml b/instrumentation/opentelemetry-instrumentation-urllib/pyproject.toml index 690205fa..c88c46f5 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-urllib/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/version.py b/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/version.py +++ b/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-urllib3/pyproject.toml b/instrumentation/opentelemetry-instrumentation-urllib3/pyproject.toml index 18ebe72d..541444b3 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib3/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-urllib3/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", ] diff --git a/instrumentation/opentelemetry-instrumentation-urllib3/src/opentelemetry/instrumentation/urllib3/version.py b/instrumentation/opentelemetry-instrumentation-urllib3/src/opentelemetry/instrumentation/urllib3/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib3/src/opentelemetry/instrumentation/urllib3/version.py +++ b/instrumentation/opentelemetry-instrumentation-urllib3/src/opentelemetry/instrumentation/urllib3/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/instrumentation/opentelemetry-instrumentation-wsgi/pyproject.toml b/instrumentation/opentelemetry-instrumentation-wsgi/pyproject.toml index 945dcc56..a6e587ff 100644 --- a/instrumentation/opentelemetry-instrumentation-wsgi/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-wsgi/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", - "opentelemetry-semantic-conventions == 0.60b0.dev", - "opentelemetry-util-http == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", + "opentelemetry-util-http == 0.61b0.dev", ] [project.optional-dependencies] diff --git a/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/version.py b/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/version.py index eee85dcc..c099e944 100644 --- a/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/version.py +++ b/instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/opentelemetry-contrib-instrumentations/pyproject.toml b/opentelemetry-contrib-instrumentations/pyproject.toml index c12acfb3..7685487c 100644 --- a/opentelemetry-contrib-instrumentations/pyproject.toml +++ b/opentelemetry-contrib-instrumentations/pyproject.toml @@ -29,57 +29,57 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] dependencies = [ - "opentelemetry-instrumentation-aio-pika==0.60b0.dev", - "opentelemetry-instrumentation-aiohttp-client==0.60b0.dev", - "opentelemetry-instrumentation-aiohttp-server==0.60b0.dev", - "opentelemetry-instrumentation-aiokafka==0.60b0.dev", - "opentelemetry-instrumentation-aiopg==0.60b0.dev", - "opentelemetry-instrumentation-asgi==0.60b0.dev", - "opentelemetry-instrumentation-asyncclick==0.60b0.dev", - "opentelemetry-instrumentation-asyncio==0.60b0.dev", - "opentelemetry-instrumentation-asyncpg==0.60b0.dev", - "opentelemetry-instrumentation-aws-lambda==0.60b0.dev", - "opentelemetry-instrumentation-boto==0.60b0.dev", - "opentelemetry-instrumentation-boto3sqs==0.60b0.dev", - "opentelemetry-instrumentation-botocore==0.60b0.dev", - "opentelemetry-instrumentation-cassandra==0.60b0.dev", - "opentelemetry-instrumentation-celery==0.60b0.dev", - "opentelemetry-instrumentation-click==0.60b0.dev", - "opentelemetry-instrumentation-confluent-kafka==0.60b0.dev", - "opentelemetry-instrumentation-dbapi==0.60b0.dev", - "opentelemetry-instrumentation-django==0.60b0.dev", - "opentelemetry-instrumentation-elasticsearch==0.60b0.dev", - "opentelemetry-instrumentation-falcon==0.60b0.dev", - "opentelemetry-instrumentation-fastapi==0.60b0.dev", - "opentelemetry-instrumentation-flask==0.60b0.dev", - "opentelemetry-instrumentation-grpc==0.60b0.dev", - "opentelemetry-instrumentation-httpx==0.60b0.dev", - "opentelemetry-instrumentation-jinja2==0.60b0.dev", - "opentelemetry-instrumentation-kafka-python==0.60b0.dev", - "opentelemetry-instrumentation-logging==0.60b0.dev", - "opentelemetry-instrumentation-mysql==0.60b0.dev", - "opentelemetry-instrumentation-mysqlclient==0.60b0.dev", - "opentelemetry-instrumentation-pika==0.60b0.dev", - "opentelemetry-instrumentation-psycopg==0.60b0.dev", - "opentelemetry-instrumentation-psycopg2==0.60b0.dev", - "opentelemetry-instrumentation-pymemcache==0.60b0.dev", - "opentelemetry-instrumentation-pymongo==0.60b0.dev", - "opentelemetry-instrumentation-pymssql==0.60b0.dev", - "opentelemetry-instrumentation-pymysql==0.60b0.dev", - "opentelemetry-instrumentation-pyramid==0.60b0.dev", - "opentelemetry-instrumentation-redis==0.60b0.dev", - "opentelemetry-instrumentation-remoulade==0.60b0.dev", - "opentelemetry-instrumentation-requests==0.60b0.dev", - "opentelemetry-instrumentation-sqlalchemy==0.60b0.dev", - "opentelemetry-instrumentation-sqlite3==0.60b0.dev", - "opentelemetry-instrumentation-starlette==0.60b0.dev", - "opentelemetry-instrumentation-system-metrics==0.60b0.dev", - "opentelemetry-instrumentation-threading==0.60b0.dev", - "opentelemetry-instrumentation-tornado==0.60b0.dev", - "opentelemetry-instrumentation-tortoiseorm==0.60b0.dev", - "opentelemetry-instrumentation-urllib==0.60b0.dev", - "opentelemetry-instrumentation-urllib3==0.60b0.dev", - "opentelemetry-instrumentation-wsgi==0.60b0.dev", + "opentelemetry-instrumentation-aio-pika==0.61b0.dev", + "opentelemetry-instrumentation-aiohttp-client==0.61b0.dev", + "opentelemetry-instrumentation-aiohttp-server==0.61b0.dev", + "opentelemetry-instrumentation-aiokafka==0.61b0.dev", + "opentelemetry-instrumentation-aiopg==0.61b0.dev", + "opentelemetry-instrumentation-asgi==0.61b0.dev", + "opentelemetry-instrumentation-asyncclick==0.61b0.dev", + "opentelemetry-instrumentation-asyncio==0.61b0.dev", + "opentelemetry-instrumentation-asyncpg==0.61b0.dev", + "opentelemetry-instrumentation-aws-lambda==0.61b0.dev", + "opentelemetry-instrumentation-boto==0.61b0.dev", + "opentelemetry-instrumentation-boto3sqs==0.61b0.dev", + "opentelemetry-instrumentation-botocore==0.61b0.dev", + "opentelemetry-instrumentation-cassandra==0.61b0.dev", + "opentelemetry-instrumentation-celery==0.61b0.dev", + "opentelemetry-instrumentation-click==0.61b0.dev", + "opentelemetry-instrumentation-confluent-kafka==0.61b0.dev", + "opentelemetry-instrumentation-dbapi==0.61b0.dev", + "opentelemetry-instrumentation-django==0.61b0.dev", + "opentelemetry-instrumentation-elasticsearch==0.61b0.dev", + "opentelemetry-instrumentation-falcon==0.61b0.dev", + "opentelemetry-instrumentation-fastapi==0.61b0.dev", + "opentelemetry-instrumentation-flask==0.61b0.dev", + "opentelemetry-instrumentation-grpc==0.61b0.dev", + "opentelemetry-instrumentation-httpx==0.61b0.dev", + "opentelemetry-instrumentation-jinja2==0.61b0.dev", + "opentelemetry-instrumentation-kafka-python==0.61b0.dev", + "opentelemetry-instrumentation-logging==0.61b0.dev", + "opentelemetry-instrumentation-mysql==0.61b0.dev", + "opentelemetry-instrumentation-mysqlclient==0.61b0.dev", + "opentelemetry-instrumentation-pika==0.61b0.dev", + "opentelemetry-instrumentation-psycopg==0.61b0.dev", + "opentelemetry-instrumentation-psycopg2==0.61b0.dev", + "opentelemetry-instrumentation-pymemcache==0.61b0.dev", + "opentelemetry-instrumentation-pymongo==0.61b0.dev", + "opentelemetry-instrumentation-pymssql==0.61b0.dev", + "opentelemetry-instrumentation-pymysql==0.61b0.dev", + "opentelemetry-instrumentation-pyramid==0.61b0.dev", + "opentelemetry-instrumentation-redis==0.61b0.dev", + "opentelemetry-instrumentation-remoulade==0.61b0.dev", + "opentelemetry-instrumentation-requests==0.61b0.dev", + "opentelemetry-instrumentation-sqlalchemy==0.61b0.dev", + "opentelemetry-instrumentation-sqlite3==0.61b0.dev", + "opentelemetry-instrumentation-starlette==0.61b0.dev", + "opentelemetry-instrumentation-system-metrics==0.61b0.dev", + "opentelemetry-instrumentation-threading==0.61b0.dev", + "opentelemetry-instrumentation-tornado==0.61b0.dev", + "opentelemetry-instrumentation-tortoiseorm==0.61b0.dev", + "opentelemetry-instrumentation-urllib==0.61b0.dev", + "opentelemetry-instrumentation-urllib3==0.61b0.dev", + "opentelemetry-instrumentation-wsgi==0.61b0.dev", ] [project.urls] diff --git a/opentelemetry-contrib-instrumentations/src/opentelemetry/contrib-instrumentations/version.py b/opentelemetry-contrib-instrumentations/src/opentelemetry/contrib-instrumentations/version.py index eee85dcc..c099e944 100644 --- a/opentelemetry-contrib-instrumentations/src/opentelemetry/contrib-instrumentations/version.py +++ b/opentelemetry-contrib-instrumentations/src/opentelemetry/contrib-instrumentations/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/opentelemetry-distro/pyproject.toml b/opentelemetry-distro/pyproject.toml index 3498eec6..6cc7c816 100644 --- a/opentelemetry-distro/pyproject.toml +++ b/opentelemetry-distro/pyproject.toml @@ -27,13 +27,13 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.12", - "opentelemetry-instrumentation == 0.60b0.dev", + "opentelemetry-instrumentation == 0.61b0.dev", "opentelemetry-sdk ~= 1.13", ] [project.optional-dependencies] otlp = [ - "opentelemetry-exporter-otlp == 1.39.0.dev", + "opentelemetry-exporter-otlp == 1.40.0.dev", ] [project.entry-points.opentelemetry_configurator] diff --git a/opentelemetry-distro/src/opentelemetry/distro/version.py b/opentelemetry-distro/src/opentelemetry/distro/version.py index eee85dcc..c099e944 100644 --- a/opentelemetry-distro/src/opentelemetry/distro/version.py +++ b/opentelemetry-distro/src/opentelemetry/distro/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/opentelemetry-instrumentation/pyproject.toml b/opentelemetry-instrumentation/pyproject.toml index eb6a4775..0e5820e0 100644 --- a/opentelemetry-instrumentation/pyproject.toml +++ b/opentelemetry-instrumentation/pyproject.toml @@ -26,7 +26,7 @@ classifiers = [ ] dependencies = [ "opentelemetry-api ~= 1.4", - "opentelemetry-semantic-conventions == 0.60b0.dev", + "opentelemetry-semantic-conventions == 0.61b0.dev", "wrapt >= 1.0.0, < 2.0.0", "packaging >= 18.0", ] diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py index 2ea6f1bf..2219a023 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py @@ -26,199 +26,199 @@ }, { "library": "aio_pika >= 7.2.0, < 10.0.0", - "instrumentation": "opentelemetry-instrumentation-aio-pika==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-aio-pika==0.61b0.dev", }, { "library": "aiohttp ~= 3.0", - "instrumentation": "opentelemetry-instrumentation-aiohttp-client==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-aiohttp-client==0.61b0.dev", }, { "library": "aiohttp ~= 3.0", - "instrumentation": "opentelemetry-instrumentation-aiohttp-server==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-aiohttp-server==0.61b0.dev", }, { "library": "aiokafka >= 0.8, < 1.0", - "instrumentation": "opentelemetry-instrumentation-aiokafka==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-aiokafka==0.61b0.dev", }, { "library": "aiopg >= 0.13.0, < 2.0.0", - "instrumentation": "opentelemetry-instrumentation-aiopg==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-aiopg==0.61b0.dev", }, { "library": "asgiref ~= 3.0", - "instrumentation": "opentelemetry-instrumentation-asgi==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-asgi==0.61b0.dev", }, { "library": "asyncclick ~= 8.0", - "instrumentation": "opentelemetry-instrumentation-asyncclick==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-asyncclick==0.61b0.dev", }, { "library": "asyncpg >= 0.12.0", - "instrumentation": "opentelemetry-instrumentation-asyncpg==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-asyncpg==0.61b0.dev", }, { "library": "boto~=2.0", - "instrumentation": "opentelemetry-instrumentation-boto==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-boto==0.61b0.dev", }, { "library": "boto3 ~= 1.0", - "instrumentation": "opentelemetry-instrumentation-boto3sqs==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-boto3sqs==0.61b0.dev", }, { "library": "botocore ~= 1.0", - "instrumentation": "opentelemetry-instrumentation-botocore==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-botocore==0.61b0.dev", }, { "library": "cassandra-driver ~= 3.25", - "instrumentation": "opentelemetry-instrumentation-cassandra==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-cassandra==0.61b0.dev", }, { "library": "scylla-driver ~= 3.25", - "instrumentation": "opentelemetry-instrumentation-cassandra==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-cassandra==0.61b0.dev", }, { "library": "celery >= 4.0, < 6.0", - "instrumentation": "opentelemetry-instrumentation-celery==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-celery==0.61b0.dev", }, { "library": "click >= 8.1.3, < 9.0.0", - "instrumentation": "opentelemetry-instrumentation-click==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-click==0.61b0.dev", }, { "library": "confluent-kafka >= 1.8.2, <= 2.11.0", - "instrumentation": "opentelemetry-instrumentation-confluent-kafka==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-confluent-kafka==0.61b0.dev", }, { "library": "django >= 1.10", - "instrumentation": "opentelemetry-instrumentation-django==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-django==0.61b0.dev", }, { "library": "elasticsearch >= 6.0", - "instrumentation": "opentelemetry-instrumentation-elasticsearch==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-elasticsearch==0.61b0.dev", }, { "library": "falcon >= 1.4.1, < 5.0.0", - "instrumentation": "opentelemetry-instrumentation-falcon==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-falcon==0.61b0.dev", }, { "library": "fastapi ~= 0.92", - "instrumentation": "opentelemetry-instrumentation-fastapi==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-fastapi==0.61b0.dev", }, { "library": "flask >= 1.0", - "instrumentation": "opentelemetry-instrumentation-flask==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-flask==0.61b0.dev", }, { "library": "grpcio >= 1.42.0", - "instrumentation": "opentelemetry-instrumentation-grpc==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-grpc==0.61b0.dev", }, { "library": "httpx >= 0.18.0", - "instrumentation": "opentelemetry-instrumentation-httpx==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-httpx==0.61b0.dev", }, { "library": "jinja2 >= 2.7, < 4.0", - "instrumentation": "opentelemetry-instrumentation-jinja2==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-jinja2==0.61b0.dev", }, { "library": "kafka-python >= 2.0, < 3.0", - "instrumentation": "opentelemetry-instrumentation-kafka-python==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-kafka-python==0.61b0.dev", }, { "library": "kafka-python-ng >= 2.0, < 3.0", - "instrumentation": "opentelemetry-instrumentation-kafka-python==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-kafka-python==0.61b0.dev", }, { "library": "mysql-connector-python >= 8.0, < 10.0", - "instrumentation": "opentelemetry-instrumentation-mysql==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-mysql==0.61b0.dev", }, { "library": "mysqlclient < 3", - "instrumentation": "opentelemetry-instrumentation-mysqlclient==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-mysqlclient==0.61b0.dev", }, { "library": "pika >= 0.12.0", - "instrumentation": "opentelemetry-instrumentation-pika==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-pika==0.61b0.dev", }, { "library": "psycopg >= 3.1.0", - "instrumentation": "opentelemetry-instrumentation-psycopg==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-psycopg==0.61b0.dev", }, { "library": "psycopg2 >= 2.7.3.1", - "instrumentation": "opentelemetry-instrumentation-psycopg2==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-psycopg2==0.61b0.dev", }, { "library": "psycopg2-binary >= 2.7.3.1", - "instrumentation": "opentelemetry-instrumentation-psycopg2==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-psycopg2==0.61b0.dev", }, { "library": "pymemcache >= 1.3.5, < 5", - "instrumentation": "opentelemetry-instrumentation-pymemcache==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-pymemcache==0.61b0.dev", }, { "library": "pymongo >= 3.1, < 5.0", - "instrumentation": "opentelemetry-instrumentation-pymongo==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-pymongo==0.61b0.dev", }, { "library": "pymssql >= 2.1.5, < 3", - "instrumentation": "opentelemetry-instrumentation-pymssql==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-pymssql==0.61b0.dev", }, { "library": "PyMySQL < 2", - "instrumentation": "opentelemetry-instrumentation-pymysql==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-pymysql==0.61b0.dev", }, { "library": "pyramid >= 1.7", - "instrumentation": "opentelemetry-instrumentation-pyramid==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-pyramid==0.61b0.dev", }, { "library": "redis >= 2.6", - "instrumentation": "opentelemetry-instrumentation-redis==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-redis==0.61b0.dev", }, { "library": "remoulade >= 0.50", - "instrumentation": "opentelemetry-instrumentation-remoulade==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-remoulade==0.61b0.dev", }, { "library": "requests ~= 2.0", - "instrumentation": "opentelemetry-instrumentation-requests==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-requests==0.61b0.dev", }, { "library": "sqlalchemy >= 1.0.0, < 2.1.0", - "instrumentation": "opentelemetry-instrumentation-sqlalchemy==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-sqlalchemy==0.61b0.dev", }, { "library": "starlette >= 0.13", - "instrumentation": "opentelemetry-instrumentation-starlette==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-starlette==0.61b0.dev", }, { "library": "psutil >= 5", - "instrumentation": "opentelemetry-instrumentation-system-metrics==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-system-metrics==0.61b0.dev", }, { "library": "tornado >= 5.1.1", - "instrumentation": "opentelemetry-instrumentation-tornado==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-tornado==0.61b0.dev", }, { "library": "tortoise-orm >= 0.17.0", - "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.61b0.dev", }, { "library": "pydantic >= 1.10.2", - "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.61b0.dev", }, { "library": "urllib3 >= 1.0.0, < 3.0.0", - "instrumentation": "opentelemetry-instrumentation-urllib3==0.60b0.dev", + "instrumentation": "opentelemetry-instrumentation-urllib3==0.61b0.dev", }, ] default_instrumentations = [ - "opentelemetry-instrumentation-asyncio==0.60b0.dev", - "opentelemetry-instrumentation-dbapi==0.60b0.dev", - "opentelemetry-instrumentation-logging==0.60b0.dev", - "opentelemetry-instrumentation-sqlite3==0.60b0.dev", - "opentelemetry-instrumentation-threading==0.60b0.dev", - "opentelemetry-instrumentation-urllib==0.60b0.dev", - "opentelemetry-instrumentation-wsgi==0.60b0.dev", + "opentelemetry-instrumentation-asyncio==0.61b0.dev", + "opentelemetry-instrumentation-dbapi==0.61b0.dev", + "opentelemetry-instrumentation-logging==0.61b0.dev", + "opentelemetry-instrumentation-sqlite3==0.61b0.dev", + "opentelemetry-instrumentation-threading==0.61b0.dev", + "opentelemetry-instrumentation-urllib==0.61b0.dev", + "opentelemetry-instrumentation-wsgi==0.61b0.dev", ] diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/version.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/version.py index eee85dcc..c099e944 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/version.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/processor/opentelemetry-processor-baggage/src/opentelemetry/processor/baggage/version.py b/processor/opentelemetry-processor-baggage/src/opentelemetry/processor/baggage/version.py index eee85dcc..c099e944 100644 --- a/processor/opentelemetry-processor-baggage/src/opentelemetry/processor/baggage/version.py +++ b/processor/opentelemetry-processor-baggage/src/opentelemetry/processor/baggage/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/propagator/opentelemetry-propagator-ot-trace/src/opentelemetry/propagators/ot_trace/version.py b/propagator/opentelemetry-propagator-ot-trace/src/opentelemetry/propagators/ot_trace/version.py index eee85dcc..c099e944 100644 --- a/propagator/opentelemetry-propagator-ot-trace/src/opentelemetry/propagators/ot_trace/version.py +++ b/propagator/opentelemetry-propagator-ot-trace/src/opentelemetry/propagators/ot_trace/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/resource/opentelemetry-resource-detector-containerid/src/opentelemetry/resource/detector/containerid/version.py b/resource/opentelemetry-resource-detector-containerid/src/opentelemetry/resource/detector/containerid/version.py index eee85dcc..c099e944 100644 --- a/resource/opentelemetry-resource-detector-containerid/src/opentelemetry/resource/detector/containerid/version.py +++ b/resource/opentelemetry-resource-detector-containerid/src/opentelemetry/resource/detector/containerid/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" diff --git a/util/opentelemetry-util-http/src/opentelemetry/util/http/version.py b/util/opentelemetry-util-http/src/opentelemetry/util/http/version.py index eee85dcc..c099e944 100644 --- a/util/opentelemetry-util-http/src/opentelemetry/util/http/version.py +++ b/util/opentelemetry-util-http/src/opentelemetry/util/http/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "0.60b0.dev" +__version__ = "0.61b0.dev" From 0870f96c1c9675357615f78a9673ea870101f6cc Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Wed, 3 Dec 2025 14:51:59 +0100 Subject: [PATCH 3/4] Fix 1.39.0 changelog (#3998) --- CHANGELOG.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b637347b..8d79a899 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,11 +13,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Version 1.39.0/0.60b0 (2025-12-03) -- `opentelemetry-instrumentation-requests`, `opentelemetry-instrumentation-wsgi`, `opentelemetry-instrumentation-asgi` Detect synthetic sources on requests, ASGI, and WSGI. - ([#3674](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3674)) - ### Added +- `opentelemetry-instrumentation-requests`, `opentelemetry-instrumentation-wsgi`, `opentelemetry-instrumentation-asgi` Detect synthetic sources on requests, ASGI, and WSGI. + ([#3674](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3674)) - `opentelemetry-instrumentation-aiohttp-client`: add support for url exclusions via `OTEL_PYTHON_EXCLUDED_URLS` / `OTEL_PYTHON_AIOHTTP_CLIENT_EXCLUDED_URLS` ([#3850](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3850)) - `opentelemetry-instrumentation-httpx`: add support for url exclusions via `OTEL_PYTHON_EXCLUDED_URLS` / `OTEL_PYTHON_HTTPX_EXCLUDED_URLS` From 61641aa3837fe6598ad04772cbe0d3d4c15932be Mon Sep 17 00:00:00 2001 From: Keith Decker <47755047+keith-decker@users.noreply.github.com> Date: Wed, 3 Dec 2025 09:29:37 -0700 Subject: [PATCH 4/4] GenAI Utils | Add metrics to LLMInvocations (#3891) * add metrics to genai utils * add Instruments class for GenAI metrics and refactor metric recording * refactor: streamline metric payload handling in InvocationMetricsRecorder * fix: grammar * doc: added changelog * fix: update version for semconvs * Lint fixes * Fix Nits, remove overly defensive code * Add monotonic timing support for LLM invocation duration calculations * small cleanups to types to simplify code * cleanup test * Simplify histogram duration time calculations * Remove unused constants and helper function * Refactor histogram creation to use standalone functions instead of a class --------- Co-authored-by: aaronabbott --- util/opentelemetry-util-genai/CHANGELOG.md | 2 + .../src/opentelemetry/util/genai/handler.py | 50 +++++- .../opentelemetry/util/genai/instruments.py | 54 +++++++ .../src/opentelemetry/util/genai/metrics.py | 98 ++++++++++++ .../src/opentelemetry/util/genai/types.py | 6 + .../tests/test_handler_metrics.py | 142 ++++++++++++++++++ 6 files changed, 346 insertions(+), 6 deletions(-) create mode 100644 util/opentelemetry-util-genai/src/opentelemetry/util/genai/instruments.py create mode 100644 util/opentelemetry-util-genai/src/opentelemetry/util/genai/metrics.py create mode 100644 util/opentelemetry-util-genai/tests/test_handler_metrics.py diff --git a/util/opentelemetry-util-genai/CHANGELOG.md b/util/opentelemetry-util-genai/CHANGELOG.md index e6be4999..ca2c2d0a 100644 --- a/util/opentelemetry-util-genai/CHANGELOG.md +++ b/util/opentelemetry-util-genai/CHANGELOG.md @@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3943](#3943)) - Add more Semconv attributes to LLMInvocation spans. ([https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3862](#3862)) +- Add metrics to LLMInvocation traces + ([https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3891](#3891)) ## Version 0.2b0 (2025-10-14) diff --git a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py index d7758e16..bc2f2fa3 100644 --- a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py +++ b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py @@ -60,20 +60,24 @@ from __future__ import annotations +import timeit from contextlib import contextmanager from typing import Iterator from opentelemetry import context as otel_context +from opentelemetry.metrics import MeterProvider, get_meter from opentelemetry.semconv._incubating.attributes import ( gen_ai_attributes as GenAI, ) from opentelemetry.semconv.schemas import Schemas from opentelemetry.trace import ( + Span, SpanKind, TracerProvider, get_tracer, set_span_in_context, ) +from opentelemetry.util.genai.metrics import InvocationMetricsRecorder from opentelemetry.util.genai.span_utils import ( _apply_error_attributes, _apply_finish_attributes, @@ -88,13 +92,35 @@ class TelemetryHandler: them as spans, metrics, and events. """ - def __init__(self, tracer_provider: TracerProvider | None = None): + def __init__( + self, + tracer_provider: TracerProvider | None = None, + meter_provider: MeterProvider | None = None, + ): self._tracer = get_tracer( __name__, __version__, tracer_provider, schema_url=Schemas.V1_37_0.value, ) + self._metrics_recorder: InvocationMetricsRecorder | None = None + meter = get_meter(__name__, meter_provider=meter_provider) + self._metrics_recorder = InvocationMetricsRecorder(meter) + + def _record_llm_metrics( + self, + invocation: LLMInvocation, + span: Span | None = None, + *, + error_type: str | None = None, + ) -> None: + if self._metrics_recorder is None or span is None: + return + self._metrics_recorder.record( + span, + invocation, + error_type=error_type, + ) def start_llm( self, @@ -106,6 +132,9 @@ def start_llm( name=f"{GenAI.GenAiOperationNameValues.CHAT.value} {invocation.request_model}", kind=SpanKind.CLIENT, ) + # Record a monotonic start timestamp (seconds) for duration + # calculation using timeit.default_timer. + invocation.monotonic_start_s = timeit.default_timer() invocation.span = span invocation.context_token = otel_context.attach( set_span_in_context(span) @@ -118,10 +147,12 @@ def stop_llm(self, invocation: LLMInvocation) -> LLMInvocation: # pylint: disab # TODO: Provide feedback that this invocation was not started return invocation - _apply_finish_attributes(invocation.span, invocation) + span = invocation.span + _apply_finish_attributes(span, invocation) + self._record_llm_metrics(invocation, span) # Detach context and end span otel_context.detach(invocation.context_token) - invocation.span.end() + span.end() return invocation def fail_llm( # pylint: disable=no-self-use @@ -132,11 +163,14 @@ def fail_llm( # pylint: disable=no-self-use # TODO: Provide feedback that this invocation was not started return invocation + span = invocation.span _apply_finish_attributes(invocation.span, invocation) - _apply_error_attributes(invocation.span, error) + _apply_error_attributes(span, error) + error_type = getattr(error.type, "__qualname__", None) + self._record_llm_metrics(invocation, span, error_type=error_type) # Detach context and end span otel_context.detach(invocation.context_token) - invocation.span.end() + span.end() return invocation @contextmanager @@ -166,6 +200,7 @@ def llm( def get_telemetry_handler( tracer_provider: TracerProvider | None = None, + meter_provider: MeterProvider | None = None, ) -> TelemetryHandler: """ Returns a singleton TelemetryHandler instance. @@ -174,6 +209,9 @@ def get_telemetry_handler( get_telemetry_handler, "_default_handler", None ) if handler is None: - handler = TelemetryHandler(tracer_provider=tracer_provider) + handler = TelemetryHandler( + tracer_provider=tracer_provider, + meter_provider=meter_provider, + ) setattr(get_telemetry_handler, "_default_handler", handler) return handler diff --git a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/instruments.py b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/instruments.py new file mode 100644 index 00000000..d1bad284 --- /dev/null +++ b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/instruments.py @@ -0,0 +1,54 @@ +from opentelemetry.metrics import Histogram, Meter +from opentelemetry.semconv._incubating.metrics import gen_ai_metrics + +_GEN_AI_CLIENT_OPERATION_DURATION_BUCKETS = [ + 0.01, + 0.02, + 0.04, + 0.08, + 0.16, + 0.32, + 0.64, + 1.28, + 2.56, + 5.12, + 10.24, + 20.48, + 40.96, + 81.92, +] + +_GEN_AI_CLIENT_TOKEN_USAGE_BUCKETS = [ + 1, + 4, + 16, + 64, + 256, + 1024, + 4096, + 16384, + 65536, + 262144, + 1048576, + 4194304, + 16777216, + 67108864, +] + + +def create_duration_histogram(meter: Meter) -> Histogram: + return meter.create_histogram( + name=gen_ai_metrics.GEN_AI_CLIENT_OPERATION_DURATION, + description="Duration of GenAI client operation", + unit="s", + explicit_bucket_boundaries_advisory=_GEN_AI_CLIENT_OPERATION_DURATION_BUCKETS, + ) + + +def create_token_histogram(meter: Meter) -> Histogram: + return meter.create_histogram( + name=gen_ai_metrics.GEN_AI_CLIENT_TOKEN_USAGE, + description="Number of input and output tokens used by GenAI clients", + unit="{token}", + explicit_bucket_boundaries_advisory=_GEN_AI_CLIENT_TOKEN_USAGE_BUCKETS, + ) diff --git a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/metrics.py b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/metrics.py new file mode 100644 index 00000000..68f8d08d --- /dev/null +++ b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/metrics.py @@ -0,0 +1,98 @@ +"""Helpers for emitting GenAI metrics from LLM invocations.""" + +from __future__ import annotations + +import timeit +from numbers import Number +from typing import Dict, Optional + +from opentelemetry.metrics import Histogram, Meter +from opentelemetry.semconv._incubating.attributes import ( + gen_ai_attributes as GenAI, +) +from opentelemetry.trace import Span, set_span_in_context +from opentelemetry.util.genai.instruments import ( + create_duration_histogram, + create_token_histogram, +) +from opentelemetry.util.genai.types import LLMInvocation +from opentelemetry.util.types import AttributeValue + + +class InvocationMetricsRecorder: + """Records duration and token usage histograms for GenAI invocations.""" + + def __init__(self, meter: Meter): + self._duration_histogram: Histogram = create_duration_histogram(meter) + self._token_histogram: Histogram = create_token_histogram(meter) + + def record( + self, + span: Optional[Span], + invocation: LLMInvocation, + *, + error_type: Optional[str] = None, + ) -> None: + """Record duration and token metrics for an invocation if possible.""" + if span is None: + return + + token_counts: list[tuple[int, str]] = [] + if invocation.input_tokens is not None: + token_counts.append( + ( + invocation.input_tokens, + GenAI.GenAiTokenTypeValues.INPUT.value, + ) + ) + if invocation.output_tokens is not None: + token_counts.append( + ( + invocation.output_tokens, + GenAI.GenAiTokenTypeValues.OUTPUT.value, + ) + ) + + attributes: Dict[str, AttributeValue] = { + GenAI.GEN_AI_OPERATION_NAME: GenAI.GenAiOperationNameValues.CHAT.value + } + if invocation.request_model: + attributes[GenAI.GEN_AI_REQUEST_MODEL] = invocation.request_model + if invocation.provider: + attributes[GenAI.GEN_AI_PROVIDER_NAME] = invocation.provider + if invocation.response_model_name: + attributes[GenAI.GEN_AI_RESPONSE_MODEL] = ( + invocation.response_model_name + ) + + # Calculate duration from span timing or invocation monotonic start + duration_seconds: Optional[float] = None + if invocation.monotonic_start_s is not None: + duration_seconds = max( + timeit.default_timer() - invocation.monotonic_start_s, 0.0 + ) + + span_context = set_span_in_context(span) + if error_type: + attributes["error.type"] = error_type + + if ( + duration_seconds is not None + and isinstance(duration_seconds, Number) + and duration_seconds >= 0 + ): + self._duration_histogram.record( + duration_seconds, + attributes=attributes, + context=span_context, + ) + + for token_count, token_type in token_counts: + self._token_histogram.record( + token_count, + attributes=attributes | {GenAI.GEN_AI_TOKEN_TYPE: token_type}, + context=span_context, + ) + + +__all__ = ["InvocationMetricsRecorder"] diff --git a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/types.py b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/types.py index 55880702..4fbb059e 100644 --- a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/types.py +++ b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/types.py @@ -123,6 +123,12 @@ class LLMInvocation: max_tokens: int | None = None stop_sequences: list[str] | None = None seed: int | None = None + monotonic_start_s: float | None = None + """ + Monotonic start time in seconds (from timeit.default_timer) used + for duration calculations to avoid mixing clock sources. This is + populated by the TelemetryHandler when starting an invocation. + """ @dataclass diff --git a/util/opentelemetry-util-genai/tests/test_handler_metrics.py b/util/opentelemetry-util-genai/tests/test_handler_metrics.py new file mode 100644 index 00000000..3e136ffb --- /dev/null +++ b/util/opentelemetry-util-genai/tests/test_handler_metrics.py @@ -0,0 +1,142 @@ +from __future__ import annotations + +from typing import Any, Dict, List +from unittest import TestCase +from unittest.mock import patch + +from opentelemetry.sdk.metrics import MeterProvider +from opentelemetry.sdk.metrics.export import InMemoryMetricReader +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import SimpleSpanProcessor +from opentelemetry.sdk.trace.export.in_memory_span_exporter import ( + InMemorySpanExporter, +) +from opentelemetry.semconv._incubating.attributes import ( + gen_ai_attributes as GenAI, +) +from opentelemetry.util.genai.handler import TelemetryHandler +from opentelemetry.util.genai.types import Error, LLMInvocation + + +class TelemetryHandlerMetricsTest(TestCase): + def setUp(self) -> None: + self.metric_reader = InMemoryMetricReader() + self.meter_provider = MeterProvider( + metric_readers=[self.metric_reader] + ) + self.span_exporter = InMemorySpanExporter() + self.tracer_provider = TracerProvider() + self.tracer_provider.add_span_processor( + SimpleSpanProcessor(self.span_exporter) + ) + + def test_stop_llm_records_duration_and_tokens(self) -> None: + handler = TelemetryHandler( + tracer_provider=self.tracer_provider, + meter_provider=self.meter_provider, + ) + invocation = LLMInvocation(request_model="model", provider="prov") + invocation.input_tokens = 5 + invocation.output_tokens = 7 + # Patch default_timer during start to ensure monotonic_start_s + with patch("timeit.default_timer", return_value=1000.0): + handler.start_llm(invocation) + + # Simulate 2 seconds of elapsed monotonic time (seconds) + with patch( + "timeit.default_timer", + return_value=1002.0, + ): + handler.stop_llm(invocation) + + metrics = self._harvest_metrics() + self.assertIn("gen_ai.client.operation.duration", metrics) + duration_points = metrics["gen_ai.client.operation.duration"] + self.assertEqual(len(duration_points), 1) + duration_point = duration_points[0] + self.assertEqual( + duration_point.attributes[GenAI.GEN_AI_OPERATION_NAME], + GenAI.GenAiOperationNameValues.CHAT.value, + ) + self.assertEqual( + duration_point.attributes[GenAI.GEN_AI_REQUEST_MODEL], "model" + ) + self.assertEqual( + duration_point.attributes[GenAI.GEN_AI_PROVIDER_NAME], "prov" + ) + self.assertAlmostEqual(duration_point.sum, 2.0, places=3) + + self.assertIn("gen_ai.client.token.usage", metrics) + token_points = metrics["gen_ai.client.token.usage"] + token_by_type = { + point.attributes[GenAI.GEN_AI_TOKEN_TYPE]: point + for point in token_points + } + self.assertEqual(len(token_by_type), 2) + self.assertAlmostEqual( + token_by_type[GenAI.GenAiTokenTypeValues.INPUT.value].sum, + 5.0, + places=3, + ) + self.assertAlmostEqual( + token_by_type[GenAI.GenAiTokenTypeValues.COMPLETION.value].sum, + 7.0, + places=3, + ) + + def test_fail_llm_records_error_and_available_tokens(self) -> None: + handler = TelemetryHandler( + tracer_provider=self.tracer_provider, + meter_provider=self.meter_provider, + ) + invocation = LLMInvocation(request_model="err-model", provider=None) + invocation.input_tokens = 11 + # Patch default_timer during start to ensure monotonic_start_s + with patch("timeit.default_timer", return_value=2000.0): + handler.start_llm(invocation) + + error = Error(message="boom", type=ValueError) + with patch( + "timeit.default_timer", + return_value=2001.0, + ): + handler.fail_llm(invocation, error) + + metrics = self._harvest_metrics() + self.assertIn("gen_ai.client.operation.duration", metrics) + duration_points = metrics["gen_ai.client.operation.duration"] + self.assertEqual(len(duration_points), 1) + duration_point = duration_points[0] + self.assertEqual( + duration_point.attributes.get("error.type"), "ValueError" + ) + self.assertEqual( + duration_point.attributes.get(GenAI.GEN_AI_REQUEST_MODEL), + "err-model", + ) + self.assertAlmostEqual(duration_point.sum, 1.0, places=3) + + self.assertIn("gen_ai.client.token.usage", metrics) + token_points = metrics["gen_ai.client.token.usage"] + self.assertEqual(len(token_points), 1) + token_point = token_points[0] + self.assertEqual( + token_point.attributes[GenAI.GEN_AI_TOKEN_TYPE], + GenAI.GenAiTokenTypeValues.INPUT.value, + ) + self.assertAlmostEqual(token_point.sum, 11.0, places=3) + + def _harvest_metrics(self) -> Dict[str, List[Any]]: + try: + self.meter_provider.force_flush() + except Exception: # pylint: disable=broad-except + pass + self.metric_reader.collect() + metrics_by_name: Dict[str, List[Any]] = {} + data = self.metric_reader.get_metrics_data() + for resource_metric in (data and data.resource_metrics) or []: + for scope_metric in resource_metric.scope_metrics or []: + for metric in scope_metric.metrics or []: + points = metric.data.data_points or [] + metrics_by_name.setdefault(metric.name, []).extend(points) + return metrics_by_name