美文网首页
Electron 集成 Sentry

Electron 集成 Sentry

作者: 依然还是或者其他 | 来源:发表于2021-09-30 14:19 被阅读0次

Electron 集成 Sentry

sentry分为支持本地部署。目前只涉及在线版本。

Sentry

  • 创建organization
  • 选择平台类型:electron,创建project
  • 拿到对应的dsn地址及minidump提交的地址
yarn add @sentry/electron


根据进程不同选择不同的Sentry
import * as Sentry from "@sentry/electron/dist/main";  // 主进程

import * as Sentry from "@sentry/electron/dist/renderer";  //渲染进程


Sentry.init({ dsn: "https://92f427b4b5f6474a958e88d985b3f57c@o1011820.ingest.sentry.io/5976771" });



crashReporter.start({
  productName,   //产品名称
  companyName,   //公司名称
  submitURL,    // sentrt的minidump提交地址
  extra:{      //额外信息,如版本号等
    "release":pjson.version
  }
});


minidump 及 符号表

crashReporter 为 Electron 提供的收集机制,它可以收集应用程序无法捕获的崩溃错误,收集后,可以把信息保存到本地或者上传到指定服务器。
上传的文件是二进制的minidump类型文件,一个minidump只包括了最必要的信息,用于恢复故障进程的所有线程的调用堆栈,以及查看故障时刻局部变量的值。

由于sentrt解析出的minidump内容多为内容地址,不容易根据内容排查问题。
调试符号允许您有更好的调试会话。他们拥有关于可执行文件和动态库中包含的函数的信息,并为您提供获取干净的调用堆栈的信息。为此,Electron官方提供了相关版本的符号表

上传符号表到Sentry

  • 在sentry.io中拿到 Auth Tokens
  • 在Electron 工程的根目录创建.sentryclirc文件
    [defaults]
    url = https://sentry.io/
    org = your org
    project = your project
    
    [auth]
    token = your token
    
  • 安装@sentry/wizard,

    npm install -g @sentry/wizard
    
    sentry-wizard --integration electron
    //会在根目录创建一个sentry-symbols.js文件
    
    
  • 下载符号表并上传至sentry

    npm install --save-dev @sentry/cli electron-download
    
    node sentry-symbols.js
    

    这里可能会由于网络问题,导致下载失败。
    可以自行在sentry-symbols.js中查看需要下载的版本,自行到官方下载地址进行下载

    如下

    找到自己对应的electron版本资源页,目前使用的是electron10.3.0,然后选择需要下载的符合表版本:

    • electron-v10.3.0-win32-ia32-symbols.zip
    • electron-v10.3.0-win32-x64-symbols.zip

// ...省略
zipPath = await downloadSymbols({
    version,
    platform: 'win32',
    arch: 'ia32',
    symbols: true,
  });
  await sentryCli.execute(['upload-dif', '-t', 'breakpad', zipPath], true);

  zipPath = await downloadSymbols({
    version,
    platform: 'win32',
    arch: 'x64',
    symbols: true,
  });
  await sentryCli.execute(['upload-dif', '-t', 'breakpad', zipPath], true);
  
  //...省略

然后下载到本地后自行进行上传,命令行可根据sentryCli.execute执行的内容自行拼接组织


sentry-cli upload-dif -t breakpad -o 组织名 -p 项目名  路径

参考

Sentrty官网Electron配置文档说明

Sentry-cli: 监控 electron crash 的最后一步

sentry 工作流和集成之调试信息文件

electron上传符号表到sentry

Electron10.3.0版本的资源包括符号表

minidump详细介绍

相关文章

网友评论

      本文标题:Electron 集成 Sentry

      本文链接:https://www.haomeiwen.com/subject/ykreiltx.html