Repository navigation
Add A365 Configuration Layer: Implementation Task 1 - #8
Merged
Jackson Weber (JacksonWeber) merged 5 commits intoApr 8, 2026
Merged
Jackson Weber (JacksonWeber) merged 5 commits into
Jackson Weber (JacksonWeber) merged 5 commits into
Conversation
Implement the A365 configuration surface as defined in the A365 implementation
plan. This is the foundation for migrating the A365 observability runtime into
the Microsoft OpenTelemetry distro.
New files:
- src/_a365/configuration/A365ConfigurationOptions.ts: Public-facing types
(A365Options, ClusterCategory, instrumentation configs)
- src/_a365/configuration/A365Configuration.ts: Resolved config class merging
defaults, programmatic options, and MICROSOFT_OTEL_A365_* env vars
- src/_a365/utils/utils.ts: Env var reading utility
- src/_a365/{index,configuration/index}.ts: Barrel exports
- test/internal/unit/a365/a365Configuration.test.ts: 28 unit tests
- A365_IMPLEMENTATION_PLAN.md: Detailed migration plan for A365 convergence
Modified files:
- src/distro/types.ts: Added a365?: A365Options to MicrosoftOpenTelemetryOptions
- src/distro/index.ts: Export A365Options type
- src/index.ts: Re-export A365Configuration class and all A365 types
Defaults verified against microsoft/Agent365-nodejs source:
- authScopes defaults to ['https://api.powerplatform.com/.default']
- clusterCategory supports all 12 ClusterCategory values from source
- enabled defaults to false (matching isObservabilityExporterEnabled)
- perRequestExport defaults to false (batch export)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Jackson Weber (JacksonWeber)
requested review from
Nev (MSNev),
Hector Hernandez (hectorhdzg),
Leighton Chen (lzchen) and
Radhika Gupta (rads-1996)
as code owners
April 8, 2026 21:19
Move OpenAI Agents, LangChain, and Microsoft Agent Framework instrumentation options from A365Options.instrumentations into the root-level InstrumentationOptions interface in src/types.ts. This unifies all instrumentation toggles at the distro level rather than scoping them under A365. - Added openaiAgents, langchain, microsoftAgentFramework to InstrumentationOptions - Moved OpenAIAgentsInstrumentationConfig and LangChainInstrumentationConfig to src/types.ts - Removed A365InstrumentationOptions and instrumentations from A365Options - Updated barrel exports and tests Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Update A365Options to remove instrumentations (now in global InstrumentationOptions) - Update ClusterCategory to match full source enum - Remove logLevel and exporterOptions from A365Options - Fix wiring references: a365.instrumentations.* -> instrumentationOptions.* - Fix corrupted npm package names (@_openai -> @openai, @_langchain -> @langchain) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Hector Hernandez (hectorhdzg)
approved these changes
Apr 8, 2026
Remove microsoftAgentFramework from InstrumentationOptions and clean up all references in A365_IMPLEMENTATION_PLAN.md. This instrumentation is not needed now and can be added later if required. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Parse the a365 key from applicationinsights.json (or APPLICATIONINSIGHTS_CONFIGURATION_CONTENT env var) and merge into A365Configuration with correct precedence: defaults -> programmatic -> JSON config -> env vars Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Hector Hernandez (hectorhdzg)
approved these changes
Apr 8, 2026
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.
This pull request introduces an implementation plan for migrating the A365 observability runtime into the Microsoft OpenTelemetry JavaScript distribution and adds the initial implementation of the A365 configuration layer. The changes establish a clear migration strategy, define the target module structure, and provide a robust configuration resolution mechanism for A365 integration.
Implementation Plan and Configuration Layer Migration:
Documentation and Planning
A365_IMPLEMENTATION_PLAN.md, which details the phased migration of A365 observability code fromAgent365-nodejsinto the OpenTelemetry distro. The document outlines the migration scope, target module structure, implementation tasks for each subsystem (configuration, exporter, processors, scopes, context propagation, GenAI instrumentations, hosting), and testing/validation requirements. It also specifies the public API surface and export strategy for A365 types.Configuration Layer Implementation
A365Configuration.tsinsrc/_a365/configuration/, implementing the A365 configuration layer. This class resolves configuration by merging defaults, programmatic options, JSON config, and environment variables (with a clear precedence order). It supports all required A365 options, including enabling/disabling, cluster category, domain override, OAuth scopes, per-request export, baggage, and hosting options.MICROSOFT_OTEL_A365_*convention and mapped legacy A365 environment variables to the new naming scheme.These foundational changes set up the codebase for the subsequent migration of A365 observability components and ensure configuration consistency across all integration points.