Sentry 帮助每个开发人员诊断和修复他们的代码。 我们正计划着手开发 JavaScript SDK 的新主要版本,并希望使其成为迄今为止最好的软件。
但是,为此,我们需要您提供一些反馈。
_使用SDK最大的痛点是什么?_
_您最缺少哪些功能?_
_你想改变什么?_
我们已经计划解决下面列出的一些问题:
帮助我们帮助您,让我们知道您的想法! 我们将确保回答所有评论,因此每个声音都很重要。
干杯!
卡米尔
我最大的抱怨总是我的错误日志库是我最大的第三方库之一。 我经常考虑在第一页加载后 5-10 秒延迟加载 Sentry 以获得更好的页面速度分数,所以我很高兴你正在解决这个问题❤️
对我来说, drastically reduce overall bundle size
目标也是最重要的目标。
你好,
大大减少整体捆绑大小
我正在为此 +1,以防万一发生任何变化。 我要补充一点:在我的网络应用程序中,Sentry 初始化需要 30 毫秒(在快速计算机上),这对于诊断记录器来说太长了,而在 React Native 应用程序中,它明显更糟,因为它的捆绑器(Metro)无法进行树摇动,因此 Sentry 导入了高达 _78 个文件_,并且对启动时间也有可观的贡献(几个 %)。
嗨,只是来自 React Native 的一些数据:
这是在 iPhone X 上进行分析的。Sentry 在启动时需要高达 54 毫秒——大约 40 毫秒只是为了导入大部分文件,大约 15 毫秒来初始化 JS 代码。 再加上约 30 毫秒阻塞主线程以初始化 _native_ 端,并且在词法分析/解析 Sentry 的 JS(其中有很多)方面有一些时间下落不明 - 我怀疑 5-15 毫秒,但没有精确测量。 总共 - 90-100 毫秒 - 这是启动我的应用程序总时间的 15%!
好问题! 我希望为生产应用程序看到更灵活的日志记录选项(或如何创建文档),在这些应用程序中,您不想将用户暴露给任何 console.log,但您确实希望将它们捕获为面包屑。 这可以解决诸如https://github.com/getsentry/sentry/issues/12618和https://github.com/getsentry/sentry-javascript/issues/1883 之类的问题
也许 Sentry 面包屑可以与debug或loglevel等日志库集成。 这似乎是生产应用程序的一个常见用例,并且可能已经有一些 DIY 方法支持它,但是根据当前文档,这是否可能还不清楚。 (或者如果它是并且我以某种方式错过了它,那么我将不胜感激任何提示)。 谢谢!
嗨,我有一个关于 SDK 初始化的建议。
无需使用选项调用 Sentry.init,SDK 可以自动检查 SentryOptions,如命名全局变量,以获取 DSN id 和其他选项。
我们在需要时动态加载 JS 文件,并且很难在跨域请求或网络问题中跟踪 bundle js 的加载事件。 自动检查此变量将对此有所帮助,无需专门调用 init 函数。
我有一个 PWA 项目,当应用程序离线时我没有收到事件,并且没有办法在服务人员中进行后台同步,因为没有为哨兵摄取域注册。
@edelvalle
这应该可以通过 Workbox 和它的Background Sync 插件来实现~但是我还没有测试过~
它似乎工作正常,事件日期也是发生错误的时间。
// service-worker.js
import { registerRoute } from 'workbox-routing'
import { NetworkOnly } from 'workbox-strategies'
import { BackgroundSyncPlugin } from 'workbox-background-sync'
registerRoute(
new RegExp('^https://[^\\.]+\\.ingest\\.sentry\\.io/api/.*$'),
new NetworkOnly({
plugins: [
new BackgroundSyncPlugin('project-name/sentry-event-queue', {
maxRetentionTime: 7 * 24 * 60, // 7 days
})
],
}),
'POST'
)
嗨,很高兴看到drastically reduce overall bundle size
的计划。 我们有一个 gatsby+preact 项目,并且 sentry 占据了我们主要包大小的约 28%(95kb 中的 27kb)。 我们正在尝试将我们的每页 js 包控制在 90kb 以下,以便我们的应用程序可以在连接不良的农村地区表现更好。 一个非常小的哨兵 SDK 大小将有很大帮助。
为什么不放弃对 IE11 的支持呢? 包括 Microsoft 在内的许多大型网站将在今年年底结束对这款浏览器的支持。 当然,问题是这是否真的会影响图书馆的规模。
@kamilogorek知道 v6 何时到来?
我也同意@xr0master 的观点,认为应该完全放弃对 IE 的支持,包括新版本中的 IE11。
使用 SDK 时最大的痛点是什么?
// This is not nice, as it doesn't get auto-completion when importing
import * as Sentry from '@sentry/browser'
// This is better, but has given me problems on Sentry 5.x
import { captureException } from '@sentry/browser'
console.log
似乎都源自instruments.js:1
,这在调试过程中没有帮助。 由于console.trace
太过分了,我最终在console.log
手动编写面包屑以获取有关当前记录的信息。您最缺少哪些功能?
支持健康。
是否有计划在支持它的 Node 版本上使用 AsyncLocalStorage?
所以我们今天发布了6.0.0
,除了默认发送会话数据之外没有什么大的变化。 抄送@OmgImAlexis
我将此问题的标题更改为 v7,它应该更好地反映这一点。
将框架集成与Sentry.init
分开公开会很棒。 这将解决 #3232 ,其中 Vue 被延迟加载,因此不能保证在哨兵初始化时存在。 像Sentry.configureVue(Vue)
这样的东西可以在 Vue 加载时调用。
react-router 集成支持在同一个文档中加载和卸载辅助反应应用程序,使用延迟调用,使用它自己的路由器和更具体的路由
最有用的评论
对我来说,
drastically reduce overall bundle size
目标也是最重要的目标。