You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Framework error spans work (agents.adapter.process). A365 RecordError() path exists but not triggered in test
3
BaggageBuilder
DONE
Base: ALL baggage fields propagate. Distro: FIXED with correct config (enable_a365=True, EXPORTER=false). #65 was test config issue — but dual-control is confusing
4
Baggage Middleware
DONE
Both working when enable_a365=True. Distro requires enable_a365=True for A365SpanProcessor to propagate baggage
5
BatchSpanProcessor
DONE
Identical defaults in both (2048/512/5000/30000). Both use _EnrichingBatchSpanProcessor subclass
6
Exporter
DONE
Console works both. A365 exporter: identical logic. Both partition by identity, skip on missing
7
TokenResolver
DONE
Identical logic. Base: fallback only at runtime. Distro: AgenticTokenCache works on 2nd call
8
Auth (OBO/S2S)
DONE
Both support use_s2s_endpoint. Identical S2S URL construction. Requires real A365 deployment to test
9a
Auto-instrumentation - Semantic Kernel
DONE
Base: processor only (no inference span). Distro: chat gpt-4o-mini auto-generated
Issue P-1 (#65): Distro baggage not propagating — TEST CONFIG ISSUE + DESIGN FEEDBACK
Severity:CRITICAL DESIGN FEEDBACK
Status: Baggage works when enable_a365=True. Was caused by using enable_a365=False which disables A365SpanProcessor. Filed feedback that enable_a365 controls both exporter AND baggage — confusing dual-control with ENABLE_A365_OBSERVABILITY_EXPORTER.
Issue P-2 (#66): Distro manual InferenceScope/ExecuteToolScope spans not emitted
Severity: HIGH — STILL OPEN in 0.1.0b1
Affects: distro/openaisample
Details: Spans are created (confirmed in server log) but do not reach any exporter. invoke_agent and output_messages reach exporters, but Chat and execute_tool do not. Same code pattern works in base SDK.
Issue P-3 (#68): Blueprint ID attribute renamed
Severity:MEDIUMFIXED in 0.1.0b1
Details: Now uses microsoft.a365.agent.blueprint.id (matching base SDK).
Issue P-4 (#69): Distro SDK version 0.0.0-unknown
Severity:LOWFIXED in 0.1.0b1
Details: Now reports telemetry.sdk.version: 0.1.0b1.
Issue P-5: Base CustomLangChainInstrumentor requires wrapt<2
Severity: MEDIUM (workaround available)
Affects: base/langchainsample
Details:TypeError: wrap_function_wrapper() got an unexpected keyword argument 'module' — wrapt v2.x renamed the module parameter to target. Extensions v0.3.0.dev6 still uses the old keyword.
Workaround: Pin wrapt<2 in pyproject.toml. Applied in sample.
Details: Use resource=Resource.create({"service.name": "...", "service.namespace": "..."}) parameter on use_microsoft_opentelemetry(). Replaces base SDK's configure(service_name=..., service_namespace=...).
Details: Distro resource shows service.name: unknown_service and missing service.namespace. Base SDK correctly sets both from configure(service_name=..., service_namespace=...). The distro's use_microsoft_opentelemetry() doesn't propagate these to the OTel resource.
Issue P-1 (UPGRADED): Distro baggage not propagating to ANY child spans
Updated finding: ALL 10 baggage fields are missing from ALL framework spans in the distro (agents.app.*, agents.turn.*, agents.connector.*, agents.adapter.send_activities). Only output_messages has partial baggage (missing microsoft.conversation.item.link). The base SDK propagates all 10 fields to all spans. The distro's BaggageMiddleware is registered but appears non-functional.
Attribute Completeness (Test 1 + Test 13)
Base SDK invoke_agent — 6 required attributes missing
Missing Attribute
Notes
microsoft.agent.user.id
Not set; user.id is set from baggage
client.address
Not populated from emulator activity
user.email
Not set; microsoft.agent.user.email is set (different key)
gen_ai.output.messages
Not recorded on invoke_agent; handled by output_messages scope
server.address
Not set by sample (developer must configure)
server.port
Not set by sample (developer must configure)
Base SDK InferenceScope, ExecuteToolScope, OutputScope
All required attributes present.
Resource Attributes
Attribute
Base
Distro
Required
service.name
AzureOpenAiKairoTracing
unknown_service (P-9)
Yes
service.namespace
AzureOpenAiKairoTesting
Missing (P-9)
Yes
service.version
Missing
Missing
Yes
telemetry.sdk.language
python
python
—
telemetry.sdk.name
opentelemetry
opentelemetry
—
telemetry.sdk.version
1.38.0
1.40.0
—
Baggage Propagation
Span Category
Base (10 fields)
Distro (10 fields)
agents.app.*
ALL present
ALL 10 missing
agents.turn.*
ALL present
ALL 10 missing
agents.connector.*
ALL present
ALL 10 missing
agents.adapter.send_activities
ALL present
ALL 10 missing
invoke_agent (A365)
ALL present
6 missing
output_messages (A365)
ALL present
1 missing (conversation.item.link)
Chat / execute_tool (A365)
ALL present
Not emitted (P-2)
Store Publishing Readiness
Requirement
Base
Distro
InvokeAgentScope with required attrs
Partial (6 missing)
Partial (6+ missing, no baggage)
InferenceScope with required attrs
PASS
FAIL (P-2: not emitted)
ExecuteToolScope with required attrs
PASS
FAIL (P-2: not emitted)
Console output matches AO guide
Mostly
FAIL
Code Inspection Results (Tests 5, 8, 11, 12)
Test 5: BatchSpanProcessor
Setting
Base Default
Distro Default
Test Plan
Match?
max_queue_size
2048
2048
2048
OK
max_export_batch_size
512
512
512
OK
scheduled_delay_ms
5000
5000
5000
OK
exporter_timeout_ms
30000
30000
30000
OK
Both use _EnrichingBatchSpanProcessor(BatchSpanProcessor) subclass that enriches spans before batching. Configurable via Agent365ExporterOptions / SpectraExporterOptions. Identical between base and distro.
Distro has A365_OBSERVABILITY_SCOPE_OVERRIDE for custom token scopes (base does not)
Test 12: Edge Cases
Edge Case
Base
Distro
Match?
Missing identity (no tenant/agent)
partition_by_identity returns empty → "No spans with identity found" → SUCCESS
Identical
OK
Token resolution failure
Catches exception, logs error, marks group as failure, continues to next group
Identical
OK
Token returns None
Logs debug "No token returned", proceeds without auth header
Identical
OK
Non-HTTPS with token
Warns "Bearer token sent over non-HTTPS"
Identical
OK
Exporter closed
Returns FAILURE immediately
Identical
OK
Export HTTP error
_post_with_retries handles retries and non-retryable errors
Identical logic
OK
All edge case handling is identical between base and distro. The A365 exporter code (_Agent365Exporter) is the same codebase ported to the distro namespace.