From f59ee0bac352b2dc53f27491fa6e734e99623a6f Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 18 Nov 2024 16:42:32 +0100 Subject: [PATCH 01/13] add flutter.mdx in configuration/sample-rate --- platform-includes/configuration/sample-rate/flutter.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 platform-includes/configuration/sample-rate/flutter.mdx diff --git a/platform-includes/configuration/sample-rate/flutter.mdx b/platform-includes/configuration/sample-rate/flutter.mdx new file mode 100644 index 0000000000000..2a840fe5d1315 --- /dev/null +++ b/platform-includes/configuration/sample-rate/flutter.mdx @@ -0,0 +1,9 @@ +```dart +import 'package:flutter/widgets.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + +Future main() async { + // Capture only 25% of events + await SentryFlutter.init((options) => options.sampleRate = 0.25); +} +``` From 8c668519bace11c56bdcc1777b7405f57c32fc7c Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 18 Nov 2024 17:05:27 +0100 Subject: [PATCH 02/13] add code samples with SentryFlutter.init instead of Sentry.init --- .../configuration/allow-urls/flutter.mdx | 14 +++++++++ .../before-send-hint/flutter.mdx | 12 ++++++++ .../configuration/before-send/flutter.mdx | 14 +++++++++ .../configuration/deny-urls/flutter.mdx | 14 +++++++++ .../set-fingerprint/basic/flutter.mdx | 15 ++++++++++ .../database-connection/flutter.mdx | 15 ++++++++++ .../set-fingerprint/rpc/flutter.mdx | 27 +++++++++++++++++ .../user-feedback/sdk-api-example/flutter.mdx | 29 +++++++++++++++++++ 8 files changed, 140 insertions(+) create mode 100644 platform-includes/configuration/allow-urls/flutter.mdx create mode 100644 platform-includes/configuration/before-send-hint/flutter.mdx create mode 100644 platform-includes/configuration/before-send/flutter.mdx create mode 100644 platform-includes/configuration/deny-urls/flutter.mdx create mode 100644 platform-includes/set-fingerprint/basic/flutter.mdx create mode 100644 platform-includes/set-fingerprint/database-connection/flutter.mdx create mode 100644 platform-includes/set-fingerprint/rpc/flutter.mdx create mode 100644 platform-includes/user-feedback/sdk-api-example/flutter.mdx diff --git a/platform-includes/configuration/allow-urls/flutter.mdx b/platform-includes/configuration/allow-urls/flutter.mdx new file mode 100644 index 0000000000000..c86079a9eafdf --- /dev/null +++ b/platform-includes/configuration/allow-urls/flutter.mdx @@ -0,0 +1,14 @@ +```dart +import 'package:flutter/widgets.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + +Future main() async { + await SentryFlutter.init( + (options) { + options.dsn = '___PUBLIC_DSN___'; + options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; + }, + appRunner: initApp, // Init your App. + ); +} +``` diff --git a/platform-includes/configuration/before-send-hint/flutter.mdx b/platform-includes/configuration/before-send-hint/flutter.mdx new file mode 100644 index 0000000000000..8c1c5bb178ca8 --- /dev/null +++ b/platform-includes/configuration/before-send-hint/flutter.mdx @@ -0,0 +1,12 @@ +```dart +import 'package:flutter/widgets.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + +FutureOr beforeSend(SentryEvent event, Hint hint) async { + return hint is MyHint ? null : event; +} + +Future main() async { + await SentryFlutter.init((options) => options.beforeSend = beforeSend); +} +``` diff --git a/platform-includes/configuration/before-send/flutter.mdx b/platform-includes/configuration/before-send/flutter.mdx new file mode 100644 index 0000000000000..e4b1cf7a13f16 --- /dev/null +++ b/platform-includes/configuration/before-send/flutter.mdx @@ -0,0 +1,14 @@ +```dart +import 'package:flutter/widgets.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + +FutureOr beforeSend(SentryEvent event, Hint hint) async { + // Modify the event here: + event = event.copyWith(serverName: null); // Don't send server names. + return event; +} + +Future main() async { + await SentryFlutter.init((options) => options.beforeSend = beforeSend); +} +``` diff --git a/platform-includes/configuration/deny-urls/flutter.mdx b/platform-includes/configuration/deny-urls/flutter.mdx new file mode 100644 index 0000000000000..ca9847f8421ec --- /dev/null +++ b/platform-includes/configuration/deny-urls/flutter.mdx @@ -0,0 +1,14 @@ +```dart +import 'package:flutter/widgets.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + +Future main() async { + await SentryFlutter.init( + (options) { + options.dsn = '___PUBLIC_DSN___'; + options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; + }, + appRunner: initApp, // Init your App. + ); +} +``` diff --git a/platform-includes/set-fingerprint/basic/flutter.mdx b/platform-includes/set-fingerprint/basic/flutter.mdx new file mode 100644 index 0000000000000..fbb3acdde9816 --- /dev/null +++ b/platform-includes/set-fingerprint/basic/flutter.mdx @@ -0,0 +1,15 @@ +```dart +import 'package:flutter/widgets.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + +FutureOr beforeSend(SentryEvent event, Hint hint) async { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; +} + +Future main() async { + await SentryFlutter.init((options) => options.beforeSend = beforeSend); +} +``` diff --git a/platform-includes/set-fingerprint/database-connection/flutter.mdx b/platform-includes/set-fingerprint/database-connection/flutter.mdx new file mode 100644 index 0000000000000..fbb3acdde9816 --- /dev/null +++ b/platform-includes/set-fingerprint/database-connection/flutter.mdx @@ -0,0 +1,15 @@ +```dart +import 'package:flutter/widgets.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + +FutureOr beforeSend(SentryEvent event, Hint hint) async { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; +} + +Future main() async { + await SentryFlutter.init((options) => options.beforeSend = beforeSend); +} +``` diff --git a/platform-includes/set-fingerprint/rpc/flutter.mdx b/platform-includes/set-fingerprint/rpc/flutter.mdx new file mode 100644 index 0000000000000..d7550d1eaa6ed --- /dev/null +++ b/platform-includes/set-fingerprint/rpc/flutter.mdx @@ -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 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 main() async { + await SentryFlutter.init((options) => options.beforeSend = beforeSend); +} +``` diff --git a/platform-includes/user-feedback/sdk-api-example/flutter.mdx b/platform-includes/user-feedback/sdk-api-example/flutter.mdx new file mode 100644 index 0000000000000..b4eae1638ac4b --- /dev/null +++ b/platform-includes/user-feedback/sdk-api-example/flutter.mdx @@ -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: 'foo@bar.org', + name: 'John Doe', +); + +Sentry.captureUserFeedback(userFeedback); +``` From 96288a548110c3949af7e43fd1066b11f0d60c43 Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 18 Nov 2024 17:48:09 +0100 Subject: [PATCH 03/13] implement feedback --- .../configuration/allow-urls/flutter.mdx | 11 ++--------- .../before-send-hint/flutter.mdx | 7 +------ .../configuration/before-send/flutter.mdx | 7 +------ .../configuration/deny-urls/flutter.mdx | 19 ++++++------------- .../set-fingerprint/basic/flutter.mdx | 7 +------ .../database-connection/flutter.mdx | 7 +------ .../set-fingerprint/rpc/flutter.mdx | 7 +------ .../user-feedback/sdk-api-example/flutter.mdx | 3 --- 8 files changed, 13 insertions(+), 55 deletions(-) diff --git a/platform-includes/configuration/allow-urls/flutter.mdx b/platform-includes/configuration/allow-urls/flutter.mdx index c86079a9eafdf..1a62739b125e4 100644 --- a/platform-includes/configuration/allow-urls/flutter.mdx +++ b/platform-includes/configuration/allow-urls/flutter.mdx @@ -1,14 +1,7 @@ -```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - -Future main() async { - await SentryFlutter.init( +```dart {3} +await SentryFlutter.init( (options) { - options.dsn = '___PUBLIC_DSN___'; options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; }, - appRunner: initApp, // Init your App. ); -} ``` diff --git a/platform-includes/configuration/before-send-hint/flutter.mdx b/platform-includes/configuration/before-send-hint/flutter.mdx index 8c1c5bb178ca8..c1c3c95e4c1ac 100644 --- a/platform-includes/configuration/before-send-hint/flutter.mdx +++ b/platform-includes/configuration/before-send-hint/flutter.mdx @@ -1,12 +1,7 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - FutureOr beforeSend(SentryEvent event, Hint hint) async { return hint is MyHint ? null : event; } -Future main() async { - await SentryFlutter.init((options) => options.beforeSend = beforeSend); -} +await SentryFlutter.init((options) => options.beforeSend = beforeSend); ``` diff --git a/platform-includes/configuration/before-send/flutter.mdx b/platform-includes/configuration/before-send/flutter.mdx index e4b1cf7a13f16..58b9bc662b3a4 100644 --- a/platform-includes/configuration/before-send/flutter.mdx +++ b/platform-includes/configuration/before-send/flutter.mdx @@ -1,14 +1,9 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - FutureOr beforeSend(SentryEvent event, Hint hint) async { // Modify the event here: event = event.copyWith(serverName: null); // Don't send server names. return event; } -Future main() async { - await SentryFlutter.init((options) => options.beforeSend = beforeSend); -} +await SentryFlutter.init((options) => options.beforeSend = beforeSend); ``` diff --git a/platform-includes/configuration/deny-urls/flutter.mdx b/platform-includes/configuration/deny-urls/flutter.mdx index ca9847f8421ec..a7180a32a8bcf 100644 --- a/platform-includes/configuration/deny-urls/flutter.mdx +++ b/platform-includes/configuration/deny-urls/flutter.mdx @@ -1,14 +1,7 @@ -```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - -Future main() async { - await SentryFlutter.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; - }, - appRunner: initApp, // Init your App. - ); -} +```dart {3} +await SentryFlutter.init( + (options) { + options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; + }, +); ``` diff --git a/platform-includes/set-fingerprint/basic/flutter.mdx b/platform-includes/set-fingerprint/basic/flutter.mdx index fbb3acdde9816..de45941eac753 100644 --- a/platform-includes/set-fingerprint/basic/flutter.mdx +++ b/platform-includes/set-fingerprint/basic/flutter.mdx @@ -1,7 +1,4 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - FutureOr beforeSend(SentryEvent event, Hint hint) async { if (event.throwable is DatabaseException) { event = event.copyWith(fingerprint: ['database-connection-error']); @@ -9,7 +6,5 @@ FutureOr beforeSend(SentryEvent event, Hint hint) async { return event; } -Future main() async { - await SentryFlutter.init((options) => options.beforeSend = beforeSend); -} +await SentryFlutter.init((options) => options.beforeSend = beforeSend); ``` diff --git a/platform-includes/set-fingerprint/database-connection/flutter.mdx b/platform-includes/set-fingerprint/database-connection/flutter.mdx index fbb3acdde9816..de45941eac753 100644 --- a/platform-includes/set-fingerprint/database-connection/flutter.mdx +++ b/platform-includes/set-fingerprint/database-connection/flutter.mdx @@ -1,7 +1,4 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - FutureOr beforeSend(SentryEvent event, Hint hint) async { if (event.throwable is DatabaseException) { event = event.copyWith(fingerprint: ['database-connection-error']); @@ -9,7 +6,5 @@ FutureOr beforeSend(SentryEvent event, Hint hint) async { return event; } -Future main() async { - await SentryFlutter.init((options) => options.beforeSend = beforeSend); -} +await SentryFlutter.init((options) => options.beforeSend = beforeSend); ``` diff --git a/platform-includes/set-fingerprint/rpc/flutter.mdx b/platform-includes/set-fingerprint/rpc/flutter.mdx index d7550d1eaa6ed..742055c21916d 100644 --- a/platform-includes/set-fingerprint/rpc/flutter.mdx +++ b/platform-includes/set-fingerprint/rpc/flutter.mdx @@ -1,7 +1,4 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - class MyRpcException implements Exception { final String function; final int httpStatusCode; @@ -21,7 +18,5 @@ FutureOr beforeSend(SentryEvent event, Hint hint) async { return event; } -Future main() async { - await SentryFlutter.init((options) => options.beforeSend = beforeSend); -} +await SentryFlutter.init((options) => options.beforeSend = beforeSend); ``` diff --git a/platform-includes/user-feedback/sdk-api-example/flutter.mdx b/platform-includes/user-feedback/sdk-api-example/flutter.mdx index b4eae1638ac4b..8c98d5fb7990f 100644 --- a/platform-includes/user-feedback/sdk-api-example/flutter.mdx +++ b/platform-includes/user-feedback/sdk-api-example/flutter.mdx @@ -1,7 +1,4 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - // Option 1: Retrieving SentryId from beforeSend SentryId sentryId = SentryId.empty(); From 42595d06939d6a730330c56733908a1dff86d483 Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Tue, 19 Nov 2024 16:44:22 +0100 Subject: [PATCH 04/13] add missing sample, format samples --- .../configuration/allow-urls/flutter.mdx | 8 ++++---- .../before-send-fingerprint/flutter.mdx | 14 +++++++++++++ .../before-send-hint/flutter.mdx | 8 ++++++-- .../configuration/before-send/flutter.mdx | 8 ++++++-- .../attach-viewhierarchy/flutter.mdx | 20 +++++++------------ .../breadcrumbs/before-breadcrumb/flutter.mdx | 11 ++++++++++ 6 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 platform-includes/configuration/before-send-fingerprint/flutter.mdx create mode 100644 platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx diff --git a/platform-includes/configuration/allow-urls/flutter.mdx b/platform-includes/configuration/allow-urls/flutter.mdx index 1a62739b125e4..4b6d746a93a51 100644 --- a/platform-includes/configuration/allow-urls/flutter.mdx +++ b/platform-includes/configuration/allow-urls/flutter.mdx @@ -1,7 +1,7 @@ ```dart {3} await SentryFlutter.init( - (options) { - options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; - }, - ); + (options) { + options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; + }, +); ``` diff --git a/platform-includes/configuration/before-send-fingerprint/flutter.mdx b/platform-includes/configuration/before-send-fingerprint/flutter.mdx new file mode 100644 index 0000000000000..3563e34ba30f4 --- /dev/null +++ b/platform-includes/configuration/before-send-fingerprint/flutter.mdx @@ -0,0 +1,14 @@ +```dart {10} +FutureOr beforeSend(SentryEvent event, Hint hint) async { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; +} + +await Sentry.init( + (options) { + options.beforeSend = beforeSend; + }, +); +``` diff --git a/platform-includes/configuration/before-send-hint/flutter.mdx b/platform-includes/configuration/before-send-hint/flutter.mdx index c1c3c95e4c1ac..8110f87499e80 100644 --- a/platform-includes/configuration/before-send-hint/flutter.mdx +++ b/platform-includes/configuration/before-send-hint/flutter.mdx @@ -1,7 +1,11 @@ -```dart +```dart {7} FutureOr beforeSend(SentryEvent event, Hint hint) async { return hint is MyHint ? null : event; } -await SentryFlutter.init((options) => options.beforeSend = beforeSend); +await SentryFlutter.init( + (options) { + options.beforeSend = beforeSend; + }, +); ``` diff --git a/platform-includes/configuration/before-send/flutter.mdx b/platform-includes/configuration/before-send/flutter.mdx index 58b9bc662b3a4..dbb0f72c71479 100644 --- a/platform-includes/configuration/before-send/flutter.mdx +++ b/platform-includes/configuration/before-send/flutter.mdx @@ -1,9 +1,13 @@ -```dart +```dart {9} FutureOr beforeSend(SentryEvent event, Hint hint) async { // Modify the event here: event = event.copyWith(serverName: null); // Don't send server names. return event; } -await SentryFlutter.init((options) => options.beforeSend = beforeSend); +await SentryFlutter.init( + (options) { + options.beforeSend = beforeSend; + }, +); ``` diff --git a/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx b/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx index 260f182eb14bb..7f1362fa9f9c6 100644 --- a/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx +++ b/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx @@ -1,14 +1,8 @@ -```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - -Future main() async { - await SentryFlutter.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - options.attachViewHierarchy = true; - }, - appRunner: () => runApp(MyApp()), - ); -} +```dart {3} +await SentryFlutter.init( + (options) { + options.attachViewHierarchy = true; + }, + appRunner: () => runApp(MyApp()), +); ``` diff --git a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx new file mode 100644 index 0000000000000..8812bb72d5084 --- /dev/null +++ b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx @@ -0,0 +1,11 @@ +```dart {7} +Breadcrumb? beforeBreadcrumb(Breadcrumb? breadcrumb, Hint hint) { + return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; +} + +await SentryFlutter.init( + (options) { + options.beforeBreadcrumb = beforeBreadcrumb; + }, +); +``` From 720c58af97f987719bd1931b4894107c6ed33e5e Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 25 Nov 2024 11:10:53 +0100 Subject: [PATCH 05/13] Make dart/flutter samples more concise, Also update dart counterparts --- .../configuration/allow-urls/dart.mdx | 18 ++++------- .../before-breadcrumb-hint/dart.mdx | 18 +++++------ .../before-send-fingerprint/dart.mdx | 24 +++++++-------- .../before-send-fingerprint/flutter.mdx | 18 +++++------ .../configuration/before-send-hint/dart.mdx | 18 +++++------ .../before-send-hint/flutter.mdx | 10 +++---- .../configuration/before-send/dart.mdx | 20 +++++-------- .../configuration/before-send/flutter.mdx | 12 +++----- .../configuration/deny-urls/dart.mdx | 18 ++++------- .../configuration/sample-rate/dart.mdx | 8 ++--- .../configuration/sample-rate/flutter.mdx | 9 ++---- .../attach-viewhierarchy/flutter.mdx | 1 - .../breadcrumbs/before-breadcrumb/dart.mdx | 18 +++++------ .../breadcrumbs/before-breadcrumb/flutter.mdx | 10 +++---- .../set-fingerprint/basic/dart.mdx | 24 +++++++-------- .../set-fingerprint/basic/flutter.mdx | 20 +++++++------ .../database-connection/dart.mdx | 24 +++++++-------- .../database-connection/flutter.mdx | 20 +++++++------ .../set-fingerprint/rpc/dart.mdx | 30 ++++++++----------- .../set-fingerprint/rpc/flutter.mdx | 26 ++++++++-------- .../user-feedback/sdk-api-example/dart.mdx | 4 +-- .../user-feedback/sdk-api-example/flutter.mdx | 2 +- 22 files changed, 151 insertions(+), 201 deletions(-) diff --git a/platform-includes/configuration/allow-urls/dart.mdx b/platform-includes/configuration/allow-urls/dart.mdx index 62d3d51c1eb82..ada9f0431cc39 100644 --- a/platform-includes/configuration/allow-urls/dart.mdx +++ b/platform-includes/configuration/allow-urls/dart.mdx @@ -1,13 +1,7 @@ -```dart -import 'package:sentry/sentry.dart'; - -Future main() async { - await Sentry.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; - }, - appRunner: initApp, // Init your App. - ); -} +```dart {3} +await Sentry.init( + (options) { + options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; + }, +); ``` diff --git a/platform-includes/configuration/before-breadcrumb-hint/dart.mdx b/platform-includes/configuration/before-breadcrumb-hint/dart.mdx index 32ef5e78584f0..c2100c8e55849 100644 --- a/platform-includes/configuration/before-breadcrumb-hint/dart.mdx +++ b/platform-includes/configuration/before-breadcrumb-hint/dart.mdx @@ -1,11 +1,9 @@ -```dart -import 'package:sentry/sentry.dart'; - -Breadcrumb? beforeBreadcrumb(Breadcrumb? breadcrumb, Hint hint) { - return hint is MyHint ? null : crumb; -} - -Future main() async { - await Sentry.init((options) => options.beforeBreadcrumb = beforeBreadcrumb); -} +```dart {4} +await Sentry.init( + (options) { + options.beforeBreadcrumb = (breadcrumb, hint) { + return hint is MyHint ? null : crumb; + }; + }, +); ``` diff --git a/platform-includes/configuration/before-send-fingerprint/dart.mdx b/platform-includes/configuration/before-send-fingerprint/dart.mdx index 426cd8c042480..1d8a1fffcbe49 100644 --- a/platform-includes/configuration/before-send-fingerprint/dart.mdx +++ b/platform-includes/configuration/before-send-fingerprint/dart.mdx @@ -1,14 +1,12 @@ -```dart -import 'package:sentry/sentry.dart'; - -FutureOr beforeSend(SentryEvent event, Hint hint) async { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; -} - -Future main() async { - await Sentry.init((options) => options.beforeSend = beforeSend); -} +```dart {4-7} +await Sentry.init( + (options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; + }, +); ``` diff --git a/platform-includes/configuration/before-send-fingerprint/flutter.mdx b/platform-includes/configuration/before-send-fingerprint/flutter.mdx index 3563e34ba30f4..4cd5fba9e5f4e 100644 --- a/platform-includes/configuration/before-send-fingerprint/flutter.mdx +++ b/platform-includes/configuration/before-send-fingerprint/flutter.mdx @@ -1,14 +1,12 @@ -```dart {10} -FutureOr beforeSend(SentryEvent event, Hint hint) async { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; -} - -await Sentry.init( +```dart {4-7} +await SentryFlutter.init( (options) { - options.beforeSend = beforeSend; + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; }, ); ``` diff --git a/platform-includes/configuration/before-send-hint/dart.mdx b/platform-includes/configuration/before-send-hint/dart.mdx index 0f17d38c06042..7aa919b533ba6 100644 --- a/platform-includes/configuration/before-send-hint/dart.mdx +++ b/platform-includes/configuration/before-send-hint/dart.mdx @@ -1,11 +1,9 @@ -```dart -import 'package:sentry/sentry.dart'; - -FutureOr beforeSend(SentryEvent event, Hint hint) async { - return hint is MyHint ? null : event; -} - -Future main() async { - await Sentry.init((options) => options.beforeSend = beforeSend); -} +```dart {4} +await Sentry.init( + (options) { + options.beforeSend = (event, hint) { + return hint is MyHint ? null : event; + }; + }, +); ``` diff --git a/platform-includes/configuration/before-send-hint/flutter.mdx b/platform-includes/configuration/before-send-hint/flutter.mdx index 8110f87499e80..6441890985f6f 100644 --- a/platform-includes/configuration/before-send-hint/flutter.mdx +++ b/platform-includes/configuration/before-send-hint/flutter.mdx @@ -1,11 +1,9 @@ -```dart {7} -FutureOr beforeSend(SentryEvent event, Hint hint) async { - return hint is MyHint ? null : event; -} - +```dart {4} await SentryFlutter.init( (options) { - options.beforeSend = beforeSend; + options.beforeSend = (event, hint) { + return hint is MyHint ? null : event; + }; }, ); ``` diff --git a/platform-includes/configuration/before-send/dart.mdx b/platform-includes/configuration/before-send/dart.mdx index 470996be3120a..966b41598e86a 100644 --- a/platform-includes/configuration/before-send/dart.mdx +++ b/platform-includes/configuration/before-send/dart.mdx @@ -1,13 +1,9 @@ -```dart -import 'package:sentry/sentry.dart'; - -FutureOr beforeSend(SentryEvent event, Hint hint) async { - // Modify the event here: - event = event.copyWith(serverName: null); // Don't send server names. - return event; -} - -Future main() async { - await Sentry.init((options) => options.beforeSend = beforeSend); -} +```dart {4} +await Sentry.init( + (options) { + options.beforeSend = (event, hint) { + return event.copyWith(serverName: null); // Don't send server names. + }; + }, +); ``` diff --git a/platform-includes/configuration/before-send/flutter.mdx b/platform-includes/configuration/before-send/flutter.mdx index dbb0f72c71479..314d649e53b6c 100644 --- a/platform-includes/configuration/before-send/flutter.mdx +++ b/platform-includes/configuration/before-send/flutter.mdx @@ -1,13 +1,9 @@ -```dart {9} -FutureOr beforeSend(SentryEvent event, Hint hint) async { - // Modify the event here: - event = event.copyWith(serverName: null); // Don't send server names. - return event; -} - +```dart {4} await SentryFlutter.init( (options) { - options.beforeSend = beforeSend; + options.beforeSend = (event, hint) { + return event.copyWith(serverName: null); // Don't send server names. + }; }, ); ``` diff --git a/platform-includes/configuration/deny-urls/dart.mdx b/platform-includes/configuration/deny-urls/dart.mdx index a8cfae64755b8..6ffe236ea150c 100644 --- a/platform-includes/configuration/deny-urls/dart.mdx +++ b/platform-includes/configuration/deny-urls/dart.mdx @@ -1,13 +1,7 @@ -```dart -import 'package:sentry/sentry.dart'; - -Future main() async { - await Sentry.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; - }, - appRunner: initApp, // Init your App. - ); -} +```dart {3} +await Sentry.init( + (options) { + options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; + }, +); ``` diff --git a/platform-includes/configuration/sample-rate/dart.mdx b/platform-includes/configuration/sample-rate/dart.mdx index 20dc2bf4c504d..cbd58598adafe 100644 --- a/platform-includes/configuration/sample-rate/dart.mdx +++ b/platform-includes/configuration/sample-rate/dart.mdx @@ -1,8 +1,4 @@ ```dart -import 'package:sentry/sentry.dart'; - -Future main() async { - // Capture only 25% of events - await Sentry.init((options) => options.sampleRate = 0.25); -} +// Capture only 25% of events +await Sentry.init((options) => options.sampleRate = 0.25); ``` diff --git a/platform-includes/configuration/sample-rate/flutter.mdx b/platform-includes/configuration/sample-rate/flutter.mdx index 2a840fe5d1315..30bf444a82d14 100644 --- a/platform-includes/configuration/sample-rate/flutter.mdx +++ b/platform-includes/configuration/sample-rate/flutter.mdx @@ -1,9 +1,4 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - -Future main() async { - // Capture only 25% of events - await SentryFlutter.init((options) => options.sampleRate = 0.25); -} +// Capture only 25% of events +await SentryFlutter.init((options) => options.sampleRate = 0.25); ``` diff --git a/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx b/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx index 7f1362fa9f9c6..24138395e978e 100644 --- a/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx +++ b/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx @@ -3,6 +3,5 @@ await SentryFlutter.init( (options) { options.attachViewHierarchy = true; }, - appRunner: () => runApp(MyApp()), ); ``` diff --git a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx index ae7ea313ce458..3e47594fa974c 100644 --- a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx +++ b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx @@ -1,11 +1,9 @@ -```dart -import 'package:sentry/sentry.dart'; - -Breadcrumb? beforeBreadcrumb(Breadcrumb? breadcrumb, Hint hint) { - return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; -} - -Future main() async { - await Sentry.init((options) => options.beforeBreadcrumb = beforeBreadcrumb); -} +```dart {4} +await Sentry.init( + (options) { + options.beforeBreadcrumb = (breadcrumb, hint) { + return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; + }; + }, +); ``` diff --git a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx index 8812bb72d5084..78671edbe62be 100644 --- a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx +++ b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx @@ -1,11 +1,9 @@ -```dart {7} -Breadcrumb? beforeBreadcrumb(Breadcrumb? breadcrumb, Hint hint) { - return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; -} - +```dart {4} await SentryFlutter.init( (options) { - options.beforeBreadcrumb = beforeBreadcrumb; + options.beforeBreadcrumb = (breadcrumb, hint) { + return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; + }; }, ); ``` diff --git a/platform-includes/set-fingerprint/basic/dart.mdx b/platform-includes/set-fingerprint/basic/dart.mdx index 426cd8c042480..4cd5fba9e5f4e 100644 --- a/platform-includes/set-fingerprint/basic/dart.mdx +++ b/platform-includes/set-fingerprint/basic/dart.mdx @@ -1,14 +1,12 @@ -```dart -import 'package:sentry/sentry.dart'; - -FutureOr beforeSend(SentryEvent event, Hint hint) async { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; -} - -Future main() async { - await Sentry.init((options) => options.beforeSend = beforeSend); -} +```dart {4-7} +await SentryFlutter.init( + (options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; + }, +); ``` diff --git a/platform-includes/set-fingerprint/basic/flutter.mdx b/platform-includes/set-fingerprint/basic/flutter.mdx index de45941eac753..4cd5fba9e5f4e 100644 --- a/platform-includes/set-fingerprint/basic/flutter.mdx +++ b/platform-includes/set-fingerprint/basic/flutter.mdx @@ -1,10 +1,12 @@ -```dart -FutureOr beforeSend(SentryEvent event, Hint hint) async { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; -} - -await SentryFlutter.init((options) => options.beforeSend = beforeSend); +```dart {4-7} +await SentryFlutter.init( + (options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; + }, +); ``` diff --git a/platform-includes/set-fingerprint/database-connection/dart.mdx b/platform-includes/set-fingerprint/database-connection/dart.mdx index 426cd8c042480..1d8a1fffcbe49 100644 --- a/platform-includes/set-fingerprint/database-connection/dart.mdx +++ b/platform-includes/set-fingerprint/database-connection/dart.mdx @@ -1,14 +1,12 @@ -```dart -import 'package:sentry/sentry.dart'; - -FutureOr beforeSend(SentryEvent event, Hint hint) async { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; -} - -Future main() async { - await Sentry.init((options) => options.beforeSend = beforeSend); -} +```dart {4-7} +await Sentry.init( + (options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; + }, +); ``` diff --git a/platform-includes/set-fingerprint/database-connection/flutter.mdx b/platform-includes/set-fingerprint/database-connection/flutter.mdx index de45941eac753..4cd5fba9e5f4e 100644 --- a/platform-includes/set-fingerprint/database-connection/flutter.mdx +++ b/platform-includes/set-fingerprint/database-connection/flutter.mdx @@ -1,10 +1,12 @@ -```dart -FutureOr beforeSend(SentryEvent event, Hint hint) async { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; -} - -await SentryFlutter.init((options) => options.beforeSend = beforeSend); +```dart {4-7} +await SentryFlutter.init( + (options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; + }, +); ``` diff --git a/platform-includes/set-fingerprint/rpc/dart.mdx b/platform-includes/set-fingerprint/rpc/dart.mdx index affec0eb261f3..3ef2deb7e56f6 100644 --- a/platform-includes/set-fingerprint/rpc/dart.mdx +++ b/platform-includes/set-fingerprint/rpc/dart.mdx @@ -1,6 +1,4 @@ ```dart -import 'package:sentry/sentry.dart'; - class MyRpcException implements Exception { final String function; final int httpStatusCode; @@ -8,19 +6,17 @@ class MyRpcException implements Exception { MyRpcException(this.function, this.httpStatusCode); } -FutureOr 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 main() async { - await Sentry.init((options) => options.beforeSend = beforeSend); -} +await Sentry.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is MyRpcException) { + final exception = event.throwable as MyRpcException; + event = event.copyWith(fingerprint: [ + '{{ default }}', + exception.function, + exception.httpStatusCode.toString(), + ]); + } + return event; + }; +}; ``` diff --git a/platform-includes/set-fingerprint/rpc/flutter.mdx b/platform-includes/set-fingerprint/rpc/flutter.mdx index 742055c21916d..221534d8bd289 100644 --- a/platform-includes/set-fingerprint/rpc/flutter.mdx +++ b/platform-includes/set-fingerprint/rpc/flutter.mdx @@ -6,17 +6,17 @@ class MyRpcException implements Exception { MyRpcException(this.function, this.httpStatusCode); } -FutureOr 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; -} - -await SentryFlutter.init((options) => options.beforeSend = beforeSend); +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is MyRpcException) { + final exception = event.throwable as MyRpcException; + event = event.copyWith(fingerprint: [ + '{{ default }}', + exception.function, + exception.httpStatusCode.toString(), + ]); + } + return event; + }; +}; ``` diff --git a/platform-includes/user-feedback/sdk-api-example/dart.mdx b/platform-includes/user-feedback/sdk-api-example/dart.mdx index 1dcee4d8d8d15..7a4c58c6f8271 100644 --- a/platform-includes/user-feedback/sdk-api-example/dart.mdx +++ b/platform-includes/user-feedback/sdk-api-example/dart.mdx @@ -1,11 +1,9 @@ ```dart -import 'package:sentry/sentry.dart'; - // Option 1: Retrieving SentryId from beforeSend SentryId sentryId = SentryId.empty(); await Sentry.init((options) { - options.beforeSend = (event, hint) async { + options.beforeSend = (event, hint) { sentryId = event.eventId; return event; }; diff --git a/platform-includes/user-feedback/sdk-api-example/flutter.mdx b/platform-includes/user-feedback/sdk-api-example/flutter.mdx index 8c98d5fb7990f..a3ee42c324e9a 100644 --- a/platform-includes/user-feedback/sdk-api-example/flutter.mdx +++ b/platform-includes/user-feedback/sdk-api-example/flutter.mdx @@ -3,7 +3,7 @@ SentryId sentryId = SentryId.empty(); await SentryFlutter.init((options) { - options.beforeSend = (event, hint) async { + options.beforeSend = (event, hint) { sentryId = event.eventId; return event; }; From 71c58b0b7f706ff124e58a66e2c631dc6d9f4ff4 Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 25 Nov 2024 11:13:23 +0100 Subject: [PATCH 06/13] add missing flutter sample --- .../configuration/before-breadcrumb-hint/flutter.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 platform-includes/configuration/before-breadcrumb-hint/flutter.mdx diff --git a/platform-includes/configuration/before-breadcrumb-hint/flutter.mdx b/platform-includes/configuration/before-breadcrumb-hint/flutter.mdx new file mode 100644 index 0000000000000..15928d2c686dd --- /dev/null +++ b/platform-includes/configuration/before-breadcrumb-hint/flutter.mdx @@ -0,0 +1,9 @@ +```dart {4} +await SentryFlutter.init( + (options) { + options.beforeBreadcrumb = (breadcrumb, hint) { + return hint is MyHint ? null : crumb; + }; + }, +); +``` From 7833bab01f9ef27141346f12f9fd4914beb3e72c Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 25 Nov 2024 11:17:20 +0100 Subject: [PATCH 07/13] fix formatting --- .../set-fingerprint/rpc/dart.mdx | 28 ++++++++++--------- .../user-feedback/sdk-api-example/dart.mdx | 14 ++++++---- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/platform-includes/set-fingerprint/rpc/dart.mdx b/platform-includes/set-fingerprint/rpc/dart.mdx index 3ef2deb7e56f6..459cefec4aad3 100644 --- a/platform-includes/set-fingerprint/rpc/dart.mdx +++ b/platform-includes/set-fingerprint/rpc/dart.mdx @@ -6,17 +6,19 @@ class MyRpcException implements Exception { MyRpcException(this.function, this.httpStatusCode); } -await Sentry.init((options) { - options.beforeSend = (event, hint) { - if (event.throwable is MyRpcException) { - final exception = event.throwable as MyRpcException; - event = event.copyWith(fingerprint: [ - '{{ default }}', - exception.function, - exception.httpStatusCode.toString(), - ]); - } - return event; - }; -}; +await Sentry.init( + (options) { + options.beforeSend = (event, hint) { + if (event.throwable is MyRpcException) { + final exception = event.throwable as MyRpcException; + event = event.copyWith(fingerprint: [ + '{{ default }}', + exception.function, + exception.httpStatusCode.toString(), + ]); + } + return event; + }; + }, +); ``` diff --git a/platform-includes/user-feedback/sdk-api-example/dart.mdx b/platform-includes/user-feedback/sdk-api-example/dart.mdx index 7a4c58c6f8271..a033d6cde1346 100644 --- a/platform-includes/user-feedback/sdk-api-example/dart.mdx +++ b/platform-includes/user-feedback/sdk-api-example/dart.mdx @@ -2,12 +2,14 @@ // Option 1: Retrieving SentryId from beforeSend SentryId sentryId = SentryId.empty(); -await Sentry.init((options) { - options.beforeSend = (event, hint) { - sentryId = event.eventId; - return event; - }; -}); +await Sentry.init( + (options) { + options.beforeSend = (event, hint) { + sentryId = event.eventId; + return event; + }; + }, +); // Option 2: Retrieving SentryId from the method capturing the event SentryId sentryId = Sentry.captureMessage("My message"); From 0a9d6846b5e17372feaa9cd06fd088c28e556492 Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 25 Nov 2024 11:20:22 +0100 Subject: [PATCH 08/13] updat formatting --- .../performance/traces-sample-rate/dart.mdx | 10 +++---- .../set-fingerprint/rpc/flutter.mdx | 28 ++++++++++--------- .../user-feedback/sdk-api-example/flutter.mdx | 14 ++++++---- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/platform-includes/performance/traces-sample-rate/dart.mdx b/platform-includes/performance/traces-sample-rate/dart.mdx index 92ed280abf06c..cce4eea47854c 100644 --- a/platform-includes/performance/traces-sample-rate/dart.mdx +++ b/platform-includes/performance/traces-sample-rate/dart.mdx @@ -1,7 +1,7 @@ ```dart -import 'package:sentry/sentry.dart'; - -Sentry.init((options) => { - options.tracesSampleRate = 0.2, - }); +Sentry.init( + (options) { + options.tracesSampleRate = 0.2; + }, +); ``` diff --git a/platform-includes/set-fingerprint/rpc/flutter.mdx b/platform-includes/set-fingerprint/rpc/flutter.mdx index 221534d8bd289..cf335834acfee 100644 --- a/platform-includes/set-fingerprint/rpc/flutter.mdx +++ b/platform-includes/set-fingerprint/rpc/flutter.mdx @@ -6,17 +6,19 @@ class MyRpcException implements Exception { MyRpcException(this.function, this.httpStatusCode); } -await SentryFlutter.init((options) { - options.beforeSend = (event, hint) { - if (event.throwable is MyRpcException) { - final exception = event.throwable as MyRpcException; - event = event.copyWith(fingerprint: [ - '{{ default }}', - exception.function, - exception.httpStatusCode.toString(), - ]); - } - return event; - }; -}; +await SentryFlutter.init( + (options) { + options.beforeSend = (event, hint) { + if (event.throwable is MyRpcException) { + final exception = event.throwable as MyRpcException; + event = event.copyWith(fingerprint: [ + '{{ default }}', + exception.function, + exception.httpStatusCode.toString(), + ]); + } + return event; + }; + }, +); ``` diff --git a/platform-includes/user-feedback/sdk-api-example/flutter.mdx b/platform-includes/user-feedback/sdk-api-example/flutter.mdx index a3ee42c324e9a..f10dfbc6622e5 100644 --- a/platform-includes/user-feedback/sdk-api-example/flutter.mdx +++ b/platform-includes/user-feedback/sdk-api-example/flutter.mdx @@ -2,12 +2,14 @@ // Option 1: Retrieving SentryId from beforeSend SentryId sentryId = SentryId.empty(); -await SentryFlutter.init((options) { - options.beforeSend = (event, hint) { - sentryId = event.eventId; - return event; - }; -}); +await SentryFlutter.init( + (options) { + options.beforeSend = (event, hint) { + sentryId = event.eventId; + return event; + }; + }, +); // Option 2: Retrieving SentryId from the method capturing the event SentryId sentryId = Sentry.captureMessage("My message"); From f93e8714037f225670928fb03f6afcbb0ec0033f Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Mon, 25 Nov 2024 17:23:01 +0100 Subject: [PATCH 09/13] update dart/flutter code samples --- .../configuration/allow-urls/dart.mdx | 10 ++-- .../configuration/allow-urls/flutter.mdx | 10 ++-- .../before-breadcrumb-hint/dart.mdx | 14 ++--- .../before-breadcrumb-hint/flutter.mdx | 14 ++--- .../before-send-fingerprint/dart.mdx | 20 +++---- .../before-send-fingerprint/flutter.mdx | 20 +++---- .../configuration/before-send-hint/dart.mdx | 14 ++--- .../before-send-hint/flutter.mdx | 14 ++--- .../configuration/before-send/dart.mdx | 14 ++--- .../configuration/before-send/flutter.mdx | 14 ++--- .../configuration/deny-urls/dart.mdx | 10 ++-- .../configuration/deny-urls/flutter.mdx | 10 ++-- .../configuration/ignore-errors/dart.mdx | 13 ++--- .../ignore-transactions/dart.mdx | 13 ++--- .../configuration/sample-rate/dart.mdx | 8 ++- .../configuration/sample-rate/flutter.mdx | 8 ++- .../attach-viewhierarchy/flutter.mdx | 10 ++-- .../breadcrumbs/before-breadcrumb/dart.mdx | 14 ++--- .../breadcrumbs/before-breadcrumb/flutter.mdx | 12 ++-- .../configure-sample-rate/dart.mdx | 8 +-- .../configure-sample-rate/flutter.mdx | 28 ++++------ .../performance/traces-sample-rate/dart.mdx | 8 +-- .../traces-sample-rate/flutter.mdx | 14 ++--- .../traces-sampler-as-filter/dart.mdx | 42 +++++++------- .../traces-sampler-as-filter/flutter.mdx | 48 +++++++--------- .../traces-sampler-as-sampler/dart.mdx | 52 +++++++++-------- .../traces-sampler-as-sampler/flutter.mdx | 56 +++++++++---------- platform-includes/set-environment/dart.mdx | 10 ++-- platform-includes/set-environment/flutter.mdx | 17 ++---- .../set-fingerprint/basic/dart.mdx | 20 +++---- .../set-fingerprint/basic/flutter.mdx | 20 +++---- .../database-connection/dart.mdx | 20 +++---- .../database-connection/flutter.mdx | 20 +++---- .../set-fingerprint/rpc/dart.mdx | 28 +++++----- .../set-fingerprint/rpc/flutter.mdx | 28 +++++----- platform-includes/set-release/dart.mdx | 11 ++-- platform-includes/set-release/flutter.mdx | 14 ++--- .../user-feedback/sdk-api-example/dart.mdx | 14 ++--- .../user-feedback/sdk-api-example/flutter.mdx | 14 ++--- 39 files changed, 306 insertions(+), 408 deletions(-) diff --git a/platform-includes/configuration/allow-urls/dart.mdx b/platform-includes/configuration/allow-urls/dart.mdx index ada9f0431cc39..f920476b3a816 100644 --- a/platform-includes/configuration/allow-urls/dart.mdx +++ b/platform-includes/configuration/allow-urls/dart.mdx @@ -1,7 +1,5 @@ -```dart {3} -await Sentry.init( - (options) { - options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; - }, -); +```dart {2} +await Sentry.init((options) { + options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; +}); ``` diff --git a/platform-includes/configuration/allow-urls/flutter.mdx b/platform-includes/configuration/allow-urls/flutter.mdx index 4b6d746a93a51..5fbc3635079da 100644 --- a/platform-includes/configuration/allow-urls/flutter.mdx +++ b/platform-includes/configuration/allow-urls/flutter.mdx @@ -1,7 +1,5 @@ -```dart {3} -await SentryFlutter.init( - (options) { - options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; - }, -); +```dart {2} +await SentryFlutter.init((options) { + options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"]; +}); ``` diff --git a/platform-includes/configuration/before-breadcrumb-hint/dart.mdx b/platform-includes/configuration/before-breadcrumb-hint/dart.mdx index c2100c8e55849..a25fa09f6a203 100644 --- a/platform-includes/configuration/before-breadcrumb-hint/dart.mdx +++ b/platform-includes/configuration/before-breadcrumb-hint/dart.mdx @@ -1,9 +1,7 @@ -```dart {4} -await Sentry.init( - (options) { - options.beforeBreadcrumb = (breadcrumb, hint) { - return hint is MyHint ? null : crumb; - }; - }, -); +```dart {3} +await Sentry.init((options) { + options.beforeBreadcrumb = (breadcrumb, hint) { + return hint is MyHint ? null : crumb; + }; +}); ``` diff --git a/platform-includes/configuration/before-breadcrumb-hint/flutter.mdx b/platform-includes/configuration/before-breadcrumb-hint/flutter.mdx index 15928d2c686dd..75b7e191823cc 100644 --- a/platform-includes/configuration/before-breadcrumb-hint/flutter.mdx +++ b/platform-includes/configuration/before-breadcrumb-hint/flutter.mdx @@ -1,9 +1,7 @@ -```dart {4} -await SentryFlutter.init( - (options) { - options.beforeBreadcrumb = (breadcrumb, hint) { - return hint is MyHint ? null : crumb; - }; - }, -); +```dart {3} +await SentryFlutter.init((options) { + options.beforeBreadcrumb = (breadcrumb, hint) { + return hint is MyHint ? null : crumb; + }; +}); ``` diff --git a/platform-includes/configuration/before-send-fingerprint/dart.mdx b/platform-includes/configuration/before-send-fingerprint/dart.mdx index 1d8a1fffcbe49..4f62cfb37fa97 100644 --- a/platform-includes/configuration/before-send-fingerprint/dart.mdx +++ b/platform-includes/configuration/before-send-fingerprint/dart.mdx @@ -1,12 +1,10 @@ -```dart {4-7} -await Sentry.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; - }; - }, -); +```dart {3-6} +await Sentry.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; +}); ``` diff --git a/platform-includes/configuration/before-send-fingerprint/flutter.mdx b/platform-includes/configuration/before-send-fingerprint/flutter.mdx index 4cd5fba9e5f4e..459286e11c4fa 100644 --- a/platform-includes/configuration/before-send-fingerprint/flutter.mdx +++ b/platform-includes/configuration/before-send-fingerprint/flutter.mdx @@ -1,12 +1,10 @@ -```dart {4-7} -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; - }; - }, -); +```dart {3-6} +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; +}); ``` diff --git a/platform-includes/configuration/before-send-hint/dart.mdx b/platform-includes/configuration/before-send-hint/dart.mdx index 7aa919b533ba6..0cc46ecccd47e 100644 --- a/platform-includes/configuration/before-send-hint/dart.mdx +++ b/platform-includes/configuration/before-send-hint/dart.mdx @@ -1,9 +1,7 @@ -```dart {4} -await Sentry.init( - (options) { - options.beforeSend = (event, hint) { - return hint is MyHint ? null : event; - }; - }, -); +```dart {3} +await Sentry.init((options) { + options.beforeSend = (event, hint) { + return hint is MyHint ? null : event; + }; +}); ``` diff --git a/platform-includes/configuration/before-send-hint/flutter.mdx b/platform-includes/configuration/before-send-hint/flutter.mdx index 6441890985f6f..42d9d971aef2f 100644 --- a/platform-includes/configuration/before-send-hint/flutter.mdx +++ b/platform-includes/configuration/before-send-hint/flutter.mdx @@ -1,9 +1,7 @@ -```dart {4} -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - return hint is MyHint ? null : event; - }; - }, -); +```dart {3} +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + return hint is MyHint ? null : event; + }; +}); ``` diff --git a/platform-includes/configuration/before-send/dart.mdx b/platform-includes/configuration/before-send/dart.mdx index 966b41598e86a..1f7a266b6deb7 100644 --- a/platform-includes/configuration/before-send/dart.mdx +++ b/platform-includes/configuration/before-send/dart.mdx @@ -1,9 +1,7 @@ -```dart {4} -await Sentry.init( - (options) { - options.beforeSend = (event, hint) { - return event.copyWith(serverName: null); // Don't send server names. - }; - }, -); +```dart {3} +await Sentry.init((options) { + options.beforeSend = (event, hint) { + return event.copyWith(serverName: null); // Don't send server names. + }; +}); ``` diff --git a/platform-includes/configuration/before-send/flutter.mdx b/platform-includes/configuration/before-send/flutter.mdx index 314d649e53b6c..6616d2266d57a 100644 --- a/platform-includes/configuration/before-send/flutter.mdx +++ b/platform-includes/configuration/before-send/flutter.mdx @@ -1,9 +1,7 @@ -```dart {4} -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - return event.copyWith(serverName: null); // Don't send server names. - }; - }, -); +```dart {3} +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + return event.copyWith(serverName: null); // Don't send server names. + }; +}); ``` diff --git a/platform-includes/configuration/deny-urls/dart.mdx b/platform-includes/configuration/deny-urls/dart.mdx index 6ffe236ea150c..b582d5e32faca 100644 --- a/platform-includes/configuration/deny-urls/dart.mdx +++ b/platform-includes/configuration/deny-urls/dart.mdx @@ -1,7 +1,5 @@ -```dart {3} -await Sentry.init( - (options) { - options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; - }, -); +```dart {2} +await Sentry.init((options) { + options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; +}); ``` diff --git a/platform-includes/configuration/deny-urls/flutter.mdx b/platform-includes/configuration/deny-urls/flutter.mdx index a7180a32a8bcf..004a10e3042fc 100644 --- a/platform-includes/configuration/deny-urls/flutter.mdx +++ b/platform-includes/configuration/deny-urls/flutter.mdx @@ -1,7 +1,5 @@ -```dart {3} -await SentryFlutter.init( - (options) { - options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; - }, -); +```dart {2} +await SentryFlutter.init((options) { + options.denyUrls = ["^.*ends-with-this\$", "denied-url"]; +}); ``` diff --git a/platform-includes/configuration/ignore-errors/dart.mdx b/platform-includes/configuration/ignore-errors/dart.mdx index 1196b49e59d78..3afc5a2c9078d 100644 --- a/platform-includes/configuration/ignore-errors/dart.mdx +++ b/platform-includes/configuration/ignore-errors/dart.mdx @@ -1,10 +1,5 @@ -```dart - await SentryFlutter.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - options.ignoreErrors = ["my-error", "^error-.*\$"]; - ... - }, - appRunner: () => runApp(MyApp()), - ); +```dart {2} +await Sentry.init((options) { + options.ignoreErrors = ["my-error", "^error-.*\$"]; +}); ``` diff --git a/platform-includes/configuration/ignore-transactions/dart.mdx b/platform-includes/configuration/ignore-transactions/dart.mdx index 607847272da60..c9367418ce72f 100644 --- a/platform-includes/configuration/ignore-transactions/dart.mdx +++ b/platform-includes/configuration/ignore-transactions/dart.mdx @@ -1,10 +1,5 @@ -```dart - await SentryFlutter.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - options.ignoreTransactions = ["my-transaction", "^transaction-.*\$" ]; - ... - }, - appRunner: () => runApp(MyApp()), - ); +```dart {2} +await Sentry.init((options) { + options.ignoreTransactions = ["my-transaction", "^transaction-.*\$" ]; +}); ``` diff --git a/platform-includes/configuration/sample-rate/dart.mdx b/platform-includes/configuration/sample-rate/dart.mdx index cbd58598adafe..d0500e27fd4c3 100644 --- a/platform-includes/configuration/sample-rate/dart.mdx +++ b/platform-includes/configuration/sample-rate/dart.mdx @@ -1,4 +1,6 @@ -```dart -// Capture only 25% of events -await Sentry.init((options) => options.sampleRate = 0.25); +```dart {3} +await Sentry.init((options) { + // Capture only 25% of events + options.sampleRate = 0.25; +}); ``` diff --git a/platform-includes/configuration/sample-rate/flutter.mdx b/platform-includes/configuration/sample-rate/flutter.mdx index 30bf444a82d14..7317c6b805dff 100644 --- a/platform-includes/configuration/sample-rate/flutter.mdx +++ b/platform-includes/configuration/sample-rate/flutter.mdx @@ -1,4 +1,6 @@ -```dart -// Capture only 25% of events -await SentryFlutter.init((options) => options.sampleRate = 0.25); +```dart {3} +await SentryFlutter.init((options) { + // Capture only 25% of events + options.sampleRate = 0.25; +}); ``` diff --git a/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx b/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx index 24138395e978e..1ea2715d4cc05 100644 --- a/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx +++ b/platform-includes/enriching-events/attach-viewhierarchy/flutter.mdx @@ -1,7 +1,5 @@ -```dart {3} -await SentryFlutter.init( - (options) { - options.attachViewHierarchy = true; - }, -); +```dart {2} +await SentryFlutter.init((options) { + options.attachViewHierarchy = true; +}); ``` diff --git a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx index 3e47594fa974c..334731506d698 100644 --- a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx +++ b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/dart.mdx @@ -1,9 +1,7 @@ -```dart {4} -await Sentry.init( - (options) { - options.beforeBreadcrumb = (breadcrumb, hint) { - return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; - }; - }, -); +```dart {3} +await Sentry.init((options) { + options.beforeBreadcrumb = (breadcrumb, hint) { + return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; + }; +}); ``` diff --git a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx index 78671edbe62be..bba7f05e440bb 100644 --- a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx +++ b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx @@ -1,9 +1,7 @@ ```dart {4} -await SentryFlutter.init( - (options) { - options.beforeBreadcrumb = (breadcrumb, hint) { - return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; - }; - }, -); +await SentryFlutter.init((options) { + options.beforeBreadcrumb = (breadcrumb, hint) { + return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; + }; +}); ``` diff --git a/platform-includes/performance/configure-sample-rate/dart.mdx b/platform-includes/performance/configure-sample-rate/dart.mdx index 583bd9daacddf..6d3ee56846578 100644 --- a/platform-includes/performance/configure-sample-rate/dart.mdx +++ b/platform-includes/performance/configure-sample-rate/dart.mdx @@ -1,9 +1,5 @@ ```dart {diff} -import 'package:sentry/sentry.dart'; - -Sentry.init((options) => { - options.dsn = '___PUBLIC_DSN___'; - +Sentry.init((options) { + // To set a uniform sample rate + options.tracesSampleRate = 1.0; @@ -12,6 +8,6 @@ Sentry.init((options) => { + options.tracesSampler = (samplingContext) { + // return a number between 0 and 1 or null (to fallback + // to configured value) - }; ++ }; }); ``` diff --git a/platform-includes/performance/configure-sample-rate/flutter.mdx b/platform-includes/performance/configure-sample-rate/flutter.mdx index 3d8eb55278897..cc02a630cb122 100644 --- a/platform-includes/performance/configure-sample-rate/flutter.mdx +++ b/platform-includes/performance/configure-sample-rate/flutter.mdx @@ -1,21 +1,13 @@ ```dart {diff} -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; +SentryFlutter.init((options) { ++ // To set a uniform sample rate ++ options.tracesSampleRate = 1.0; -SentryFlutter.init( - (options) => { - options.dsn = '___PUBLIC_DSN___'; - -+ // To set a uniform sample rate -+ options.tracesSampleRate = 1.0; - -+ // OR if you prefer, determine traces sample rate -+ // based on the sampling context -+ options.tracesSampler = (samplingContext) { -+ // return a number between 0 and 1 or null (to fallback -+ // to configured value) -+ }; - }, - appRunner: () => runApp(MyApp()), -); ++ // OR if you prefer, determine traces sample rate ++ // based on the sampling context ++ options.tracesSampler = (samplingContext) { ++ // return a number between 0 and 1 or null (to fallback ++ // to configured value) ++ }; +}); ``` diff --git a/platform-includes/performance/traces-sample-rate/dart.mdx b/platform-includes/performance/traces-sample-rate/dart.mdx index cce4eea47854c..bea804013bccf 100644 --- a/platform-includes/performance/traces-sample-rate/dart.mdx +++ b/platform-includes/performance/traces-sample-rate/dart.mdx @@ -1,7 +1,5 @@ ```dart -Sentry.init( - (options) { - options.tracesSampleRate = 0.2; - }, -); +Sentry.init((options) { + options.tracesSampleRate = 0.2; +}); ``` diff --git a/platform-includes/performance/traces-sample-rate/flutter.mdx b/platform-includes/performance/traces-sample-rate/flutter.mdx index 1fbd43f4cecac..55838eb40a8f4 100644 --- a/platform-includes/performance/traces-sample-rate/flutter.mdx +++ b/platform-includes/performance/traces-sample-rate/flutter.mdx @@ -1,11 +1,5 @@ -```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - -SentryFlutter.init( - (options) => { - options.tracesSampleRate = 0.2; - }, - appRunner: () => runApp(MyApp()), -); +```dart {2} +SentryFlutter.init((options) => { + options.tracesSampleRate = 0.2; +}); ``` diff --git a/platform-includes/performance/traces-sampler-as-filter/dart.mdx b/platform-includes/performance/traces-sampler-as-filter/dart.mdx index 44e05e56c2178..682c23fdc377a 100644 --- a/platform-includes/performance/traces-sampler-as-filter/dart.mdx +++ b/platform-includes/performance/traces-sampler-as-filter/dart.mdx @@ -1,26 +1,26 @@ ```dart import 'package:sentry/sentry.dart'; -Sentry.init((options) => { - // Determine traces sample rate based on the sampling context - options.tracesSampler = (samplingContext) { - final ctx = samplingContext.customSamplingContext; - // If this is the continuation of a trace, just use that decision (rate controlled by the caller). - final parentSampled = - samplingContext.transactionContext.parentSampled; - if (parentSampled != null) { - return parentSampled ? 1.0 : 0.0; - } +Sentry.init((options) { + // Determine traces sample rate based on the sampling context + options.tracesSampler = (samplingContext) { + final ctx = samplingContext.customSamplingContext; + // If this is the continuation of a trace, just use that decision (rate controlled by the caller). + final parentSampled = + samplingContext.transactionContext.parentSampled; + if (parentSampled != null) { + return parentSampled ? 1.0 : 0.0; + } - if (/* make a decision based on `samplingContext` */) { - // Drop this transaction, by setting its sample rate to 0% - return 0.0; - } else if (/* ... */) { - // Override sample rate for other cases (replaces `options.TracesSampleRate`) - return 0.1; - } - // Can return `null` to fallback to the rate configured by `options.tracesSampleRate` - return null; - }, - }); + if (/* make a decision based on `samplingContext` */) { + // Drop this transaction, by setting its sample rate to 0% + return 0.0; + } else if (/* ... */) { + // Override sample rate for other cases (replaces `options.TracesSampleRate`) + return 0.1; + } + // Can return `null` to fallback to the rate configured by `options.tracesSampleRate` + return null; + }; +}); ``` diff --git a/platform-includes/performance/traces-sampler-as-filter/flutter.mdx b/platform-includes/performance/traces-sampler-as-filter/flutter.mdx index 7c1725c061932..c850415166c49 100644 --- a/platform-includes/performance/traces-sampler-as-filter/flutter.mdx +++ b/platform-includes/performance/traces-sampler-as-filter/flutter.mdx @@ -1,30 +1,24 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; +SentryFlutter.init((options) { + // Determine traces sample rate based on the sampling context + options.tracesSampler = (samplingContext) { + final ctx = samplingContext.customSamplingContext; + // If this is the continuation of a trace, just use that decision (rate controlled by the caller). + final parentSampled = + samplingContext.transactionContext.parentSampled; + if (parentSampled != null) { + return parentSampled ? 1.0 : 0.0; + } -SentryFlutter.init( - (options) => { - // Determine traces sample rate based on the sampling context - options.tracesSampler = (samplingContext) { - final ctx = samplingContext.customSamplingContext; - // If this is the continuation of a trace, just use that decision (rate controlled by the caller). - final parentSampled = - samplingContext.transactionContext.parentSampled; - if (parentSampled != null) { - return parentSampled ? 1.0 : 0.0; - } - - if (/* make a decision based on `samplingContext` */) { - // Drop this transaction, by setting its sample rate to 0% - return 0.0; - } else if (/* ... */) { - // Override sample rate for other cases (replaces `options.TracesSampleRate`) - return 0.1; - } - // Can return `null` to fallback to the rate configured by `options.tracesSampleRate` - return null; - }, - }, - appRunner: () => runApp(MyApp()), -); + if (/* make a decision based on `samplingContext` */) { + // Drop this transaction, by setting its sample rate to 0% + return 0.0; + } else if (/* ... */) { + // Override sample rate for other cases (replaces `options.TracesSampleRate`) + return 0.1; + } + // Can return `null` to fallback to the rate configured by `options.tracesSampleRate` + return null; + }; +}); ``` diff --git a/platform-includes/performance/traces-sampler-as-sampler/dart.mdx b/platform-includes/performance/traces-sampler-as-sampler/dart.mdx index de0b003c30b0b..6a0b366ba20a3 100644 --- a/platform-includes/performance/traces-sampler-as-sampler/dart.mdx +++ b/platform-includes/performance/traces-sampler-as-sampler/dart.mdx @@ -1,30 +1,28 @@ ```dart -import 'package:sentry/sentry.dart'; +Sentry.init((options) { + // Determine traces sample rate based on the sampling context + options.tracesSampler = (samplingContext) { + final ctx = samplingContext.customSamplingContext; + // If this is the continuation of a trace, just use that decision (rate controlled by the caller). + final parentSampled = + samplingContext.transactionContext.parentSampled; + if (parentSampled != null) { + return parentSampled ? 1.0 : 0.0; + } -Sentry.init((options) => { - // Determine traces sample rate based on the sampling context - options.tracesSampler = (samplingContext) { - final ctx = samplingContext.customSamplingContext; - // If this is the continuation of a trace, just use that decision (rate controlled by the caller). - final parentSampled = - samplingContext.transactionContext.parentSampled; - if (parentSampled != null) { - return parentSampled ? 1.0 : 0.0; - } - - if ('/payment' == ctx['url']) { - // These are important - take a big sample - return 0.5; - } else if ('/search' == ctx['url']) { - // Search is less important and happen much more frequently - only take 1% - return 0.01; - } else if ('/health' == ctx['url']) { - // The health check endpoint is just noise - drop all transactions - return 0.0; - } else { - // Default sample rate - return 0.1; - } - }, - }); + if ('/payment' == ctx['url']) { + // These are important - take a big sample + return 0.5; + } else if ('/search' == ctx['url']) { + // Search is less important and happen much more frequently - only take 1% + return 0.01; + } else if ('/health' == ctx['url']) { + // The health check endpoint is just noise - drop all transactions + return 0.0; + } else { + // Default sample rate + return 0.1; + } + }; +}); ``` diff --git a/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx b/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx index 6699fee7aac41..5ad10924fa862 100644 --- a/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx +++ b/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx @@ -1,34 +1,28 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; +SentryFlutter.init((options) { + // Determine traces sample rate based on the sampling context + options.tracesSampler = (samplingContext) { + final ctx = samplingContext.customSamplingContext; + // If this is the continuation of a trace, just use that decision (rate controlled by the caller). + final parentSampled = + samplingContext.transactionContext.parentSampled; + if (parentSampled != null) { + return parentSampled ? 1.0 : 0.0; + } -SentryFlutter.init( - (options) => { - // Determine traces sample rate based on the sampling context - options.tracesSampler = (samplingContext) { - final ctx = samplingContext.customSamplingContext; - // If this is the continuation of a trace, just use that decision (rate controlled by the caller). - final parentSampled = - samplingContext.transactionContext.parentSampled; - if (parentSampled != null) { - return parentSampled ? 1.0 : 0.0; - } - - if ('/payment' == ctx['url']) { - // These are important - take a big sample - return 0.5; - } else if ('/search' == ctx['url']) { - // Search is less important and happen much more frequently - only take 1% - return 0.01; - } else if ('/health' == ctx['url']) { - // The health check endpoint is just noise - drop all transactions - return 0.0; - } else { - // Default sample rate - return 0.1; - } - }, - }, - appRunner: () => runApp(MyApp()), -); + if ('/payment' == ctx['url']) { + // These are important - take a big sample + return 0.5; + } else if ('/search' == ctx['url']) { + // Search is less important and happen much more frequently - only take 1% + return 0.01; + } else if ('/health' == ctx['url']) { + // The health check endpoint is just noise - drop all transactions + return 0.0; + } else { + // Default sample rate + return 0.1; + } + }; +}); ``` diff --git a/platform-includes/set-environment/dart.mdx b/platform-includes/set-environment/dart.mdx index 9f965d8f01909..1588ccdf83ed5 100644 --- a/platform-includes/set-environment/dart.mdx +++ b/platform-includes/set-environment/dart.mdx @@ -1,7 +1,5 @@ -```dart -import 'package:sentry/sentry.dart'; - -Future main() async { - await Sentry.init((options) => options.environment = 'staging'); -} +```dart {2} +await Sentry.init((options) { + options.environment = 'staging'; +}); ``` diff --git a/platform-includes/set-environment/flutter.mdx b/platform-includes/set-environment/flutter.mdx index 3e5de8bd58c40..84c93fb454e5a 100644 --- a/platform-includes/set-environment/flutter.mdx +++ b/platform-includes/set-environment/flutter.mdx @@ -1,14 +1,7 @@ -```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - -Future main() async { - await SentryFlutter.init( - (options) => options.environment = 'staging', - appRunner: () => runApp(MyApp()), - ); - - // or define SENTRY_ENVIRONMENT via Dart environment variable (--dart-define) -} +```dart {2} +await SentryFlutter.init((options) { + options.environment = 'staging'; +}); +// or define SENTRY_ENVIRONMENT via Dart environment variable (--dart-define) ``` diff --git a/platform-includes/set-fingerprint/basic/dart.mdx b/platform-includes/set-fingerprint/basic/dart.mdx index 4cd5fba9e5f4e..4f62cfb37fa97 100644 --- a/platform-includes/set-fingerprint/basic/dart.mdx +++ b/platform-includes/set-fingerprint/basic/dart.mdx @@ -1,12 +1,10 @@ -```dart {4-7} -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; - }; - }, -); +```dart {3-6} +await Sentry.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; +}); ``` diff --git a/platform-includes/set-fingerprint/basic/flutter.mdx b/platform-includes/set-fingerprint/basic/flutter.mdx index 4cd5fba9e5f4e..459286e11c4fa 100644 --- a/platform-includes/set-fingerprint/basic/flutter.mdx +++ b/platform-includes/set-fingerprint/basic/flutter.mdx @@ -1,12 +1,10 @@ -```dart {4-7} -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; - }; - }, -); +```dart {3-6} +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; +}); ``` diff --git a/platform-includes/set-fingerprint/database-connection/dart.mdx b/platform-includes/set-fingerprint/database-connection/dart.mdx index 1d8a1fffcbe49..4f62cfb37fa97 100644 --- a/platform-includes/set-fingerprint/database-connection/dart.mdx +++ b/platform-includes/set-fingerprint/database-connection/dart.mdx @@ -1,12 +1,10 @@ -```dart {4-7} -await Sentry.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; - }; - }, -); +```dart {3-6} +await Sentry.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; +}); ``` diff --git a/platform-includes/set-fingerprint/database-connection/flutter.mdx b/platform-includes/set-fingerprint/database-connection/flutter.mdx index 4cd5fba9e5f4e..459286e11c4fa 100644 --- a/platform-includes/set-fingerprint/database-connection/flutter.mdx +++ b/platform-includes/set-fingerprint/database-connection/flutter.mdx @@ -1,12 +1,10 @@ -```dart {4-7} -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is DatabaseException) { - event = event.copyWith(fingerprint: ['database-connection-error']); - } - return event; - }; - }, -); +```dart {3-6} +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is DatabaseException) { + event = event.copyWith(fingerprint: ['database-connection-error']); + } + return event; + }; +}); ``` diff --git a/platform-includes/set-fingerprint/rpc/dart.mdx b/platform-includes/set-fingerprint/rpc/dart.mdx index 459cefec4aad3..c6ee6506e1f50 100644 --- a/platform-includes/set-fingerprint/rpc/dart.mdx +++ b/platform-includes/set-fingerprint/rpc/dart.mdx @@ -6,19 +6,17 @@ class MyRpcException implements Exception { MyRpcException(this.function, this.httpStatusCode); } -await Sentry.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is MyRpcException) { - final exception = event.throwable as MyRpcException; - event = event.copyWith(fingerprint: [ - '{{ default }}', - exception.function, - exception.httpStatusCode.toString(), - ]); - } - return event; - }; - }, -); +await Sentry.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is MyRpcException) { + final exception = event.throwable as MyRpcException; + event = event.copyWith(fingerprint: [ + '{{ default }}', + exception.function, + exception.httpStatusCode.toString(), + ]); + } + return event; + }; +}); ``` diff --git a/platform-includes/set-fingerprint/rpc/flutter.mdx b/platform-includes/set-fingerprint/rpc/flutter.mdx index cf335834acfee..8a57b424423f6 100644 --- a/platform-includes/set-fingerprint/rpc/flutter.mdx +++ b/platform-includes/set-fingerprint/rpc/flutter.mdx @@ -6,19 +6,17 @@ class MyRpcException implements Exception { MyRpcException(this.function, this.httpStatusCode); } -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - if (event.throwable is MyRpcException) { - final exception = event.throwable as MyRpcException; - event = event.copyWith(fingerprint: [ - '{{ default }}', - exception.function, - exception.httpStatusCode.toString(), - ]); - } - return event; - }; - }, -); +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + if (event.throwable is MyRpcException) { + final exception = event.throwable as MyRpcException; + event = event.copyWith(fingerprint: [ + '{{ default }}', + exception.function, + exception.httpStatusCode.toString(), + ]); + } + return event; + }; +}); ``` diff --git a/platform-includes/set-release/dart.mdx b/platform-includes/set-release/dart.mdx index 8737cf7f9a37d..eb76ef34f4c65 100644 --- a/platform-includes/set-release/dart.mdx +++ b/platform-includes/set-release/dart.mdx @@ -1,7 +1,6 @@ -```dart -import 'package:sentry/sentry.dart'; - -Future main() async { - await Sentry.init((options) => options.release = 'my-project-name@2.3.12+12'); // packageName@versionName+buildNumber -} +```dart {3} +await Sentry.init((options) { + // packageName@versionName+buildNumber + options.release = 'my-project-name@2.3.12+12'; +}); ``` diff --git a/platform-includes/set-release/flutter.mdx b/platform-includes/set-release/flutter.mdx index 155b633bffc87..295a526725e09 100644 --- a/platform-includes/set-release/flutter.mdx +++ b/platform-includes/set-release/flutter.mdx @@ -1,15 +1,9 @@ ```dart -import 'package:flutter/widgets.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; +await SentryFlutter.init((options) { + options.release = 'my-project-name@2.3.12+12'; +}); -Future main() async { - await SentryFlutter.init( - (options) => options.release = 'my-project-name@2.3.12+12', - appRunner: () => runApp(MyApp()), - ); - - // or define SENTRY_RELEASE via Dart environment variable (--dart-define) if you are using Flutter Web. -} +// or define SENTRY_RELEASE via Dart environment variable (--dart-define) if you are using Flutter Web. ``` diff --git a/platform-includes/user-feedback/sdk-api-example/dart.mdx b/platform-includes/user-feedback/sdk-api-example/dart.mdx index a033d6cde1346..7a4c58c6f8271 100644 --- a/platform-includes/user-feedback/sdk-api-example/dart.mdx +++ b/platform-includes/user-feedback/sdk-api-example/dart.mdx @@ -2,14 +2,12 @@ // Option 1: Retrieving SentryId from beforeSend SentryId sentryId = SentryId.empty(); -await Sentry.init( - (options) { - options.beforeSend = (event, hint) { - sentryId = event.eventId; - return event; - }; - }, -); +await Sentry.init((options) { + options.beforeSend = (event, hint) { + sentryId = event.eventId; + return event; + }; +}); // Option 2: Retrieving SentryId from the method capturing the event SentryId sentryId = Sentry.captureMessage("My message"); diff --git a/platform-includes/user-feedback/sdk-api-example/flutter.mdx b/platform-includes/user-feedback/sdk-api-example/flutter.mdx index f10dfbc6622e5..a3ee42c324e9a 100644 --- a/platform-includes/user-feedback/sdk-api-example/flutter.mdx +++ b/platform-includes/user-feedback/sdk-api-example/flutter.mdx @@ -2,14 +2,12 @@ // Option 1: Retrieving SentryId from beforeSend SentryId sentryId = SentryId.empty(); -await SentryFlutter.init( - (options) { - options.beforeSend = (event, hint) { - sentryId = event.eventId; - return event; - }; - }, -); +await SentryFlutter.init((options) { + options.beforeSend = (event, hint) { + sentryId = event.eventId; + return event; + }; +}); // Option 2: Retrieving SentryId from the method capturing the event SentryId sentryId = Sentry.captureMessage("My message"); From ca52aabc289c21a04e02d48bd68ba92f2aa27fb8 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Mon, 25 Nov 2024 17:36:30 +0100 Subject: [PATCH 10/13] Update dart.mdx --- .../performance/traces-sampler-as-sampler/dart.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-includes/performance/traces-sampler-as-sampler/dart.mdx b/platform-includes/performance/traces-sampler-as-sampler/dart.mdx index 6a0b366ba20a3..0cee6321597ec 100644 --- a/platform-includes/performance/traces-sampler-as-sampler/dart.mdx +++ b/platform-includes/performance/traces-sampler-as-sampler/dart.mdx @@ -1,5 +1,5 @@ ```dart -Sentry.init((options) { +await Sentry.init((options) { // Determine traces sample rate based on the sampling context options.tracesSampler = (samplingContext) { final ctx = samplingContext.customSamplingContext; From 9006eb83671a764ee83e17bfec503f92f6ed028f Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Tue, 26 Nov 2024 10:59:53 +0100 Subject: [PATCH 11/13] Update flutter.mdx --- .../performance/traces-sampler-as-filter/flutter.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-includes/performance/traces-sampler-as-filter/flutter.mdx b/platform-includes/performance/traces-sampler-as-filter/flutter.mdx index c850415166c49..2695322cfe723 100644 --- a/platform-includes/performance/traces-sampler-as-filter/flutter.mdx +++ b/platform-includes/performance/traces-sampler-as-filter/flutter.mdx @@ -1,5 +1,5 @@ ```dart -SentryFlutter.init((options) { +await SentryFlutter.init((options) { // Determine traces sample rate based on the sampling context options.tracesSampler = (samplingContext) { final ctx = samplingContext.customSamplingContext; From 67b29bbc507b3e3d59f616036181fee6959aeab6 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Tue, 26 Nov 2024 11:00:32 +0100 Subject: [PATCH 12/13] Update dart.mdx --- platform-includes/performance/traces-sampler-as-filter/dart.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-includes/performance/traces-sampler-as-filter/dart.mdx b/platform-includes/performance/traces-sampler-as-filter/dart.mdx index 682c23fdc377a..02f01258652fe 100644 --- a/platform-includes/performance/traces-sampler-as-filter/dart.mdx +++ b/platform-includes/performance/traces-sampler-as-filter/dart.mdx @@ -1,7 +1,7 @@ ```dart import 'package:sentry/sentry.dart'; -Sentry.init((options) { +await Sentry.init((options) { // Determine traces sample rate based on the sampling context options.tracesSampler = (samplingContext) { final ctx = samplingContext.customSamplingContext; From ff99d44a85ba861b895891b8d3020545c68d4e3d Mon Sep 17 00:00:00 2001 From: Denis Andrasec Date: Tue, 26 Nov 2024 16:55:54 +0100 Subject: [PATCH 13/13] more updated/improvements --- docs/platforms/dart/integrations/dio.mdx | 16 ++++------------ docs/platforms/flutter/session-replay/index.mdx | 13 +++++-------- .../enriching-events/attachment-upload/dart.mdx | 2 +- .../breadcrumbs/before-breadcrumb/flutter.mdx | 2 +- .../performance/traces-sample-rate/dart.mdx | 4 ++-- .../performance/traces-sample-rate/flutter.mdx | 2 +- .../traces-sampler-as-filter/dart.mdx | 2 -- .../traces-sampler-as-sampler/flutter.mdx | 2 +- 8 files changed, 15 insertions(+), 28 deletions(-) diff --git a/docs/platforms/dart/integrations/dio.mdx b/docs/platforms/dart/integrations/dio.mdx index a6ecebed271cd..bffc64a9db73b 100644 --- a/docs/platforms/dart/integrations/dio.mdx +++ b/docs/platforms/dart/integrations/dio.mdx @@ -58,18 +58,10 @@ final response = await dio.get('https://wrong-url.dev/'); This is an opt-out feature. The following example shows how to disable it: -```dart -import 'package:sentry/sentry.dart'; - -Future main() async { - await Sentry.init( - (options) { - options.dsn = '___PUBLIC_DSN___'; - options.captureFailedRequests = false; - }, - appRunner: initApp, // Init your App. - ); -} +```dart {2} +await Sentry.init((options) { + options.captureFailedRequests = false; +}); ``` ## Tracing for HTTP Requests diff --git a/docs/platforms/flutter/session-replay/index.mdx b/docs/platforms/flutter/session-replay/index.mdx index a6a08488060ec..e90b37f4c9115 100644 --- a/docs/platforms/flutter/session-replay/index.mdx +++ b/docs/platforms/flutter/session-replay/index.mdx @@ -32,14 +32,11 @@ dependencies: To set up the integration, add the following to your Sentry initialization: ```dart -await SentryFlutter.init( - (options) { - ... - options.experimental.replay.sessionSampleRate = 1.0; - options.experimental.replay.onErrorSampleRate = 1.0; - }, - appRunner: () => runApp(MyApp()), -); +await SentryFlutter.init((options) { + ... + options.experimental.replay.sessionSampleRate = 1.0; + options.experimental.replay.onErrorSampleRate = 1.0; +}); ``` ## Verify diff --git a/platform-includes/enriching-events/attachment-upload/dart.mdx b/platform-includes/enriching-events/attachment-upload/dart.mdx index 52f3d266831ed..34db2789ad9a3 100644 --- a/platform-includes/enriching-events/attachment-upload/dart.mdx +++ b/platform-includes/enriching-events/attachment-upload/dart.mdx @@ -4,6 +4,6 @@ import 'package:sentry/sentry.dart'; final attachment = SentryAttachment.fromByteData(bytedata); Sentry.configureScope((scope) { - scope.addAttachment(attachment); + scope.addAttachment(attachment); }); ``` diff --git a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx index bba7f05e440bb..adefceb4e8d55 100644 --- a/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx +++ b/platform-includes/enriching-events/breadcrumbs/before-breadcrumb/flutter.mdx @@ -1,4 +1,4 @@ -```dart {4} +```dart {3} await SentryFlutter.init((options) { options.beforeBreadcrumb = (breadcrumb, hint) { return 'a.spammy.Logger' == breadcrumb.category ? null : breadcrumb; diff --git a/platform-includes/performance/traces-sample-rate/dart.mdx b/platform-includes/performance/traces-sample-rate/dart.mdx index bea804013bccf..503edbc1206bc 100644 --- a/platform-includes/performance/traces-sample-rate/dart.mdx +++ b/platform-includes/performance/traces-sample-rate/dart.mdx @@ -1,5 +1,5 @@ -```dart -Sentry.init((options) { +```dart {2} +await Sentry.init((options) { options.tracesSampleRate = 0.2; }); ``` diff --git a/platform-includes/performance/traces-sample-rate/flutter.mdx b/platform-includes/performance/traces-sample-rate/flutter.mdx index 55838eb40a8f4..0f6262fbdfe5e 100644 --- a/platform-includes/performance/traces-sample-rate/flutter.mdx +++ b/platform-includes/performance/traces-sample-rate/flutter.mdx @@ -1,5 +1,5 @@ ```dart {2} -SentryFlutter.init((options) => { +await SentryFlutter.init((options) => { options.tracesSampleRate = 0.2; }); ``` diff --git a/platform-includes/performance/traces-sampler-as-filter/dart.mdx b/platform-includes/performance/traces-sampler-as-filter/dart.mdx index 02f01258652fe..0421a61701387 100644 --- a/platform-includes/performance/traces-sampler-as-filter/dart.mdx +++ b/platform-includes/performance/traces-sampler-as-filter/dart.mdx @@ -1,6 +1,4 @@ ```dart -import 'package:sentry/sentry.dart'; - await Sentry.init((options) { // Determine traces sample rate based on the sampling context options.tracesSampler = (samplingContext) { diff --git a/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx b/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx index 5ad10924fa862..3473d23fc10af 100644 --- a/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx +++ b/platform-includes/performance/traces-sampler-as-sampler/flutter.mdx @@ -1,5 +1,5 @@ ```dart -SentryFlutter.init((options) { +await SentryFlutter.init((options) { // Determine traces sample rate based on the sampling context options.tracesSampler = (samplingContext) { final ctx = samplingContext.customSamplingContext;