This release is a pre-release and may not be stable for production use.
microsoft-agents-a365-observability-core
Telemetry, tracing, and monitoring components for AI agents built on OpenTelemetry. This package provides structured spans for agent invocation, tool execution, and LLM inference with context propagation and pluggable exporters.
Already using OpenTelemetry? This SDK detects an existing
TracerProviderand adds its processors to it — your spans flow to your existing backend (Azure Monitor, OTLP collector, vendor exporter, etc.) and, whenENABLE_A365_OBSERVABILITY_EXPORTERis enabled with a configuredtoken_resolver, also to the Agent 365 backend. See Integrating with existing OpenTelemetry for setup patterns and troubleshooting.
Installation
pip install microsoft-agents-a365-observability-core
Usage
For usage examples and detailed documentation, see the Observability documentation on Microsoft Learn.
Agent 365 OBS export authentication
When ENABLE_A365_OBSERVABILITY_EXPORTER is enabled, exports always use the
S2S OTLP route:
/observabilityService/tenants/{tenantId}/otlp/agents/{agentId}/traces?api-version=1
The deprecated use_s2s_endpoint option is ignored, even when set to False;
domain overrides change only the host. The exporter never falls back to
/observability and never reads delegated request-context tokens.
Provide an app-only OBS token_resolver(agent_id, tenant_id) for the exporting
agent identity. The resolver is invoked for each export batch and identity
group, so it should cache the acquired token and refresh near expiry. Empty
tokens or resolver failures fail that export batch without sending an HTTP
request or retrying on a delegated route. If the Agent 365 exporter is enabled
without a resolver, the existing ConsoleSpanExporter fallback is kept and
nothing is sent to Agent 365.
Resolvers should request the OBS resource /.default scope
(api://9b975845-388f-4429-889e-eab1ef63949c/.default) and validate the token
before returning it: reject any scp claim and any idtyp other than app;
when idtyp is absent, accept only a non-empty roles array or a non-empty
oid equal to sub; also verify aud is the OBS resource and the token is not
expired. Workload authentication for MCP, Microsoft Graph, and other OBO calls
is separate and unchanged.
Support
For issues, questions, or feedback:
- File issues in the GitHub Issues section
- See the main documentation for more information
Trademarks
Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.
License
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for microsoft-agents-a365-observability-core 2.0.0.dev0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| microsoft_agents_a365_observability_core-2.0.0.dev0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / microsoft_agents_a365_observability_core-2.0.0.dev0-py3-none-any.whl
| Download URL | microsoft_agents_a365_observability_core-2.0.0.dev0-py3-none-any.whl |
|---|---|
| Size | 64.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
72cf137014526e9027361ffa78a669a7c583ca542036c86add8425bdfaa7038b
|
|
BLAKE2b-256 checksum How to use checksums |
befcecc4bfdb7041ce2b36c7bb8c69d037a50ab6f29f7e266a535dcf94ffcc69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|