diff --git a/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/agent365_exporter.py b/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/agent365_exporter.py index 632cbb9c..1742c8b6 100644 --- a/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/agent365_exporter.py +++ b/libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/agent365_exporter.py @@ -142,6 +142,13 @@ def force_flush(self, timeout_millis: int = 30000) -> bool: # ------------- HTTP helper ---------------------- + @staticmethod + def _truncate_text(text: str, max_length: int) -> str: + """Truncate text to a maximum length, adding '...' if truncated.""" + if len(text) > max_length: + return text[:max_length] + "..." + return text + def _post_with_retries(self, url: str, body: str, headers: dict[str, str]) -> bool: for attempt in range(DEFAULT_MAX_RETRIES + 1): try: @@ -164,12 +171,12 @@ def _post_with_retries(self, url: str, body: str, headers: dict[str, str]) -> bo logger.debug( f"HTTP {resp.status_code} success on attempt {attempt + 1}. " f"Correlation ID: {correlation_id}. " - f"Response: {resp.text[:200]}{'...' if len(resp.text) > 200 else ''}" + f"Response: {self._truncate_text(resp.text, 200)}" ) return True # Log non-success responses - response_text = resp.text[:500] + ("..." if len(resp.text) > 500 else "") + response_text = self._truncate_text(resp.text, 500) # Retry transient if resp.status_code in (408, 429) or 500 <= resp.status_code < 600: diff --git a/uv.lock b/uv.lock index 58b48ea7..a79f228c 100644 --- a/uv.lock +++ b/uv.lock @@ -339,16 +339,16 @@ wheels = [ [[package]] name = "azure-ai-agents" -version = "1.2.0b6" +version = "1.2.0b5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "azure-core" }, { name = "isodate" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/68/32/f4e534dc05dfb714705df56a190d690c5452cd4dd7e936612cb1adddc44f/azure_ai_agents-1.2.0b6.tar.gz", hash = "sha256:d3c10848c3b19dec98a292f8c10cee4ba4aac1050d4faabf9c2e2456b727f528", size = 396865, upload-time = "2025-10-24T18:04:47.877Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/57/8adeed578fa8984856c67b4229e93a58e3f6024417d448d0037aafa4ee9b/azure_ai_agents-1.2.0b5.tar.gz", hash = "sha256:1a16ef3f305898aac552269f01536c34a00473dedee0bca731a21fdb739ff9d5", size = 394876, upload-time = "2025-09-30T01:55:02.328Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/96/d0/930c522f5fa9da163de057e57f8b44539424e13f46618c52624ebc712293/azure_ai_agents-1.2.0b6-py3-none-any.whl", hash = "sha256:ce23ad8fb9791118905be1ec8eae5c907cca2e536a455f1d3b830062c72cf2a7", size = 217950, upload-time = "2025-10-24T18:04:49.72Z" }, + { url = "https://files.pythonhosted.org/packages/6d/6d/15070d23d7a94833a210da09d5d7ed3c24838bb84f0463895e5d159f1695/azure_ai_agents-1.2.0b5-py3-none-any.whl", hash = "sha256:257d0d24a6bf13eed4819cfa5c12fb222e5908deafb3cbfd5711d3a511cc4e88", size = 217948, upload-time = "2025-09-30T01:55:04.155Z" }, ] [[package]] @@ -1583,6 +1583,9 @@ dev = [ { name = "pytest-asyncio" }, { name = "ruff" }, ] +jaeger = [ + { name = "opentelemetry-exporter-otlp-proto-grpc" }, +] test = [ { name = "pytest" }, { name = "pytest-asyncio" }, @@ -1598,6 +1601,7 @@ requires-dist = [ { name = "mypy", marker = "extra == 'dev'", specifier = ">=1.0.0" }, { name = "opentelemetry-api", specifier = ">=1.36.0" }, { name = "opentelemetry-exporter-otlp", specifier = ">=1.36.0" }, + { name = "opentelemetry-exporter-otlp-proto-grpc", marker = "extra == 'jaeger'", specifier = ">=1.36.0" }, { name = "opentelemetry-sdk", specifier = ">=1.36.0" }, { name = "pydantic", specifier = ">=2.0.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=7.0.0" }, @@ -1607,7 +1611,7 @@ requires-dist = [ { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.1.0" }, { name = "typing-extensions", specifier = ">=4.0.0" }, ] -provides-extras = ["azure", "dev", "test"] +provides-extras = ["azure", "jaeger", "dev", "test"] [[package]] name = "microsoft-agents-a365-observability-extensions-langchain" @@ -1858,7 +1862,7 @@ test = [ [package.metadata] requires-dist = [ - { name = "azure-ai-agents", specifier = ">=1.1.0b4" }, + { name = "azure-ai-agents", specifier = ">=1.0.0b251001" }, { name = "azure-ai-projects", specifier = ">=1.0.0" }, { name = "azure-identity", specifier = ">=1.12.0" }, { name = "black", marker = "extra == 'dev'", specifier = ">=23.0.0" },