Stream logs to your SIEM
Stream AgentKit tool calls, connected account changes and other events to Datadog, CrowdStrike or Google SecOps, and check what was delivered.
Send a record of your agents’ tool calls, and of changes to your users’ connected accounts, to your security team’s SIEM. Scalekit pushes each event to the destination as it happens, so you can alert on it and keep it with the rest of your audit logs.
Before you start
Section titled “Before you start”- Log streaming depends on your plan. If it isn’t on yours, the Log Streaming page says so. Contact us to turn it on.
- An Admin role in the Scalekit dashboard, or a custom role that can manage log streaming.
- An account with one of these destinations:
| Destination | What you need |
|---|---|
| Datadog | Your Datadog Site, such as datadoghq.com, and an API key |
| CrowdStrike | An Ingest URL and an Ingest token from a CrowdStrike data connector |
| Google SecOps | Set up with Scalekit: you grant a Scalekit service account access to your instance instead of sharing a credential. Contact us |
Using a different log destination? Contact us and tell us which one.
Each environment streams separately. Set up a destination in Production to capture your users’ activity.
Create a destination
Section titled “Create a destination”-
In the Scalekit dashboard, switch the product to Auth for MCP & SaaS and go to Developers > Log Streaming. Log streaming covers your AgentKit events too.
-
Select Create destination and choose the Provider.
-
Enter a Display name, such as
Production SIEM, and the destination’s details from the table above. -
Under Events to stream, keep every category checked, or uncheck the ones you don’t want. For AgentKit, keep Agent Tool Calls and Connected Accounts.
-
Make sure Stream events to this destination is on, then select Create destination.
To stop streaming without losing the setup, edit the destination and switch Stream events to this destination off.
What AgentKit streams
Section titled “What AgentKit streams”| Category | Events |
|---|---|
| Agent Tool Calls | connected_account.tool_executed, one for each tool call made on a user’s connected account. A call that fails before Scalekit finds the connected account sends no event |
| Connected Accounts | connected_account.created, connected_account.updated, connected_account.deleted, connected_account.status_updated, connected_account.magic_link_generated, connected_account.oauth_succeeded, connected_account.oauth_tokens_fetched, connected_account.token_refresh_succeeded, connected_account.token_refresh_failed, connected_account.tool_discovery_failed |
| Admin & Configuration | Changes to the environment’s configuration |
Each event has the same envelope as an account event webhook: spec_version, id, type, occurred_at, environment_id, object and data.
A tool call event’s data says who called which tool, and how it went:
- The tool:
tool_name,tool_provider,tool_execution_idandtool_execution_duration_ms. - The user:
connected_account_id,connected_account_identifier,connection_idandconnection_name. - The outcome:
statusandis_error, pluserror_codeanderror_messagewhen the call failed. - The caller, when known:
source,agent_idandagent_run_id.
The tool’s input and output are not included.
Check it worked
Section titled “Check it worked”- In the destination’s menu, select Test connection. Scalekit sends a test event, and the dashboard shows Connection succeeded. when the destination accepts it.
- Search your SIEM for
type:scalekit.logstream.connectivity_testto confirm it arrived. - Make a tool call, then open View deliveries on the destination. The
connected_account.tool_executedevent shows as Delivered.
If a delivery fails, Scalekit retries it. View deliveries shows each attempt with its HTTP status and when the next retry is due.