4 releases
0.1.3 | Aug 16, 2020 |
---|---|
0.1.2 | Aug 10, 2020 |
0.1.1 | Aug 10, 2020 |
0.1.0 | Aug 8, 2020 |
#251 in Profiling
26 downloads per month
85KB
2K
SLoC
newrelic-unofficial-rust
It's an unofficial port of the New Relic Go agent to Rust.
Unlike the one based on the C sdk, it is completely thread-safe and works alone.
Status
- Web transactions
- Non-web transactions
- Tracking threads in transactions
- Segments
- Error reporting
- Transaction sampling
- Apdex
The library reports itself as Go because the New Relic server (of course) doesn't have a support for Rust.
Usage
Application setup:
// 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();
Transaction:
// 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);
Segment: not yet implemented
License
I consider it a port of the New Relic Go agent, therefore (perhaps) inheriting copyrights from the original source code.
- Copyright 2020 New Relic Corporation. (for the original go-agent)
- Copyright 2020 Masaki Hara.
Licensed under Apache-2.0
Dependencies
~4.5–7MB
~128K SLoC