diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cbbe7aa3..8d79a899b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,11 +11,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased -- `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)) +## Version 1.39.0/0.60b0 (2025-12-03) ### 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` @@ -42,6 +43,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/_template/version.py b/_template/version.py index eee85dccc..c099e9440 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 239258065..f570632bd 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 eee85dccc..c099e9440 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 eee85dccc..c099e9440 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 93d3a7363..ef33f274e 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 eee85dccc..c099e9440 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 bda37551e..dadab87d4 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 eee85dccc..c099e9440 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 cbd3096e4..3cdcd4fcc 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 2724d5801..a618d89e4 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 056390fd8..ed2e9b822 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 eee85dccc..c099e9440 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 9336aee09..d1fcc5405 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 eee85dccc..c099e9440 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 c5003ac25..14183a7f5 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 eee85dccc..c099e9440 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 7863ddd34..15ab20be3 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 eee85dccc..c099e9440 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 12930f47f..b9a89c203 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 eee85dccc..c099e9440 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 79f1ce357..4f1a735d5 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 eee85dccc..c099e9440 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 2a5bd1ba7..96b7b6544 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 eee85dccc..c099e9440 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 ac039f15d..ebbffbdbc 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 eee85dccc..c099e9440 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 5261a79fe..a5fe88ea7 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 eee85dccc..c099e9440 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 b4bc453cd..d9fea6d3b 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 eee85dccc..c099e9440 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 8ab961767..cc4f480c4 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/extensions/bedrock_utils.py b/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock_utils.py index 2260d8ac7..0b164b1f9 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/src/opentelemetry/instrumentation/botocore/version.py b/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/version.py index eee85dccc..c099e9440 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-botocore/tests/test_botocore_bedrock.py b/instrumentation/opentelemetry-instrumentation-botocore/tests/test_botocore_bedrock.py index da8194c6a..a8a0afe11 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"}]}, diff --git a/instrumentation/opentelemetry-instrumentation-cassandra/pyproject.toml b/instrumentation/opentelemetry-instrumentation-cassandra/pyproject.toml index 7026c51f4..972f5cc76 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 eee85dccc..c099e9440 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 38468afa2..bfd6dce53 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 eee85dccc..c099e9440 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 427d3079e..e16eebaeb 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 eee85dccc..c099e9440 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 59a4a8c84..2e78da1a2 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 eee85dccc..c099e9440 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 f9d9677d1..95bbcb5ee 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 a67573192..076fd05e7 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 7701206df..c6151a63d 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 eee85dccc..c099e9440 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 149c12d71..21eea1a50 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 eee85dccc..c099e9440 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 c3f79c91b..e76aea127 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 eee85dccc..c099e9440 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 2c30d00c2..4a0d0a39a 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 eee85dccc..c099e9440 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 946cfef7f..9f95f229a 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 eee85dccc..c099e9440 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 0c1fc8233..81679e4ff 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 eee85dccc..c099e9440 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 5446d2345..11eed4248 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 eee85dccc..c099e9440 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 61ab236f0..f414dc600 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 eee85dccc..c099e9440 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 f010ba4f5..d06d32e66 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 eee85dccc..c099e9440 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 caea3ce17..723cade25 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 a67573192..076fd05e7 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 2ce910677..4cabc0809 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 eee85dccc..c099e9440 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 56c42c9dd..0b25416dc 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 eee85dccc..c099e9440 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 e59c7dcc2..ba5ae498b 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 eee85dccc..c099e9440 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 60439f25c..4f9649215 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 eee85dccc..c099e9440 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 befb98767..2ee170b0c 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 eee85dccc..c099e9440 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 c8a371829..60b81fa80 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 eee85dccc..c099e9440 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 74f4f3ff4..330b05aba 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 eee85dccc..c099e9440 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 e346420e6..89e256e2e 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 eee85dccc..c099e9440 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 2fed99371..492282fd6 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 eee85dccc..c099e9440 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 b9e1b7be0..2ddb3ec75 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 eee85dccc..c099e9440 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 a2cf43b11..cfe511abb 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 eee85dccc..c099e9440 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 79fedc552..761299f0c 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 eee85dccc..c099e9440 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 31c2d0fed..107feac24 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 eee85dccc..c099e9440 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 28c01d1be..fc382a864 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 eee85dccc..c099e9440 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 3aee7ca72..c6ba6ec91 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 a67573192..076fd05e7 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 595413b74..370968d66 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 eee85dccc..c099e9440 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 8ae0eca32..d1305e4c7 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 eee85dccc..c099e9440 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 baace32c8..b40af2869 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 eee85dccc..c099e9440 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 719e0729b..da5f68a81 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 eee85dccc..c099e9440 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 17a51ecd6..7875b729d 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 eee85dccc..c099e9440 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 690205fa1..c88c46f5c 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 eee85dccc..c099e9440 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 18ebe72d3..541444b32 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 eee85dccc..c099e9440 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 945dcc569..a6e587ffd 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 eee85dccc..c099e9440 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 c12acfb3a..7685487c7 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 eee85dccc..c099e9440 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 3498eec67..6cc7c8168 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 eee85dccc..c099e9440 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 1d8e0e9d3..ce6e80bdc 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 2ea6f1bf5..2219a0237 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 eee85dccc..c099e9440 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 eee85dccc..c099e9440 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 eee85dccc..c099e9440 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 eee85dccc..c099e9440 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-genai/CHANGELOG.md b/util/opentelemetry-util-genai/CHANGELOG.md index e6be4999f..ca2c2d0a0 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 d7758e16f..bc2f2fa35 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 000000000..d1bad284c --- /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 000000000..68f8d08d3 --- /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 558807022..4fbb059e7 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 000000000..3e136ffb4 --- /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 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 eee85dccc..c099e9440 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"