OneLake Diagnostics in Microsoft Fabric: Who Accessed What, When, and How

Learn how OneLake diagnostics gives end-to-end visibility into data access across Microsoft Fabric — setup, event schema, immutable logs, and best practices.

A practical guide to OneLake diagnostics: what it logs, how to enable it, the event schema, immutability for tamper-proof audit trails, and the limitations to plan around.

OneLake diagnostics gives Microsoft Fabric administrators end-to-end visibility into data access across a workspace — answering the question every governance and security team eventually asks: who accessed what, when, and how? When enabled, it streams data access events as JSON logs into a designated lakehouse in the same capacity, covering everything from clicks in the Fabric UI to programmatic access via APIs, pipelines, and shortcuts.

What OneLake Diagnostics Monitors

Coverage spans every access path into OneLake data, not just the Fabric web experience:

Fabric UI User actions Every operation logged APIs / Pipelines Blob & ADLS APIs Engines, connectors Every operation logged Shortcuts Cross-workspace access captured at the source workspace

For Fabric workload access (e.g. an engine reading a lakehouse), OneLake records that temporary access was granted — the engine's own logs provide the operation-level detail.

↑ back to top

Prerequisites & Setup

  • Create a lakehouse to store diagnostic events — it must sit in the same capacity as the workspaces being monitored (same virtual network too, if private links are in use).
  • You need workspace admin on the monitored workspace and contributor on the target lakehouse.
  • In workspace settings, open OneLake settings and toggle Add diagnostic events to a lakehouse to On, then select the target lakehouse.
Expect a delay: events can take up to an hour to start flowing into the lakehouse after enabling.

Switching the target lakehouse later is non-destructive — use Replace lakehouse and the previous events simply stay put in the original one. Disabling the toggle keeps your settings so re-enabling picks up where you left off.

↑ back to top

The Diagnostic Event Schema

Events land as JSON under a predictable, hour-partitioned path:

Files/DiagnosticLogs/OneLake/Workspaces/<WorkspaceId>/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json
PropertyWhat it tells you
operationName / operationCategoryThe OneLake operation and whether it's a Read, Write, or Delete
executingPrincipalId / executingUPNWho performed the operation (user or service principal)
Resource / itemId / itemTypeWhat was accessed, relative to the workspace
accessStartTime / accessEndTimeWhen the operation happened (or when temp access was granted/ended)
isShortcut / accessedViaResourceHow the data was reached — directly or via a shortcut
callerIPAddressCaller IP (can be redacted tenant-wide)
Privacy control: tenant admins can disable “Include end-user identifiers in OneLake diagnostic logs” in the Fabric Admin Portal to strip executingUPN and callerIpAddress from every event.
↑ back to top

Immutable Logs for Tamper-Proof Audit Trails

Diagnostic events can be made immutable (WORM — write once, read many) using Azure Blob Storage immutability, configured with a retention period in workspace settings.

One-way door: once an immutability period is applied, it cannot be shortened or removed. Storage costs grow for as long as files can't be deleted, so plan a cleanup job for after the retention window expires.
Cleanup patternHow it works
Path-based age checkUse the y=/m=/d=/h= folder path to compute file age and delete anything past retention
Check immutability expiryCall Get Blob Properties, read x-ms-immutability-policy-until-date, skip files not yet expired
Tolerant retryCatch HTTP 409 (BlobImmutableDueToPolicy), log it, and retry on the next scheduled run

A scheduled Fabric notebook, a data pipeline (Get Metadata + Delete), or a custom job against the OneLake/ADLS Gen2 APIs all work for this cleanup.

↑ back to top

Limitations to Plan Around

  • Workspace Outbound Access Protection (OAP): not compatible across workspaces — the workaround is to select a lakehouse in the same workspace.
  • Private links: lakehouse selection honors your private-link configuration, but diagnostics won't automatically adjust if networking changes later — re-check the setting after any network change.
  • Capacity moves: moving a workspace to a different capacity disables diagnostics; you'll need to re-enable and pick a lakehouse in the new capacity.
Planning a governance or compliance rollout for Fabric? Book an architecture advisory session with Translyticx Consulting.

Source: OneLake diagnostics overview — Microsoft Learn.

Leave a comments