faro 0.12.0
faro: ^0.12.0 copied to clipboard
Grafana Faro SDK for Flutter applications - Monitor your Flutter app with ease.
Grafana Faro Flutter SDK #
The Grafana Faro Flutter SDK enables real user monitoring (RUM) for mobile applications by instrumenting Flutter apps to collect telemetry.
Note: Grafana Frontend Observability is built for web applications — there is currently no official mobile observability product from Grafana.
This SDK enables mobile telemetry collection using the Faro protocol. It can work well for many use cases, but please be aware that it is not yet backed by a dedicated mobile product experience in Grafana Cloud.
What you can expect:
- Session tracking and error monitoring work similarly to web applications
- All telemetry data is stored in Loki/Tempo, allowing you to create custom dashboards and run queries in Grafana
- Data can be forwarded to Grafana Alloy (with faro receiver enabled) and routed to any observability backend of your choice
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
- User Actions: Group related telemetry under a single action context to track end-to-end user interactions
- HTTP Network Monitoring: Request/response details and timing
- Asset Loading: Track asset loading performance
- Offline Support: Caching of events when offline
See SDK Reference for complete documentation.
Getting Started #
Installation #
Add the following dependencies to your pubspec.yaml:
dependencies:
faro: ^<latest_version>
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
}
// ... other configurations
),
appRunner: () => runApp(
FaroAssetTracking(
child: FaroUserInteractionWidget(child: MyApp())
)
),
);
Documentation #
- SDK Reference — Getting started, features, configuration, and API usage
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 detailed information on how to get started, submit issues, and contribute code.
For questions about the project or need help getting started, feel free to open an issue or reach out to our maintainers.
License #
Grafana Faro Flutter SDK is distributed under the terms of the Apache License 2.0.