#tauri #sentry #tauri-plugin #browser #events #breadcrumbs #back-end

sentry-tauri

一个用于 Sentry 的实验性 Tauri 插件

3 个版本 (破坏性更新)

0.3.0 2024 年 4 月 12 日
0.2.0 2023 年 7 月 1 日
0.1.0 2022 年 6 月 21 日

调试 中排名第 543

Download history 101/week @ 2024-04-14 65/week @ 2024-04-21 158/week @ 2024-04-28 27/week @ 2024-05-05 20/week @ 2024-05-12 36/week @ 2024-05-19 32/week @ 2024-05-26 53/week @ 2024-06-02 23/week @ 2024-06-09 63/week @ 2024-06-16 108/week @ 2024-06-23 29/week @ 2024-06-30 57/week @ 2024-07-07 26/week @ 2024-07-14 18/week @ 2024-07-21 28/week @ 2024-07-28

每月下载量 140

MIT/Apache

275KB
148

sentry-tauri

一个改进 Sentry 支持的 Tauri 插件。

在 Tauri 应用程序中分别使用 Sentry 的 Rust 和浏览器 SDK 是完全合理的。然而,此插件通过 Rust 后端传递浏览器面包屑和事件,这具有许多优点

  • 浏览器事件将添加 Rust、操作系统和设备上下文
    • Rust 和浏览器的事件将具有相同的上下文以进行过滤
  • 面包屑将从 Rust 和浏览器 SDK 合并
    • 查看事件发生时 Rust 后端和浏览器前端的情况

安装

此示例还展示了 sentry_rust_minidump 的使用,该工具允许您从单独的崩溃报告进程捕获本地崩溃的 minidump。

Cargo.toml 中添加所需的依赖项

[dependencies]
sentry-tauri = "0.2"

sentrysentry-rust-minidumpsentry-tauri 重新导出,因此您不需要将它们作为依赖项添加。

fn main() {
    let client = sentry_tauri::sentry::init((
        "__YOUR_DSN__",
        sentry_tauri::sentry::ClientOptions {
            release: sentry_tauri::sentry::release_name!(),
            ..Default::default()
        },
    ));

    // Everything before here runs in both app and crash reporter processes
    let _guard = sentry_tauri::minidump::init(&client);
    // Everything after here runs in only the app process

    tauri::Builder::default()
        .plugin(sentry_tauri::plugin())
        .run(tauri::generate_context!())
        .expect("error while running tauri app");
}

插件

  • 在每个 web-view 中注入和初始化 @sentry/browser
  • 包含 beforeSendbeforeBreadcrumb 钩子,用于拦截事件和面包屑,并通过 Tauri 的 invoke API 将它们传递给 Rust SDK
  • Tauri + serde + 现有的 Sentry Rust 类型 = 反序列化基本上 Just Works™️

示例应用程序

克隆此仓库并安装依赖项

> yarn install

examples/basic-app/src-tauri/src/main.rs 中替换 DSN 为您的 DSN

以开发模式运行

> yarn example

依赖项

~25–67MB
~1M SLoC