11 releases
0.0.3-alpha.1 | Jun 5, 2024 |
---|---|
0.0.2-alpha.1 | Oct 16, 2023 |
0.0.1-alpha.11 | Aug 4, 2023 |
0.0.1-alpha.9 | Jul 31, 2023 |
#291 in Development tools
2,209 downloads per month
Used in 3 crates
(2 directly)
84KB
2K
SLoC
High-level Rust integration of opentelemetry metrics and InfluxDB.
Examples
Easy, zero-configuration InfluxDB as a child process
let tmp = tempfile::tempdir().unwrap();
// create our meter provider
let (_influxive, meter_provider) = influxive::influxive_child_process_meter_provider(
influxive::InfluxiveChildSvcConfig::default()
.with_database_path(Some(tmp.path().to_owned())),
influxive::InfluxiveMeterProviderConfig::default(),
).await.unwrap();
// register our meter provider
opentelemetry_api::global::set_meter_provider(meter_provider);
// create a metric
let m = opentelemetry_api::global::meter("my.meter")
.f64_histogram("my.metric")
.init();
// make a recording
m.record(3.14, &[]);
Connecting to an already running InfluxDB system process
// create our meter provider
let meter_provider = influxive::influxive_external_meter_provider_token_auth(
influxive::InfluxiveWriterConfig::default(),
influxive::InfluxiveMeterProviderConfig::default(),
"http://127.0.0.1:8086",
"my.bucket",
"my.token",
);
// register our meter provider
opentelemetry_api::global::set_meter_provider(meter_provider);
// create a metric
let m = opentelemetry_api::global::meter("my.meter")
.f64_histogram("my.metric")
.init();
// make a recording
m.record(3.14, &[]);
Dependencies
~10–22MB
~315K SLoC