Repository navigation
Retire Observability packages and document OpenTelemetry migration - #277
Nikhil Navakiran (nikhilNava) wants to merge 7 commits into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove Observability source and dedicated tests from build and packaging paths. Add distro migration guidance and isolate current-run artifacts to prevent stale package inclusion. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d5864454-1c50-4f42-b460-5940f7272418
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned Files
|
There was a problem hiding this comment.
🟢 Approval recommended
The review reports no active issues with the Observability package retirement.
No open issues 🎉
What changed in this PR
Retires all five Microsoft.Agents.A365.Observability.* packages and directs consumers to the Microsoft OpenTelemetry .NET distro, while preserving Notifications, Runtime, and Tooling behavior.
Changes:
- Removes retired implementations, dedicated tests, build references, and exclusive dependencies.
- Updates migration guidance, package metadata, dependency diagrams, and repository instructions.
- Isolates package output per run and rejects retired or empty output in local builds and CI.
| File | Description |
|---|---|
src/Tooling/Extensions/SemanticKernel/Microsoft.Agents.A365.Tooling.Extensions.SemanticKernel.csproj |
Removes the OpenTelemetry package tag. |
src/Tooling/Extensions/AzureAIFoundry/Microsoft.Agents.A365.Tooling.Extensions.AzureAIFoundry.csproj |
Removes the OpenTelemetry package tag. |
src/Tooling/Extensions/AgentFramework/Microsoft.Agents.A365.Tooling.Extensions.AgentFramework.csproj |
Removes the OpenTelemetry package tag. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Tracing/Scopes/Util.cs |
Removes scope-test helpers. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Tracing/Scopes/ScopeTests.cs |
Removes tracing scope tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Tracing/Processors/ActivityTest.cs |
Removes activity-test infrastructure. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Tracing/Exporters/ObservabilityBuilderExtensionsTests.cs |
Removes exporter-registration tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Tracing/Exporters/ExportConfigConsistencyTests.cs |
Removes exporter-configuration tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Tracing/ActivityAsserts.cs |
Removes activity assertion helpers. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Middleware/BaggageBuilderTests.cs |
Removes baggage-builder tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Microsoft.Agents.A365.Observability.Runtime.Tests.csproj |
Deletes the Observability Runtime test project. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Etw/EtwEventSourceTests.cs |
Removes ETW payload tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Etw/EtwEventSourceConfigureTests.cs |
Removes ETW configuration tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/DTOs/OutputDataTests.cs |
Removes output DTO tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/DTOs/InvokeAgentDataTests.cs |
Removes invocation DTO tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/DTOs/ExecuteToolDataTests.cs |
Removes tool DTO tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/DTOs/ExecuteInferenceDataTests.cs |
Removes inference DTO tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/DTOs/Builders/SpanStatusBuilderTests.cs |
Removes status-builder tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Common/ExportFormatterStatusTests.cs |
Removes status-formatting tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Common/EnvironmentUtilsTests.cs |
Removes environment and authentication-scope tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/BuilderPatternTests.cs |
Removes tracing-builder tests. |
src/Tests/Microsoft.Agents.A365.Observability.Runtime.IntegrationTests/Microsoft.Agents.A365.Observability.Runtime.IntegrationTests.csproj |
Deletes the Runtime integration-test project. |
src/Tests/Microsoft.Agents.A365.Observability.Hosting.Tests/Middleware/ObservabilityBaggageMiddlewareTests.cs |
Removes HTTP baggage middleware tests. |
src/Tests/Microsoft.Agents.A365.Observability.Hosting.Tests/Middleware/BaggageTurnMiddlewareTests.cs |
Removes turn baggage middleware tests. |
src/Tests/Microsoft.Agents.A365.Observability.Hosting.Tests/Microsoft.Agents.A365.Observability.Hosting.Tests.csproj |
Deletes the Hosting test project. |
src/Tests/Microsoft.Agents.A365.Observability.Extensions.IntegrationTests/Microsoft.Agents.A365.Observability.Extensions.IntegrationTests.csproj |
Deletes the extensions integration-test project. |
src/Tests/Microsoft.Agents.A365.Observability.Extensions.IntegrationTests/ActivityCapturingExporter.cs |
Removes the test-only activity exporter. |
src/Tests/Microsoft.Agents.A365.Observability.Extension.Tests/Microsoft.Agents.A365.Observability.Extension.Tests.csproj |
Deletes the extensions unit-test project. |
src/Observability/Runtime/Tracing/Scopes/TraceContextHelper.cs |
Removes trace-context helpers. |
src/Observability/Runtime/Tracing/Scopes/OutputScope.cs |
Removes the output tracing scope. |
src/Observability/Runtime/Tracing/Scopes/AutoInstrumentationConstants.cs |
Removes instrumentation constants. |
src/Observability/Runtime/Tracing/Processors/ActivityProcessor.cs |
Removes baggage-based span enrichment. |
src/Observability/Runtime/Tracing/MessageUtils.cs |
Removes message normalization and serialization. |
src/Observability/Runtime/Tracing/Exporters/TokenResolverContext.cs |
Removes token-resolution context. |
src/Observability/Runtime/Tracing/Exporters/ObservabilityTracerProviderBuilderExtensions.cs |
Removes exporter registration extensions. |
src/Observability/Runtime/Tracing/Exporters/HttpClientFactory.cs |
Removes exporter HTTP-client construction. |
src/Observability/Runtime/Tracing/Exporters/BaseExporterAsync.cs |
Removes the asynchronous exporter abstraction. |
src/Observability/Runtime/Tracing/Exporters/AgentIdentity.cs |
Removes exporter identity metadata. |
src/Observability/Runtime/Tracing/Exporters/Agent365ExporterType.cs |
Removes exporter selection options. |
src/Observability/Runtime/Tracing/Exporters/Agent365ExporterAsync.cs |
Removes the asynchronous Agent365 exporter. |
src/Observability/Runtime/Tracing/Exporters/Agent365Exporter.cs |
Removes the synchronous Agent365 exporter. |
src/Observability/Runtime/Tracing/Contracts/UserDetails.cs |
Removes user telemetry contracts. |
src/Observability/Runtime/Tracing/Contracts/ToolType.cs |
Removes tool-type constants. |
src/Observability/Runtime/Tracing/Contracts/ThreatDiagnosticsSummary.cs |
Removes threat-diagnostics contracts. |
src/Observability/Runtime/Tracing/Contracts/SpanDetails.cs |
Removes span configuration contracts. |
src/Observability/Runtime/Tracing/Contracts/Response.cs |
Removes telemetry response contracts. |
src/Observability/Runtime/Tracing/Contracts/OperationSource.cs |
Removes operation-source definitions. |
src/Observability/Runtime/Tracing/Contracts/Messages/MessageWrappers.cs |
Removes message wrappers and converters. |
src/Observability/Runtime/Tracing/Contracts/Messages/MessageTypes.cs |
Removes structured message models. |
src/Observability/Runtime/Tracing/Contracts/Messages/MessageEnums.cs |
Removes message-related enums. |
src/Observability/Runtime/Tracing/Contracts/InvokeAgentDetails.cs |
Removes invocation configuration contracts. |
src/Observability/Runtime/Tracing/Contracts/InferenceOperationType.cs |
Removes inference-operation definitions. |
src/Observability/Runtime/Tracing/Contracts/GuardrailTargetType.cs |
Removes guardrail target definitions. |
src/Observability/Runtime/Tracing/Contracts/GuardrailRiskSeverity.cs |
Removes guardrail severity constants. |
src/Observability/Runtime/Tracing/Contracts/GuardrailDecisionType.cs |
Removes guardrail decision definitions. |
src/Observability/Runtime/Tracing/Contracts/CallerDetails.cs |
Removes caller metadata contracts. |
src/Observability/Runtime/Tracing/Contracts/AgentType.cs |
Removes agent-type definitions. |
src/Observability/Runtime/README.md |
Removes retired Runtime package documentation. |
src/Observability/Runtime/ObservabilityBuilderExtensions.cs |
Removes host tracing initialization. |
src/Observability/Runtime/Microsoft.Agents.A365.Observability.Runtime.csproj |
Deletes the Observability Runtime package project. |
src/Observability/Runtime/Etw/EtwTracingBuilder.cs |
Removes ETW tracing configuration. |
src/Observability/Runtime/Etw/EtwServiceCollectionExtensions.cs |
Removes ETW service registration. |
src/Observability/Runtime/Etw/EtwScopeEventProcessor.cs |
Removes ETW span processing. |
src/Observability/Runtime/Etw/EtwLogProcessor.cs |
Removes ETW log processing. |
src/Observability/Runtime/Etw/EtwLoggingBuilder.cs |
Removes ETW logging configuration. |
src/Observability/Runtime/Etw/EtwEventSource.cs |
Removes the Observability ETW event source. |
src/Observability/Runtime/Etw/Constants.cs |
Removes ETW category constants. |
src/Observability/Runtime/DTOs/SpanStatusCode.cs |
Removes telemetry status codes. |
src/Observability/Runtime/DTOs/SpanStatus.cs |
Removes the span-status model. |
src/Observability/Runtime/DTOs/SpanKindConstants.cs |
Removes span-kind constants. |
src/Observability/Runtime/DTOs/OutputData.cs |
Removes the output telemetry DTO. |
src/Observability/Runtime/DTOs/InvokeAgentData.cs |
Removes the invocation telemetry DTO. |
src/Observability/Runtime/DTOs/ExecuteToolData.cs |
Removes the tool telemetry DTO. |
src/Observability/Runtime/DTOs/ExecuteInferenceData.cs |
Removes the inference telemetry DTO. |
src/Observability/Runtime/DTOs/Builders/SpanStatusBuilder.cs |
Removes exception-to-status mapping. |
src/Observability/Runtime/DTOs/Builders/OutputDataBuilder.cs |
Removes output DTO construction. |
src/Observability/Runtime/DTOs/Builders/ExecuteInferenceDataBuilder.cs |
Removes inference DTO construction. |
src/Observability/Runtime/DTOs/BaseData.cs |
Removes the shared telemetry DTO base. |
src/Observability/Runtime/DTOs/ApplyGuardrailData.cs |
Removes the guardrail telemetry DTO. |
src/Observability/Runtime/Common/PowerPlatformApiDiscovery.cs |
Removes Observability endpoint discovery. |
src/Observability/Runtime/Common/EnvironmentUtils.cs |
Removes exporter environment helpers. |
src/Observability/Runtime/Common/ActivityExtensions.cs |
Removes activity enrichment helpers. |
src/Observability/Runtime/Builder.cs |
Removes standalone tracing configuration. |
src/Observability/README.md |
Removes the retired module overview. |
src/Observability/Hosting/README.md |
Removes retired Hosting package documentation. |
src/Observability/Hosting/ObservabilityServiceCollectionExtensions.cs |
Removes exporter and token-cache registration. |
src/Observability/Hosting/ObservabilityBuilderExtensions.cs |
Removes hosting tracing extensions. |
src/Observability/Hosting/Middleware/ObservabilityBaggageMiddleware.cs |
Removes HTTP baggage middleware. |
src/Observability/Hosting/Middleware/BaggageTurnMiddleware.cs |
Removes agent-turn baggage middleware. |
src/Observability/Hosting/Microsoft.Agents.A365.Observability.Hosting.csproj |
Deletes the Observability Hosting package project. |
src/Observability/Hosting/Extensions/InvokeAgentScopeExtensions.cs |
Removes turn-context scope enrichment. |
src/Observability/Hosting/Extensions/BaggageBuilderExtensions.cs |
Removes turn-context baggage enrichment. |
src/Observability/Hosting/Caching/ObservabilityTokenResolver.cs |
Removes the token-resolver delegate. |
src/Observability/Hosting/Caching/IExporterTokenCache.cs |
Removes the exporter token-cache interface. |
src/Observability/Hosting/Caching/AgenticTokenStruct.cs |
Removes obsolete delegated-token context. |
src/Observability/Extensions/SemanticKernel/SemanticKernelTelemetryConstants.cs |
Removes Semantic Kernel telemetry constants. |
src/Observability/Extensions/SemanticKernel/SemanticKernelSpanProcessor.cs |
Removes Semantic Kernel span processing. |
src/Observability/Extensions/SemanticKernel/README.md |
Removes retired extension documentation. |
src/Observability/Extensions/SemanticKernel/Models/NestedContent.cs |
Removes the nested telemetry content model. |
src/Observability/Extensions/SemanticKernel/Models/MessageContent.cs |
Removes the telemetry message model. |
src/Observability/Extensions/SemanticKernel/Models/AiChoice.cs |
Removes telemetry choice models. |
src/Observability/Extensions/SemanticKernel/Microsoft.Agents.A365.Observability.Extensions.SemanticKernel.csproj |
Deletes the Semantic Kernel Observability project. |
src/Observability/Extensions/SemanticKernel/FunctionInvocationFilter.cs |
Removes function telemetry enrichment. |
src/Observability/Extensions/SemanticKernel/ChatCompletionAgentExtensions.cs |
Removes agent tracing integration. |
src/Observability/Extensions/SemanticKernel/BuilderExtensions.cs |
Removes Semantic Kernel telemetry registration. |
src/Observability/Extensions/OpenAI/README.md |
Removes retired OpenAI extension documentation. |
src/Observability/Extensions/OpenAI/OpenAITelemetryConstants.cs |
Removes OpenAI telemetry constants. |
src/Observability/Extensions/OpenAI/OpenAISpanProcessor.cs |
Removes OpenAI span processing. |
src/Observability/Extensions/OpenAI/Microsoft.Agents.A365.Observability.Extensions.OpenAI.csproj |
Deletes the OpenAI Observability project. |
src/Observability/Extensions/OpenAI/ChatToolCallExtensions.cs |
Removes tool-call tracing helpers. |
src/Observability/Extensions/OpenAI/BuilderExtensions.cs |
Removes OpenAI telemetry registration. |
src/Observability/Extensions/AgentFramework/README.md |
Removes retired Agent Framework extension documentation. |
src/Observability/Extensions/AgentFramework/Microsoft.Agents.A365.Observability.Extensions.AgentFramework.csproj |
Deletes the Agent Framework Observability project. |
src/Observability/Extensions/AgentFramework/BuilderExtensions.cs |
Removes Agent Framework telemetry registration. |
src/Observability/Extensions/AgentFramework/AgentFrameworkSpanProcessor.cs |
Removes Agent Framework span processing. |
src/Observability/dirs.proj |
Deletes the Observability traversal project. |
src/dirs.proj |
Removes Observability from root traversal. |
src/Directory.Packages.props |
Removes exclusively used dependency declarations. |
README.md |
Announces retirement and links migration guidance. |
generate-dependencies.ps1 |
Excludes retired packages from dependency generation. |
DEPENDENCIES.md |
Removes retired package nodes and relationships. |
build/build.ps1 |
Corrects traversal location and guards fresh package output. |
.specify/memory/constitution.md |
Aligns architecture guidance with maintained modules. |
.github/workflows/ci.yml |
Validates and uploads only current-run packages. |
.claude/agents/test-coverage-reviewer.md |
Updates the maintained test-project inventory. |
.claude/agents/task-implementer.md |
Updates framework and external observability guidance. |
.claude/agents/prd-writer.md |
Updates maintained-module and framework guidance. |
.claude/agents/prd-task-generator.md |
Updates architecture and target-framework guidance. |
.claude/agents/code-review-manager.md |
Updates maintained framework compatibility guidance. |
.claude/agents/architecture-reviewer.md |
Replaces a retired-path documentation example. |
Review effort: Balanced
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
Retiring observability by deleting those projects and carrying the consumer contract in a migration guide is the right shape, and the remaining Notifications, Runtime, and Tooling graph stays coherent.
Two minor comments inline.
Outside the changed lines:
- Minor: Changelog packed into every nupkg still describes retired observability as current (
CHANGELOG.md:9). Removing five published packages is a notable breaking change, but [Unreleased] is empty. The changelog header says every notable change is recorded here, and Directory.Build.props packs this file into every nupkg and sets PackageReleaseNotes to it. The latest section, [2.0.0], still says observability now sends traces to the S2S route and that UseS2SEndpoint is ignored. A consumer of the next Runtime, Notifications, or Tooling package will read that as current behavior. design.md only says historical entries are not the current package set; that sentence is not in the file that ships. vers...
Keep the approved ETW spec for deleted Observability code out of the retirement PR. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d5864454-1c50-4f42-b460-5940f7272418
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
Retiring the Observability projects and pointing consumers at the OpenTelemetry distro is a coherent cut, and the remaining Notifications, Runtime, and Tooling graph stays intact. Pack isolation is the right shape for keeping a fresh run free of retired artifacts.
One thing to address before this merges; details below.
Outside the changed lines:
- Should fix: Traversal test entry point runs tests the script never builds (
build/build.ps1:85). After the script switches to src, -Test builds only dirs.proj and then runs dotnet test tests.proj --no-build. dirs.proj references only the Notification, Runtime, and Tooling traversals, and those exclude test projects. Test projects are discovered only by tests.proj. --no-build sets VSTestNoBuild, so this command does not compile them. On a clean tree the test assemblies were never produced and the script fails. If an earlier solution test left outputs, the same command runs those assemblies without recompiling, so a test edit is not what executes. -Clean only runs dotnet clean dirs.proj,...
Since my last review:
- Fixed: Approved ETW spec still tells implementers to edit deleted observability sources (
docs/superpowers/specs/2026-06-26-etw-guardrail-findings-design.md) - Still open: Changelog packed into every nupkg still describes retired observability as current (
CHANGELOG.md). CHANGELOG.md:8-10 still has an empty [Unreleased] section immediately followed by [2.0.0], whose Observability behavior descriptions begin at lines 14-33. src/Directory.Build.props:34 still directs co
Rick Brighenti (rbrighenti)
left a comment
There was a problem hiding this comment.
A couple of follow-ups on files this PR doesn't touch (so they can't be inline comments):
-
.github/CODEOWNERSlines 4–5 still have owner entries for/src/Observability/and/src/Tests/**/*Observability*/(@microsoft/agent365-observability-approvers). Both paths no longer exist after this PR. Please remove these entries, or reassign that team todocs/observability-migration.mdif they should still review the migration guidance. -
CHANGELOG.md: the[Unreleased]section is empty. Removing theMicrosoft.Agents.A365.Observability.*packages affects consumers, so it should get an entry (e.g. under Removed) that links todocs/observability-migration.md.
Point both references to the official validation checklist and clarify that its RegisterObservability checks apply to OBO rather than S2S. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d5864454-1c50-4f42-b460-5940f7272418
Krishnadheeraj (DheerajPannala)
left a comment
There was a problem hiding this comment.
Retiring the Observability packages and isolating each pack run is a coherent cut, and the remaining Notification, Runtime, and Tooling graph stays consistent. The deletion itself is thorough and matches the solution and traversal layout.
One minor comment inline.
Since my last review:
- Still open: Changelog packed into every nupkg still describes retired observability as current (
CHANGELOG.md). CHANGELOG.md:8-10 still has an empty [Unreleased] section immediately before [2.0.0], without a retirement entry or migration link. src/Directory.Build.props:34 still directs consumers to CHANGELOG.md - Still open: Traversal test entry point runs tests the script never builds (
build/build.ps1). build/build.ps1:69-80 cleans/restores/builds only dirs.proj, then line 85 invokes tests.proj with --no-build. src/dirs.proj:7-9 references only the Notification, Runtime and Tooling traversals; test p
Restore explicit identity, audience, lifetime and delegated-token rejection rules, and clarify deployment-specific permissions and roleless app-token eligibility. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d5864454-1c50-4f42-b460-5940f7272418
Summary
Microsoft.Agents.A365.Observability.*packages: remove their source projects, dedicated unit/integration tests, and solution/traversal entries.Microsoft.OpenTelemetryapplication onboarding package. Cover API/configuration changes, authentication, context propagation, framework instrumentation, unsupported functionality, and the S2S versus OBO distinction. Contracts is a transitive dependency, not a standalone installation recommendation.Validation
docs/superpowersartifacts are included.Existing/environmental limitations
dotnet format --verify-no-changesreports 238 WHITESPACE diagnostics in 22 unchanged C# files; those files were compared against HEAD after EOL normalization. Unrelated formatting was not changed.-p:NuGetAudit=false; repository audit settings are unchanged. The missing traversal SDK was fetched from Microsoft's official dotnet-public mirror.Remaining maintainer actions (outside this repository change)
Microsoft.OpenTelemetryas the replacement recommendation. The guide contains ready-to-paste deprecation text and an optional unlisting checklist. Existing restores remain available; there is no automatic dependency redirect.