Summary
Microsoft.Agents.AI.Workflows sets the span tag message.type to the .NET type name of the message being processed. message.type is a registered OpenTelemetry semantic-convention attribute: the RPC message-event key with the enum values SENT / RECEIVED, deprecated as obsoleted in semantic-conventions 1.44.0 (model/rpc/deprecated/registry-deprecated.yaml). A registry-driven pipeline therefore treats the workflow tag as the obsoleted RPC key: Weaver live-check reports it as a deprecated attribute carrying a value outside its enum, and a collector that follows the registry drops it. The message type never reaches a backend.
Where (tag dotnet-1.24.0)
dotnet/src/Microsoft.Agents.AI.Workflows/Observability/Tags.cs:20 declares message.type.
dotnet/src/Microsoft.Agents.AI.Workflows/Observability/WorkflowTelemetryContext.cs:146 sets it on executor.process.
Why only this tag
The other workflow tags live in namespaces upstream does not define (workflow.*, executor.*, edge_group.*, message.content, message.source_id, message.target_id), so a downstream registry can declare them as library-owned keys and pass them through. message.type is the one tag that cannot be declared, because the catalog already carries the upstream key of that name with a different meaning. (session.id, error.type and error.message also collide, but their meaning matches upstream's, so they pass as the upstream keys.)
Ask
Give the tag a library-owned name, for example executor.message.type or workflow.message.type, the way the executor and edge-group tags already are. Longer term, prefixing all of message.* (workflow.message.*) would keep the library clear of the deprecated RPC message.* keys entirely.
Context
We maintain a Weaver registry that layers the GenAI conventions and library-owned keys for .NET instrumentation, and declare the workflow tags there as pass-through keys: https://github.com/ANcpLua/Qyl.OpenTelemetry.SemanticConventions/blob/main/registry/vendor/microsoft-agents-ai-workflows.yaml. Happy to send a PR for the rename if the direction is agreed.
Summary
Microsoft.Agents.AI.Workflowssets the span tagmessage.typeto the .NET type name of the message being processed.message.typeis a registered OpenTelemetry semantic-convention attribute: the RPC message-event key with the enum valuesSENT/RECEIVED, deprecated as obsoleted in semantic-conventions 1.44.0 (model/rpc/deprecated/registry-deprecated.yaml). A registry-driven pipeline therefore treats the workflow tag as the obsoleted RPC key: Weaverlive-checkreports it as a deprecated attribute carrying a value outside its enum, and a collector that follows the registry drops it. The message type never reaches a backend.Where (tag
dotnet-1.24.0)dotnet/src/Microsoft.Agents.AI.Workflows/Observability/Tags.cs:20declaresmessage.type.dotnet/src/Microsoft.Agents.AI.Workflows/Observability/WorkflowTelemetryContext.cs:146sets it onexecutor.process.Why only this tag
The other workflow tags live in namespaces upstream does not define (
workflow.*,executor.*,edge_group.*,message.content,message.source_id,message.target_id), so a downstream registry can declare them as library-owned keys and pass them through.message.typeis the one tag that cannot be declared, because the catalog already carries the upstream key of that name with a different meaning. (session.id,error.typeanderror.messagealso collide, but their meaning matches upstream's, so they pass as the upstream keys.)Ask
Give the tag a library-owned name, for example
executor.message.typeorworkflow.message.type, the way the executor and edge-group tags already are. Longer term, prefixing all ofmessage.*(workflow.message.*) would keep the library clear of the deprecated RPCmessage.*keys entirely.Context
We maintain a Weaver registry that layers the GenAI conventions and library-owned keys for .NET instrumentation, and declare the workflow tags there as pass-through keys: https://github.com/ANcpLua/Qyl.OpenTelemetry.SemanticConventions/blob/main/registry/vendor/microsoft-agents-ai-workflows.yaml. Happy to send a PR for the rename if the direction is agreed.