5 个稳定版本
2.1.0 | 2022年6月8日 |
---|---|
2.0.0 | 2020年10月20日 |
1.0.2 | 2020年2月22日 |
1.0.1 | 2019年4月13日 |
1.0.0 | 2019年2月1日 |
#2359 在 命令行工具
每月 25 次下载
14KB
207 行
Sentry Process
将失败的过程/脚本报告给 Sentry。
⚠️ 主仓库在此: https://gitlab.com/dsferruzza/sentry-process ⚠️
动机
Sentry 是一个很酷的系统,帮助开发者收集、监控和修复他们自己的应用程序中的错误/异常。它为许多技术提供了集成,以便报告的错误可以包含相关信息。
但有时将 Sentry 连接到任意进程可能是可取的。这样的进程可以是未提供 Sentry 支持的二进制文件,或者例如每晚在服务器上运行的 Bash 脚本。
使用 Sentry Process,现在可以轻松启动一个进程,该进程会在失败时向 Sentry 实例发送事件!
如何使用
- 编译或安装项目
- 设置
SENTRY_DSN
环境变量(使用 Sentry 中您的项目 > 设置 > 客户端密钥 (DSN)
中提供的 URL) - 运行
sentry-process COMMAND [ARGUMENTS]...
(像使用sudo
一样包装您的进程调用)
如果运行 COMMAND [ARGUMENTS]...
的结果是退出代码不是 0
,Sentry Process 会将其视为失败并报告。例如,sentry-process false
会报告,而 sentry-process true
则不会。
命令 COMMAND [ARGUMENTS]...
的退出码、标准输出和标准错误会被 sentry-process COMMAND [ARGUMENTS]...
重新发射,以便可以将其管道传输或供其他程序使用。实际上,标准输出和标准错误是流式的,所以你可以运行(例如)sentry-process wget https://somebigfileurl
,看到进度就像你直接运行 wget https://somebigfileurl
一样。
Rust 版本要求
Sentry 进程需要 Rust 1.54+ 版本进行编译。
限制
- 你想要运行的进程最终必须终止。对于像服务器这样的设计为永远不会死亡的进程,使用 Sentry 进程可能没有意义。
- 你将 不会 获得关于 什么 失败的很多细节(即没有堆栈跟踪)。这是这里的权衡。
- Sentry 进程会将你想要运行的进程的标准输出(
stdout
)和标准错误(stderr
)发送到你的 Sentry 实例(如果它失败)。如果你的 Sentry 实例会拒绝大于 200 kB 的数据报告(请参阅 Sentry 的文档),因此 Sentry 进程使用环形缓冲区以确保不会达到此限制,并且最新的输出会与报告一起发送。
许可证
MIT 许可证 版权所有 (c) 2019 David Sferruzza
依赖
~12–29MB
~422K SLoC