Skip to content
14 changes: 14 additions & 0 deletions platform-includes/configuration/allow-urls/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
Future<void> main() async {
await SentryFlutter.init(
(options) {
options.dsn = '___PUBLIC_DSN___';
options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"];
},
appRunner: initApp, // Init your App.
);
}
```
12 changes: 12 additions & 0 deletions platform-includes/configuration/before-send-hint/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
return hint is MyHint ? null : event;
}

Future<void> main() async {
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
}
```
14 changes: 14 additions & 0 deletions platform-includes/configuration/before-send/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
// Modify the event here:
event = event.copyWith(serverName: null); // Don't send server names.
return event;
}

Future<void> main() async {
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
}
```
14 changes: 14 additions & 0 deletions platform-includes/configuration/deny-urls/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

Future<void> main() async {
await SentryFlutter.init(
(options) {
options.dsn = '___PUBLIC_DSN___';
options.denyUrls = ["^.*ends-with-this\$", "denied-url"];
},
appRunner: initApp, // Init your App.
);
}
```
9 changes: 9 additions & 0 deletions platform-includes/configuration/sample-rate/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
Future<void> main() async {
// Capture only 25% of events
await SentryFlutter.init((options) => options.sampleRate = 0.25);
}
```
15 changes: 15 additions & 0 deletions platform-includes/set-fingerprint/basic/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
if (event.throwable is DatabaseException) {
event = event.copyWith(fingerprint: ['database-connection-error']);
}
return event;
}

Future<void> main() async {
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
}
```
15 changes: 15 additions & 0 deletions platform-includes/set-fingerprint/database-connection/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
if (event.throwable is DatabaseException) {
event = event.copyWith(fingerprint: ['database-connection-error']);
}
return event;
}

Future<void> main() async {
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
}
```
27 changes: 27 additions & 0 deletions platform-includes/set-fingerprint/rpc/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

class MyRpcException implements Exception {
final String function;
final int httpStatusCode;

MyRpcException(this.function, this.httpStatusCode);
}

FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
if (event.throwable is MyRpcException) {
final exception = event.throwable as MyRpcException;
event = event.copyWith(fingerprint: [
'{{ default }}',
exception.function,
exception.httpStatusCode.toString(),
]);
}
return event;
}

Future<void> main() async {
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
}
```
29 changes: 29 additions & 0 deletions platform-includes/user-feedback/sdk-api-example/flutter.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
```dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

// Option 1: Retrieving SentryId from beforeSend
SentryId sentryId = SentryId.empty();

await SentryFlutter.init((options) {
options.beforeSend = (event, hint) async {
sentryId = event.eventId;
return event;
};
});

// Option 2: Retrieving SentryId from the method capturing the event
SentryId sentryId = Sentry.captureMessage("My message");

// Option 3: Retrieving SentryId from the beforeSend callback
SentryId sentryId = Sentry.lastEventId;

final userFeedback = SentryUserFeedback(
eventId: sentryId,
comments: 'Hello World!',
email: '[email protected]',
name: 'John Doe',
);

Sentry.captureUserFeedback(userFeedback);
```
Loading