faro 0.3.5 copy "faro: ^0.3.5" to clipboard
faro: ^0.3.5 copied to clipboard

Grafana Faro SDK for Flutter applications - Monitor your Flutter app with ease.

Grafana Faro Flutter SDK #

[Grafana Faro logo]

Flutter checks License pub package

The Grafana Faro Flutter SDK enables real user monitoring (RUM) for mobile applications by instrumenting Flutter apps to collect telemetry.

The collected data can be visualized in Grafana Mobile Observability (currently in private beta), which will provide immediate, clear, actionable insights into the end user experience of your Flutter applications. Similar to Grafana Frontend Observability, but with a focus on mobile-specific vitals and telemetry, this will allow you to monitor real-time mobile app health, track errors, and resolve issues with end-to-end visibility across your stack.

Importantly, you don't need to rely on Grafana Mobile Observability in Grafana Cloud to benefit from this SDK. The telemetry data can be forwarded to Grafana Alloy (with faro receiver integration enabled) and then made accessible in a observability vendor of your choice and integrate Faro's powerful mobile instrumentation into your existing observability workflow.

Features #

The Faro Flutter SDK provides real user monitoring capabilities including:

  • Device Information: OS, version, Flutter version
  • Application Information: App name, version, environment
  • Session Information: Session tracking and events
  • Performance Monitoring:
    • CPU and memory usage
    • Cold/warm start metrics
    • ANR (Application Not Responding) detection
  • Error Tracking: Automatic capture of Flutter errors and exceptions
  • User Interaction: Track user events, interactions, navigation patterns, and complete user flows through your application
  • HTTP Network Monitoring: Request/response details and timing
  • Asset Loading: Track asset loading performance
  • Offline Support: Caching of events when offline

See Features Documentation for a complete list.

Getting Started #

Installation #

Add the following dependencies to your pubspec.yaml:

dependencies:
  faro: ^0.3.0

Initialize Faro #

Add the following snippet to initialize Faro Monitoring with the default configurations:

HttpOverrides.global = FaroHttpOverrides(HttpOverrides.current); // enable HTTP tracking

Faro().runApp(
  optionsConfiguration: FaroConfig(
      appName: "<App_Name>",
      appVersion: "1.0.0",
      appEnv: "Production",
      apiKey: "<API_KEY>",
      collectorUrl: "faro receiver endpoint",
      collectorHeaders: {
        ... // custom headers to be sent with each request to the collector url
      }
  ),
  appRunner: () => runApp(
   FaroUserInteractionWidget(child: MyApp())
  ),
);

Documentation #

  • Getting Started Guide
  • Configuration Options
  • Feature Documentation

Releases #

Faro releases follow the Semantic Versioning naming scheme: MAJOR.MINOR.PATCH.

  • MAJOR: Major releases include large new features which will significantly change how Faro operates and possible backwards-compatibility breaking changes.
  • MINOR: These releases include new features which generally do not break backwards-compatibility.
  • PATCH: Patch releases include bug and security fixes which do not break backwards-compatibility.

Contributing #

Contributions to the Faro Flutter SDK are welcome! Please see our contributing guidelines for more information.

License #

Grafana Faro Flutter SDK is distributed under the terms of the Apache License 2.0.