Private preview Grafana Cloud

Data privacy in Session Replay

Note

Session Replay is currently in private preview. Grafana Labs offers support on a best-effort basis, and breaking changes might occur prior to the feature being made generally available.

Understand how Session Replay handles data privacy and learn how to configure the Replay Instrumentation package to meet your organization’s privacy requirements.

The Faro Instrumentation Replay package is part of the Faro Web SDK. Refer to Data privacy in Frontend Observability for more details about the Faro privacy considerations.

Privacy considerations

Consider the following before you enable Session Replay for your application.

What data Session Replay sends

Session Replay sends a structured representation of the browser session, not a video or pixel recording. It sends:

  • DOM snapshots and mutations: The initial structure of the page when recording starts, plus incremental changes such as added or removed nodes and attribute and text changes. This includes rendered text content, subject to any masking that you apply.
  • User interactions: Pointer movements, clicks, scrolls, viewport resizes, and input events. Input values are masked by default.
  • Page URLs and navigation events: Full URLs, including path and query string. Personally identifiable information (PII) in URLs is not masked by default.
  • Session metadata: Session ID, recording ID, app name, timestamps, and stack and organization identifiers used to correlate the recording with your other Faro telemetry.

Session Replay doesn’t capture:

  • Video or audio content.
  • Network request and response bodies, which are handled by separate Faro instrumentation.
  • Console logs, which are handled by separate Faro instrumentation.
  • Browser extensions or bookmarks.

How to prevent data from being sent

You can control what Session Replay records using the following mechanisms:

  • Default masking: All input values and text content are masked client-side, before anything leaves the browser. No configuration is required.
  • SDK configuration: Use the maskTextSelector, blockSelector, maskInputOptions, and ignoreSelector options to tighten or customize masking. Refer to Privacy and masking options for the full reference.
  • beforeSend hook: Use the beforeSend hook to filter or transform events programmatically before they’re sent. Return null to drop an event entirely.
  • Disable Session Replay: Session Replay is off by default. It must be explicitly enabled by an administrator.

Inform users about session recording

Session Replay runs as a client-side SDK in your own web application, so informing your end users that you record their sessions is your responsibility. Before you enable recording, make sure you:

  • Disclose session recording in your privacy notice or consent banner, as required by applicable law.
  • Obtain any necessary consent from your end users.

To describe what you record accurately, refer to What data Session Replay sends.

Grafana provides tools to help you control what’s recorded, such as masking, sampling, and retention, but complying with the privacy laws that apply to your end users is up to you.

Other data that might be recorded

Besides form inputs, which are masked by default, recordings can include:

  • Page URLs: Including query strings, which might contain identifiers or user-specific parameters. Not masked by default.
  • Rendered text: All visible text on the page is masked by default through maskTextSelector: '*'. If you relax this setting, page copy, labels, and other text appear in replays.
  • DOM structure: The full structure of the page as the browser renders it, which might reflect logged-in state, feature flags, or account-specific content.
  • Canvas content, cross-origin iframes, and inline images: Not captured by default. Each requires explicit opt-in through configuration.

Bookmarks and media content such as audio and video are not captured.

Data retention

Session replays are retained for 30 days, aligned with Frontend Observability retention.