#性能 #newrelic #api-bindings

newrelic-unofficial

纯 Rust 中的 New Relic 仪表化

4 个版本

0.1.3 2020 年 8 月 16 日
0.1.2 2020 年 8 月 10 日
0.1.1 2020 年 8 月 10 日
0.1.0 2020 年 8 月 8 日

#223 in 性能分析

每月 26 次下载

Apache-2.0

85KB
2K SLoC

newrelic-unofficial-rust

这是将 New Relic Go agent 不官方移植到 Rust 的。

与基于 C sdk 的版本不同,它完全线程安全且独立工作。

状态

  • Web 事务
  • 非 Web 事务
  • 跟踪事务中的线程
  • 错误报告
  • 事务采样
  • Apdex

由于 New Relic 服务器(当然)没有对 Rust 的支持,该库会将自己报告为 Go。

使用方法

应用程序设置

// Set up NewRelic in-process daemon (newrelic_unofficial::Daemon).
// Generate Daemon at application startup and keep it until application shutdown.
let license = std::env::var("NEW_RELIC_LICENSE_KEY").unwrap();
let daemon = Daemon::new("rust-test", &license).unwrap();

// Get application handle (newrelic_unofficial::Application) from the daemon.
// Pass it around to record application events.
let app = daemon.application().clone();

事务

// Start a new (non-web) transaction.
// The end of the transaction is automatically recorded on drop.
let txn = app.start_transaction("SomeBackgroundJob");

// Or you can start a web transaction.
let txn = app.start_web_transaction("/upload", http_request);

段:尚未实现

许可证

我认为它是 New Relic Go agent 的移植版,因此(也许)继承了原始源代码的版权。

  • 版权所有 2020 New Relic Corporation。(原始 go-agent)
  • 版权所有 2020 Masaki Hara。

Apache-2.0 许可

依赖项

~4–5.5MB
~137K SLoC