Documentation for automated readers
A curated documentation index is available at: https://grafana.com/llms.txt
A complete documentation index is available at: https://grafana.com/llms-full.txt
These indexes can help with page discovery before fetching individual documents.
This page is also available in Markdown, which may be easier for automated readers and AI tools to parse than HTML. The Markdown version is available at https://grafana.com/docs/grafana-cloud/observe-and-act/monitor-applications/frontend-observability/introduction/supported-environments.md, or by sending Accept: text/markdown to https://grafana.com/docs/grafana-cloud/observe-and-act/monitor-applications/frontend-observability/introduction/supported-environments/. For broader documentation discovery, the curated index is available at https://grafana.com/llms.txt and the complete index is available at https://grafana.com/llms-full.txt.
Supported environments for Frontend Observability
The Faro Web SDK instruments web pages that run in a browser. During initialization, the SDK and most of its default instrumentations read browser APIs such as window, document, PerformanceObserver, and sessionStorage. JavaScript that doesn’t run in a typical web page context is outside the supported scope.
Support matrix
| Environment | Supported | Notes |
|---|---|---|
| Web applications that run in a browser | Yes | The primary target of the Faro Web SDK. Refer to Get started. |
| Client-side of server-rendered applications, such as Next.js and React SSR | Yes | Faro initializes in the browser after the application hydrates. Refer to React server side rendering support and Instrument Next.js applications. |
| Server runtime of server-rendered applications | No | Faro doesn’t instrument server-side code. Refer to Server-rendered applications. |
| Browser extensions | No | Grafana doesn’t test or support this environment. Refer to Browser extensions. |
| Web workers and service workers | No | Grafana doesn’t test or support this environment. |
| Node.js, React Native, and other non-browser JavaScript environments | No | Grafana doesn’t test or support these environments. |
Server-rendered applications
Faro runs in the browser only. In a server-rendered application, such as one built with Next.js or React server side rendering, the browser part is fully supported. Initialize Faro on the client, after the application hydrates.
The server process is a separate concern, and Faro doesn’t collect telemetry from it. To monitor the server, instrument it with OpenTelemetry and send the data to Application Observability. You can then correlate frontend and backend telemetry. Refer to Integrate Frontend Observability with Application Observability.
Browser extensions
Faro doesn’t support instrumenting browser extensions.
Extension contexts don’t provide the browser APIs that the SDK and its default instrumentations rely on, so initialization can fail. Several of the default instrumentations also have no meaning in an extension. Performance instrumentation, navigation instrumentation, and Web Vitals all describe how a web page loads and renders, which an extension background context never does.
Some users have made Faro run inside an extension by supplying their own set of instrumentations. That configuration is unsupported. If you choose it, you maintain it yourself.
Web workers, service workers, and other environments
Faro doesn’t support web workers, service workers, Node.js, React Native, or any other JavaScript environment without a DOM. The reasoning is the same as for browser extensions. The SDK reads browser APIs during initialization, and its default instrumentations measure page behavior that these environments don’t have.
To monitor a Node.js backend, use Application Observability with the OpenTelemetry SDK for Node.js.
Was this page helpful?
Related resources from Grafana Labs


