Crates.io | influxive |
lib.rs | influxive |
version | 0.0.5 |
created_at | 2023-07-20 21:37:54.604839+00 |
updated_at | 2025-08-12 12:51:35.334546+00 |
description | High-level Rust integration of opentelemetry metrics and InfluxDB |
homepage | |
repository | https://github.com/holochain/influxive |
max_upload_size | |
id | 921787 |
size | 79,326 |
High-level Rust integration of opentelemetry metrics and InfluxDB.
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, &[]);
// 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, &[]);
// create our meter provider
let meter_provider = influxive::influxive_file_meter_provider(
influxive::InfluxiveWriterConfig::create_with_influx_file(std::path::PathBuf::from("my-metrics.influx")),
influxive::InfluxiveMeterProviderConfig::default(),
);
// 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, &[]);
// Read and use data in "my-metrics.influx"