Repository navigation
Replace vendored A365 code with microsoft-agents-a365-observability-c… - #45
Merged
Hector Hernandez (hectorhdzg) merged 7 commits intoApr 20, 2026
Conversation
…ore package - Remove vendored A365 observability core, hosting, and runtime modules - Remove vendored A365 tests (now covered by the external package) - Add microsoft-agents-a365-observability-core>=0.9.0 as a dependency - Add distro-specific token resolver utilities (_a365_utils.py) for FIC and DefaultAzureCredential authentication flows - Wire A365 span processors into the distro via _append_a365_components - Update PLANNING.md: remove Spectra collector TODO, add TODOs for gRPC dependency bloat and provider initialization order - Add Sphinx reST docstrings to new token resolver module
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes the previously vendored Agent365 (A365) observability implementation from this repo and switches the distro to integrate A365 via the external microsoft-agents-a365-observability-core package, adding distro-owned token resolver utilities and updating tests/samples accordingly.
Changes:
- Replace in-repo A365 exporter/processors/runtime/hosting modules with imports from
microsoft_agents_a365.observability.core. - Add distro-specific A365 auth utilities in
src/microsoft/opentelemetry/_a365_utils.pyand wire A365 processors into_append_a365_components. - Remove vendored A365 unit tests and update remaining distro tests and samples to use the external package.
Reviewed changes
Copilot reviewed 87 out of 88 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_distro.py | Updates A365 integration tests to patch the external package and account for the new identity processor. |
| tests/a365/test_utils.py | Removes vendored A365 core exporter util tests (now expected to be covered by external package). |
| tests/a365/test_span_processor.py | Removes vendored A365 baggage/identity span processor tests. |
| tests/a365/test_handler.py | Removes vendored A365 component factory/enablement tests. |
| tests/a365/test_exporter.py | Removes vendored Agent365 exporter tests. |
| tests/a365/test_enriching_span_processor.py | Removes vendored enriching batch span processor tests. |
| tests/a365/runtime/test_version_utils.py | Removes vendored runtime version utils tests. |
| tests/a365/runtime/test_utility.py | Removes vendored runtime Utility/JWT helper tests. |
| tests/a365/runtime/test_power_platform_api_discovery.py | Removes vendored Power Platform API discovery tests. |
| tests/a365/runtime/test_operation_result.py | Removes vendored OperationResult tests. |
| tests/a365/runtime/test_operation_error.py | Removes vendored OperationError tests. |
| tests/a365/runtime/test_environment_utils.py | Removes vendored runtime env utils tests. |
| tests/a365/runtime/init.py | Removes vendored runtime test package stub. |
| tests/a365/hosting/token_cache_helpers/test_agent_token_cache.py | Removes vendored hosting token cache tests. |
| tests/a365/hosting/token_cache_helpers/init.py | Removes vendored hosting token cache test package stub. |
| tests/a365/hosting/scope_helpers/test_scope_helper_utils.py | Removes vendored hosting scope-helper tests. |
| tests/a365/hosting/scope_helpers/test_populate_invoke_agent_scope.py | Removes vendored invoke-agent scope population tests. |
| tests/a365/hosting/scope_helpers/test_populate_baggage.py | Removes vendored baggage population tests. |
| tests/a365/hosting/scope_helpers/init.py | Removes vendored hosting scope helpers test package stub. |
| tests/a365/hosting/middleware/test_output_logging_middleware.py | Removes vendored output logging middleware tests. |
| tests/a365/hosting/middleware/test_observability_hosting_manager.py | Removes vendored hosting manager tests. |
| tests/a365/hosting/middleware/test_baggage_middleware.py | Removes vendored baggage middleware tests. |
| tests/a365/hosting/middleware/init.py | Removes vendored hosting middleware test package stub. |
| tests/a365/hosting/init.py | Removes vendored hosting test package stub. |
| tests/a365/init.py | Removes vendored A365 test package stub. |
| src/microsoft/opentelemetry/a365/runtime/version_utils.py | Removes vendored A365 runtime version utilities. |
| src/microsoft/opentelemetry/a365/runtime/utility.py | Removes vendored A365 runtime utility helpers. |
| src/microsoft/opentelemetry/a365/runtime/power_platform_api_discovery.py | Removes vendored A365 Power Platform discovery helper. |
| src/microsoft/opentelemetry/a365/runtime/operation_result.py | Removes vendored A365 OperationResult. |
| src/microsoft/opentelemetry/a365/runtime/operation_error.py | Removes vendored A365 OperationError. |
| src/microsoft/opentelemetry/a365/runtime/environment_utils.py | Removes vendored A365 environment utilities. |
| src/microsoft/opentelemetry/a365/runtime/init.py | Removes vendored A365 runtime package exports. |
| src/microsoft/opentelemetry/a365/hosting/token_cache_helpers/agent_token_cache.py | Removes vendored hosting token cache helper. |
| src/microsoft/opentelemetry/a365/hosting/token_cache_helpers/init.py | Removes vendored hosting token cache exports. |
| src/microsoft/opentelemetry/a365/hosting/scope_helpers/utils.py | Removes vendored hosting scope helper utilities. |
| src/microsoft/opentelemetry/a365/hosting/scope_helpers/populate_invoke_agent_scope.py | Removes vendored invoke-agent scope population helper. |
| src/microsoft/opentelemetry/a365/hosting/scope_helpers/populate_baggage.py | Removes vendored baggage population helper. |
| src/microsoft/opentelemetry/a365/hosting/scope_helpers/init.py | Removes vendored hosting scope helpers package stub. |
| src/microsoft/opentelemetry/a365/hosting/middleware/output_logging_middleware.py | Removes vendored output logging middleware. |
| src/microsoft/opentelemetry/a365/hosting/middleware/observability_hosting_manager.py | Removes vendored hosting observability manager. |
| src/microsoft/opentelemetry/a365/hosting/middleware/baggage_middleware.py | Removes vendored baggage middleware. |
| src/microsoft/opentelemetry/a365/hosting/middleware/init.py | Removes vendored hosting middleware exports. |
| src/microsoft/opentelemetry/a365/hosting/init.py | Removes vendored hosting package exports. |
| src/microsoft/opentelemetry/a365/core/utils.py | Removes vendored A365 core utility module. |
| src/microsoft/opentelemetry/a365/core/tool_type.py | Removes vendored ToolType enum. |
| src/microsoft/opentelemetry/a365/core/tool_call_details.py | Removes vendored ToolCallDetails model. |
| src/microsoft/opentelemetry/a365/core/spans_scopes/output_scope.py | Removes vendored OutputScope implementation. |
| src/microsoft/opentelemetry/a365/core/spans_scopes/init.py | Removes vendored spans_scopes package stub. |
| src/microsoft/opentelemetry/a365/core/span_details.py | Removes vendored SpanDetails model. |
| src/microsoft/opentelemetry/a365/core/request.py | Removes vendored Request model. |
| src/microsoft/opentelemetry/a365/core/opentelemetry_scope.py | Removes vendored OpenTelemetryScope implementation. |
| src/microsoft/opentelemetry/a365/core/models/user_details.py | Removes vendored UserDetails model. |
| src/microsoft/opentelemetry/a365/core/models/service_endpoint.py | Removes vendored ServiceEndpoint model. |
| src/microsoft/opentelemetry/a365/core/models/response.py | Removes vendored Response model. |
| src/microsoft/opentelemetry/a365/core/models/messages.py | Removes vendored OTEL gen-ai message models. |
| src/microsoft/opentelemetry/a365/core/models/caller_details.py | Removes vendored CallerDetails model. |
| src/microsoft/opentelemetry/a365/core/models/init.py | Removes vendored models package stub. |
| src/microsoft/opentelemetry/a365/core/middleware/baggage_builder.py | Removes vendored BaggageBuilder implementation. |
| src/microsoft/opentelemetry/a365/core/middleware/init.py | Removes vendored middleware package exports. |
| src/microsoft/opentelemetry/a365/core/message_utils.py | Removes vendored message normalization/serialization utils. |
| src/microsoft/opentelemetry/a365/core/invoke_agent_scope.py | Removes vendored InvokeAgentScope. |
| src/microsoft/opentelemetry/a365/core/invoke_agent_details.py | Removes vendored InvokeAgentScopeDetails. |
| src/microsoft/opentelemetry/a365/core/inference_scope.py | Removes vendored InferenceScope. |
| src/microsoft/opentelemetry/a365/core/inference_operation_type.py | Removes vendored InferenceOperationType. |
| src/microsoft/opentelemetry/a365/core/inference_call_details.py | Removes vendored InferenceCallDetails. |
| src/microsoft/opentelemetry/a365/core/exporters/spectra_exporter_options.py | Removes vendored Spectra exporter options. |
| src/microsoft/opentelemetry/a365/core/exporters/span_processor.py | Removes vendored A365 baggage/identity span processor. |
| src/microsoft/opentelemetry/a365/core/exporters/enriching_span_processor.py | Removes vendored enriching batch span processor. |
| src/microsoft/opentelemetry/a365/core/exporters/enriched_span.py | Removes vendored EnrichedReadableSpan wrapper. |
| src/microsoft/opentelemetry/a365/core/exporters/agent365_exporter_options.py | Removes vendored Agent365 exporter options. |
| src/microsoft/opentelemetry/a365/core/exporters/agent365_exporter.py | Removes vendored Agent365 exporter implementation. |
| src/microsoft/opentelemetry/a365/core/exporters/init.py | Removes vendored exporters package stub. |
| src/microsoft/opentelemetry/a365/core/execute_tool_scope.py | Removes vendored ExecuteToolScope. |
| src/microsoft/opentelemetry/a365/core/constants.py | Removes vendored A365 core constants. |
| src/microsoft/opentelemetry/a365/core/channel.py | Removes vendored Channel model. |
| src/microsoft/opentelemetry/a365/core/agent_details.py | Removes vendored AgentDetails model. |
| src/microsoft/opentelemetry/a365/core/init.py | Removes vendored A365 core public surface. |
| src/microsoft/opentelemetry/a365/constants.py | Removes vendored distro-level A365 constants. |
| src/microsoft/opentelemetry/a365/init.py | Removes vendored A365 package shim. |
| src/microsoft/opentelemetry/a365/README.md | Removes vendored A365 package documentation. |
| src/microsoft/opentelemetry/_distro.py | Rewires A365 integration to use external exporter/processors and adds an identity stamping processor. |
| src/microsoft/opentelemetry/_a365_utils.py | Adds distro-owned token resolver utilities (FIC + DefaultAzureCredential) for A365 exporter auth. |
| samples/a365/manual_telemetry.py | Updates sample to import A365 scope APIs from the external package. |
| pyproject.toml | Adds dependency on microsoft-agents-a365-observability-core. |
| docs/MIGRATION_A365.md | Removes A365 migration guide doc. |
| PLANNING.md | Updates A365 phase plan to reflect external-package integration approach. |
| .gitignore | Ignores Sphinx build artifacts (docs/_build/, docs/api/). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Leighton Chen (lzchen)
approved these changes
Apr 20, 2026
Hector Hernandez (hectorhdzg)
enabled auto-merge (squash)
April 20, 2026 22:52
Radhika Gupta (rads-1996)
approved these changes
Apr 20, 2026
Hector Hernandez (hectorhdzg)
merged commit Apr 20, 2026
e58fbde
into
microsoft:main
7 checks passed
Hector Hernandez (hectorhdzg)
added a commit
to hectorhdzg/opentelemetry-distro-python
that referenced
this pull request
Apr 21, 2026
Restore vendored A365 observability core, hosting, and runtime modules to regain full control over span enrichment, batching, and export behavior.
Hector Hernandez (hectorhdzg)
added a commit
that referenced
this pull request
Apr 21, 2026
* Revert PR #45: restore vendored A365 code Restore vendored A365 observability core, hosting, and runtime modules to regain full control over span enrichment, batching, and export behavior. * Revert PR #45: restore vendored A365 code Restore vendored A365 observability core, hosting, and runtime modules to regain full control over span enrichment, batching, and export behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…ore package