High-level Rust integration of opentelemetry metrics and InfluxDB.
Examples
Easy, zero-configuration InfluxDB as a child process
let tmp = tempdir.unwrap;
// create our meter provider
let = influxive_child_process_meter_provider.await.unwrap;
// register our meter provider
set_meter_provider;
// create a metric
let m = meter
.f64_histogram
.init;
// make a recording
m.record;
Connecting to an already running InfluxDB system process
// create our meter provider
let meter_provider = influxive_external_meter_provider_token_auth;
// register our meter provider
set_meter_provider;
// create a metric
let m = meter
.f64_histogram
.init;
// make a recording
m.record;
Writing to an influx file
// create our meter provider
let meter_provider = influxive_file_meter_provider;
// register our meter provider
set_meter_provider;
// create a metric
let m = meter
.f64_histogram
.init;
// make a recording
m.record;
// Read and use data in "my-metrics.influx"
Core types for influxive crates. The main point of this crate is to expose
the [MetricWriter] trait to be used by downstream influxive crates.
Example [Metric] type creation:
let _metric = new
.with_field
.with_field
.with_field
.with_field
.with_field
.with_tag
.with_tag
.with_tag
.with_tag
.with_tag;
Run influxd as a child process.
Example
use Metric;
use *;
let tmp = tempdir.unwrap;
let influxive = new.await.unwrap;
influxive.write_metric;
Influxive system download utility.
Download influxive DB binary if not present in PATH.
Opentelemetry metrics bindings for influxive-child-svc.
Example
use *;
use Arc;
// create an influxive writer
let writer = with_token_auth;
// register the meter provider
set_meter_provider;
// create a metric
let m = meter
.f64_histogram
.init;
// make a recording
m.record;
Writer
Rust utility for efficiently writing metrics to InfluxDB. Metrics can be written directly to a running InfluxDB instance or written to a Line Protocol file on disk that can be pushed to InfluxDB using Telegraf.
Example
Writing to a running InfluxDB instance
use Metric;
use *;
let writer = with_token_auth;
writer.write_metric;
Writing to a file on disk
use Metric;
use *;
let path = from;
let config = create_with_influx_file;
// The file backend ignores host/bucket/token
let writer = with_token_auth;
writer.write_metric;
// Now you can read and use the metrics file `my-metrics.influx`