Project Forum Chat

License: MIT License: Apache-2.0

High-level Rust integration of opentelemetry metrics and InfluxDB.

Examples

Easy, zero-configuration InfluxDB as a child process

```rust let tmp = tempfile::tempdir().unwrap();

// create our meter provider let (influxive, meterprovider) = influxive::influxivechildprocessmeterprovider( influxive::InfluxiveChildSvcConfig { databasepath: Some(tmp.path().toowned()), ..Default::default() }, ).await.unwrap();

// register our meter provider opentelemetryapi::global::setmeterprovider(meterprovider);

// create a metric let m = opentelemetryapi::global::meter("my.meter") .f64histogram("my.metric") .init();

// make a recording m.record(&opentelemetry_api::Context::new(), 3.14, &[]); ```

Connecting to an already running InfluxDB system process

```rust // create our meter provider let meterprovider = influxive::influxiveexternalmeterprovidertokenauth( influxive::InfluxiveWriterConfig::default(), "http://127.0.0.1:8086", "my.bucket", "my.token", );

// register our meter provider opentelemetryapi::global::setmeterprovider(meterprovider);

// create a metric let m = opentelemetryapi::global::meter("my.meter") .f64histogram("my.metric") .init();

// make a recording m.record(&opentelemetry_api::Context::new(), 3.14, &[]); ```