blob: 26804b0461069a71bb6af90e5f1114e19f2eb3af [file] [log] [blame] [view]
# telemetry
A library to facilitate reporting analytics and crash reports.
## Analytics
This library is designed to allow all Dart SDK tools to easily send analytics
information and crash reports. The tools share a common setting to configure
sending analytics data. To use this library for a specific tool:
```
import 'package:telemetry/telemetry.dart';
import 'package:usage/usage.dart';
main() async {
final String myAppTrackingID = ...;
final String myAppName = ...;
Analytics analytics = createAnalyticsInstance(myAppTrackingID, myAppName);
...
analytics.sendScreenView('home');
...
await analytics.waitForLastPing();
}
```
The analytics object reads from the correct user configuration file
automatically without any additional configuration. Analytics will not be sent
if the user has opted-out.
## Crash reporting
To use the crash reporting functionality, import `crash_reporting.dart`, and
create a new `CrashReportSender` instance:
```dart
import 'package:telemetry/crash_reporting.dart';
main() {
Analytics analytics = ...;
CrashReportSender sender = new CrashReportSender(analytics);
try {
...
} catch (e, st) {
sender.sendReport(e, st);
}
}
```
Crash reports will only be sent if the cooresponding [Analytics] object is
configured to send analytics.