Skip to content

Latest commit

 

History

History
99 lines (69 loc) · 2.93 KB

isar-instrumentation.mdx

File metadata and controls

99 lines (69 loc) · 2.93 KB
title description caseStyle supportLevel sdk categories
Isar Database Instrumentation
Learn more about the Sentry Isar Database Instrumentation for the Flutter SDK.
camelCase
production
sentry.dart.flutter
mobile

(New in version 7.16.0)

Isar is a fast cross-platform database for Flutter. The sentry_isar package provides Isar support for database instrumentation and allows you to track the performance of your queries.

Instrumentation Behaviour

The created spans will be attached to the transaction on the scope. If no transaction is on the scope the Isar span will not be sent to Sentry.

Prerequisites

Before starting, ensure:

  1. The Sentry Flutter SDK is initialized. Learn more here.
  2. Tracing is set up. Learn more here.

Install

Add the sentry_isar dependency to install the Isar database instrumentation.

dependencies:
sentry_flutter: ^{{@inject packages.version('sentry.dart.flutter', '7.16.0') }}
sentry_isar: ^{{@inject packages.version('sentry.dart.isar', '7.16.0') }}
path_provider: ^2.0.0

Configure

Use SentryIsar to initialize the instance:

import 'package:path_provider/path_provider.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:sentry_isar/sentry_isar.dart';

import 'user.dart'; // Import your Isar model instead

final dir = await getApplicationDocumentsDirectory();
final isar = await SentryIsar.open(
  [UserSchema],
  directory: dir.path,
);

Verify

1. Execute the Code

import 'package:path_provider/path_provider.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:sentry_isar/sentry_isar.dart';

import 'user.dart'; // Import your Isar model instead

Future<void> runApp() async {
  final tr = Sentry.startTransaction('isarTest', 'db', bindToScope: true);

  final dir = await getApplicationDocumentsDirectory();

  final isar = await SentryIsar.open(
    [UserSchema],
    directory: dir.path,
  );

  final newUser = User()
    ..name = 'Joe Dirt'
    ..age = 36;

  await isar.writeTxn(() async {
    await isar.users.put(newUser); // insert & update
  });

  final existingUser = await isar.users.get(newUser.id); // get

  await isar.writeTxn(() async {
    await isar.users.delete(existingUser!.id); // delete
  });

  await tr.finish(status: const SpanStatus.ok());
}

2. View the Transaction on Sentry.io

To view the recorded transaction, log into sentry.io. Use the left sidebar to navigate to the Performance page. Select your project and scroll down to the transactions table to see the just recorded transaction with the name isarTest. You can also use the search bar to find the transaction. Click on the transaction to open its Transaction Summary page for more performance details.