sentry_plus 0.2.0 icon indicating copy to clipboard operation
sentry_plus: ^0.2.0 copied to clipboard

This package includes a collection of community maintained integrations for Sentry.

Sentry Plus #

pub package likes popularity pub points

This package includes a collection of community maintained integrations for Sentry.

Please note, that because this has integrations for file and network io, it depends on specific versions of Dart. Therefor, this package always raises the minimal required Dart version when there's a change in the file or network io API of Dart.

Automatic integrations #

Add all automatic integrations #

import 'package:sentry_plus/sentry_plus.dart';

Future<void> main() {
  // also works for SentryFlutter.init
  return Sentry.init(
    (options) {
      options.addSentryPlus();
      // other configuration omitted
    },
    appRunner: () {
        // app code
    },
  );
}

File tracing #

This enables automatic creation of performance traces for most file IO. It includes traces for reading, writing, modifying and deleting files.

This is only available on non-web platforms.

import 'package:sentry_plus/sentry_plus.dart';

Future<void> main() {
  // also works for SentryFlutter.init
  return Sentry.init(
    (options) {
      // Add tracing for files
      options.addFileTracing();
      // other configuration omitted
    },
    appRunner: () {
        // app code
    },
  );
}

HTTP tracing #

Enable automatic creation of performance traces for HTTP requests for dart:io platforms.

  • This also works for the http and dio packages.
  • This also captures requests from Flutters Image.network widget

This is only available on non-web platforms.

Remarks: Make sure to disable performance tracing for the http or dio packages, if you're using them. Otherwise you're creating two traces for the same request.

import 'package:sentry_plus/sentry_plus.dart';

Future<void> main() {
  // also works for SentryFlutter.init
  return Sentry.init(
    (options) {
      // Add tracing for http
      options.addHttpTracing();
      // other configuration omitted
    },
    appRunner: () {
        // app code
    },
  );
}

UnhandledEventProcessor #

This event processor marks all exceptions caught by Sentry as unhandled: true. This kinda goes against Sentrys typical usage of it, as unhandled: true means that the application did a hard crash, which Flutter applications typically don't do.

import 'package:sentry_plus/sentry_plus.dart';

Future<void> main() {
  // also works for SentryFlutter.init
  return Sentry.init(
    (options) {
      options.addEventProcessor(UnhandledEventProcessor());
      // other configuration omitted
    },
    appRunner: () {
        // app code
    },
  );
}

Manual integrations #

dart:convert #

This repo includes some utilities to make it easier to add performance traces for conversion done by dart:convert.

import 'package:sentry_plus/sentry_plus.dart';

final List<int> data = [/* ...*/];
// call the extension method `wrapWithTraces()` on a codec or converter
final decoder = utf8.decoder.wrapWithTraces();
final converted = decoder.convert(data);

Design & support philosophy #

This code differs from Sentrys design and support philosophy:

  • This code doesn't try to be as backwards compatible as possible. This enables this code to make use of newer features.
  • This code doesn't try to stay free of dependencies. Low quality dependencies are still not allowed, though.
  • This code has no guarantees for API stability
  • When comparable features are implemented in (or moved to) Sentry, it will be removed from this package.
  • Features & integrations should be easy to integrate and use

📣 About the author #

  • Twitter Follow
  • GitHub followers
2
likes
130
pub points
13%
popularity

Publisher

verified publisher iconuekoetter.dev

This package includes a collection of community maintained integrations for Sentry.

Repository (GitHub)
View/report issues

Documentation

API reference

License

Icon for licenses.Apache-2.0 (LICENSE)

Dependencies

sentry, stack_trace

More

Packages that depend on sentry_plus