Crates.io | nr-tracing-layer |
lib.rs | nr-tracing-layer |
version | 0.5.0 |
source | src |
created_at | 2024-10-12 16:21:51.000969 |
updated_at | 2024-11-23 21:20:31.931402 |
description | Send your logs to New Relic |
homepage | |
repository | https://github.com/robertohuertasm/log-tracing-layer |
max_upload_size | |
id | 1406630 |
size | 20,169 |
A tracing layer that sends logs to the New Relic Log API.
You'll need a New Relic API Key for everything to work.
By default, will try to send the logs to the US1
region.
You can easily change the region or provide a custom URL if needed.
Here's a simple example of how to set it up and use it:
use nr_tracing_layer::NewRelicOptions;
use tracing_subscriber::prelude::*;
use tracing::{instrument, subscriber}
#[instrument]
fn log(msg: &'static str) {
tracing::info!("your message: {}", msg);
}
fn main() {
let options = NewRelicOptions::new("my-service", "my-new-relic-api-key")
.with_tags("env:dev");
let dd = nr_tracing_layer::create(options);
let subscriber = tracing_subscriber::registry()
.with(tracing_subscriber::fmt::Layer::new().json())
.with(dd);
let _s = subscriber::set_default(subscriber);
log("hello world!");
}
The layer will send the logs either 5 seconds after the last log is received or when the buffer arrives to 1000 logs. This is basically due to a limitation in the Datadog API.