17 个重大版本
0.18.0 | 2024年7月2日 |
---|---|
0.17.0 | 2023年11月28日 |
0.16.0 | 2023年11月19日 |
0.15.0 | 2023年2月25日 |
0.1.0 | 2019年11月24日 |
#945 in 网络编程
每月 71 次下载
26KB
295 行
Rocket Sentry
rocket-sentry
是一个简单的 Rocket 网络框架插件,用于简化与 Sentry 应用程序监控系统集成的过程。
或者...
"Rocket Sentry 是一种基于个性构建的静态火箭发射枪平台,用于 Aperture Science 充实中心。"
-- 半条命维基百科
功能
目前 rocket-sentry
包含以下两个集成
-
Rust 崩溃处理器:当发生崩溃时,它作为 Sentry 事件报告。
-
性能监控:如果配置了
sentry_traces_sample_rate
设置或提供了traces_sampler
回调(请参阅下面的示例),HTTP 请求会被报告为 事务。事务当前包含以下字段
- HTTP 方法
- GET 查询字符串
- 头部信息
- POST 数据
- cookies
- 环境变量
- URL
欢迎 Pull requests!
使用方法
rocket-sentry
可以通过 Rocket.toml
(sentry_dsn=
) 或环境变量 ROCKET_SENTRY_DSN
进行配置。
要使用它,请将依赖项添加到您的 Cargo.toml
,并将公平带到您的代码中
use rocket_sentry::RocketSentry;
#[launch]
fn rocket() -> _ {
rocket::build()
.attach(RocketSentry::fairing())
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ add this line
}
然后,可以通过在 Rocket.toml
文件中添加 sentry_dsn=
值来启用 Sentry 集成,例如
[debug]
sentry_dsn = "" # Disabled
[release]
sentry_dsn = "https://[email protected]/1111111"
sentry_traces_sample_rate = 0.2 # 20% of requests will be logged under the performance tab
性能监控
traces_sampler
可以用来代替 sentry_traces_sample_rate
,以便更精细地控制性能监控,请参阅Sentry文档。
use rocket_sentry::RocketSentry;
#[launch]
fn rocket() -> _ {
let traces_sampler = move |ctx: &TransactionContext| -> f32 {
match ctx.name() {
"GET /specific/path/1" | "GET /specific/path/2" => 0., // Drop the performance transaction
_ => 1.,
}
};
rocket::build()
.attach(RocketSentry::builder().traces_sampler(Arc::new(traces_sampler)).build());
}
查看更高级的示例。
测试
可以使用 examples/panic.rs
示例来测试此功能。只需更改 Rocket.toml
文件并运行...
cargo run --example panic
然后尝试访问此URL:https://127.0.0.1:8012/panic?msg=Is+it+time+to+panic+yet?
依赖项
~17–51MB
~856K SLoC