honeyhive Python SDK 1.4.0 or later, which includes the honeyhive.adapters.copilot_studio adapter.How it works
This guide uses an Event Hub for real-time forwarding. Batched export to Blob Storage also works, with a blob trigger in place of the Event Hub trigger.How Copilot Studio events map to HoneyHive
The adapter convertsAppEvents, AppRequests, and AppDependencies records into spans. AppTraces and similar records carry log signals rather than spans and are skipped; AppExceptions aren’t mapped yet. Each converted record becomes one span:
chain event, and each Copilot Studio conversation shows up as a single session. The event name (user_input, agent_output, and so on) distinguishes each kind, with the message content captured in the event’s inputs and outputs.
Prerequisites
- Python 3.11+
- Azure Functions Core Tools v4
- Azure Developer CLI (
azd) - A Copilot Studio agent sending telemetry to Application Insights
- An Azure Event Hub to receive diagnostic exports
- A HoneyHive project and API key from Settings > Project > API Keys
Setup
Connect Copilot Studio to Application Insights
- Enable logging so incoming and outgoing messages and events are logged
- Log conversation details so user ID, user name, and message text are captured

Copilot Studio Settings > Advanced > Application Insights, with the connection string set and logging options enabled
Provision Azure infrastructure
azd init with the official Event Hub Functions template, then replace the generated function_app.py with the forwarder code below:- Function App (Flex Consumption or Consumption plan, Python 3.11+)
- Storage Account (required by the Functions runtime)
- Event Hub namespace + hub wired to your Copilot Studio diagnostic export
Configure Copilot Studio diagnostic export
- Select log categories:
AppEvents,AppRequests,AppDependencies - Set the destination to Stream to an event hub and select your Event Hub namespace and hub

Azure diagnostic setting streaming Events, Requests, and Dependencies to an Event Hub.
Forward records with the adapter
records array, converts them to spans, and exports them:copilot_studio_records_to_spans accepts Azure Monitor diagnostic-export records and returns OpenTelemetry ReadableSpan objects, handling trace and session correlation. For batched export, swap the Event Hub trigger for a blob trigger that reads the archived records and passes the same records list to the adapter.Add these dependencies to the project’s requirements.txt:Set application settings
Deploy

The deployed forwarder function with its Azure Event Hubs trigger in the Function App Integration view.
Verify in HoneyHive
Generate Copilot Studio activity
Check forwarded traces
user_input, agent_output, and any agent_error spans carrying the message content as inputs and outputs.
A forwarded Copilot Studio session in HoneyHive Traces, with user_input, agent_output, and agent_action spans and the agent response in the output panel.

