faro 0.3.7
faro: ^0.3.7 copied to clipboard
Grafana Faro SDK for Flutter applications - Monitor your Flutter app with ease.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
0.3.7 - 2025-06-10 #
Added #
- Enhanced HTTP tracing attributes: HTTP spans now include additional attributes for better observability
- Added
http.request_sizeattribute with request content length - Added
http.response_sizeattribute with response content length - Added
http.content_typeattribute with response content type - Provides more comprehensive HTTP request/response metadata for monitoring
- Added
- Session attributes in OpenTelemetry traces: Tracer resources now automatically include session attributes
- Session metadata is propagated to all OpenTelemetry spans
- Enables correlation of traces with user sessions and custom session data
- Supports dynamic session attribute values (strings, numbers, booleans, objects)
- Added comprehensive test coverage for
DartOtelTracerResourcesFactory
- Human-readable timestamps for Android crashes: Added readable timestamp formatting for crash reports
- Crash context now includes both original Unix epoch timestamp and human-readable ISO 8601 format
- Added
timestamp_readable_utcfield alongside existingtimestampfield - Timestamps converted to UTC ISO 8601 format (e.g., "2025-06-04T23:49:20.296Z")
- Includes new
TimestampExtensionutility for reusable timestamp conversion - Improves debugging experience with easily interpretable crash timestamps
- Resolves issue #53: Add human readable timestamp for Android crashes
- Trace event duration: Added duration information to trace events
- Events now include
duration_nsattribute with span duration in nanoseconds - Duration calculated as
endTime - startTimewhen both timestamps are valid - Improves observability by providing timing information for traced operations
- Resolves issue #23: Add duration to Faro events
- Events now include
Fixed #
- Span event naming: Fixed incorrect event names for tracing spans
- HTTP spans now correctly use
faro.tracing.fetchevent name - Non-HTTP spans use
span.{name}format for better event categorization - Added logic to detect HTTP spans based on
http.schemeorhttp.methodattributes - Resolves issue #41: Incorrect span event names being sent to collector
- HTTP spans now correctly use
- Event data URL formatting: Fixed inconsistent formatting of event_data_url parameter
- Attribute values are now properly sanitized to remove surrounding quotes
- Ensures consistent formatting across all event attributes
- Resolves issue #25: Inconsistent event_data_url formatting
0.3.6 - 2025-06-05 #
Added #
- Data Collection Persistence: The
enableDataCollectionsetting now persists across app restarts- Automatically saves the data collection preference to device storage using SharedPreferences
- Defaults to enabled on first app launch
- Fire-and-forget persistence - no need to await setting changes
- Maintains full backward compatibility with existing API
- Resolves issue #62: "Persist faro.enableDataCollection"
- GitHub issue templates for bug reports and feature requests
- Pull request template for standardized contributions
- Code of Conduct (Contributor Covenant v1.4)
- Comprehensive Contributing Guidelines with setup instructions and development workflow
- Maintainers documentation listing current project maintainers
Changed #
- Major documentation overhaul:
- Enhanced README with improved badges, clearer setup instructions, and better project description
- Completely rewritten Features documentation with detailed explanations and code examples
- Improved Getting Started guide with step-by-step setup for both Grafana Cloud and self-hosted options
- Updated example app to demonstrate latest SDK features and best practices
Improved #
- Project governance and community guidelines establishment
- Developer experience with better onboarding documentation
- Code contribution workflow with standardized templates and processes
Fixed #
- Critical NullPointerException in Android frame monitoring: Fixed crash when frame monitoring callbacks execute after Flutter engine detachment
- Added proper cleanup in
stopFrameMonitoring()to remove Choreographer callbacks - Added null checks in
handleFrameDrop(),handleSlowFrameDrop(), andhandleRefreshRate()methods - Added safety guards to prevent frame processing when monitoring is stopped
- Prevents crashes when app goes to background or during configuration changes
- Added proper cleanup in
0.3.5 - 2025-05-28 #
Added #
- Support for custom HTTP headers in
FaroConfigvia thecollectorHeadersfield- Allows users to specify headers that will be included in all requests to the collector endpoint
- Useful for deployments that require specific headers for routing or authentication
0.3.4 - 2025-05-22 #
0.3.3 #
Changed #
- Updated intl dependency to newer version to be compatible with latest flutter version
0.3.0 #
Changed #
- Restructure where faro code is located. Moved from
packages/faroto root. Since we only have one package in this repo for now
0.2.2 #
0.2.0 #
Changed #
- Renamed package from
rum_sdktofaro - Renamed main API class from
RumFluttertoFaro - Renamed all related classes with "Rum" prefix to "Faro" prefix
- Updated all import statements to use the new package name
- Updated documentation with new package name and examples
0.0.1 #
Added #
The following Key Metrics of Flutter Applications are Added in the Alpha Release.
- Mobile App Performance
- cpu usage
- memory usage
- cold/warm start
- ANR ( android)
- Native slow/frozen frames
- Flutter Errors & Exceptions
- Events
- session start
- route changes
- user interaction
- Http network info
- Load Duration , method , resource/type , request/response size
- Rum Asset Bundle
- Asset Size, Load time
- Custom events, logs, measurement, error
- Offline Caching of Events