https://github.com/noelware/metrics-exporter-opentelemetry
🐻❄️🎈 A `metrics` exporter over OpenTelemetry
https://github.com/noelware/metrics-exporter-opentelemetry
metrics metrics-rs opentelemetry opentelemetry-rust rust rustlang
Last synced: 3 months ago
JSON representation
🐻❄️🎈 A `metrics` exporter over OpenTelemetry
- Host: GitHub
- URL: https://github.com/noelware/metrics-exporter-opentelemetry
- Owner: Noelware
- License: mit
- Created: 2025-03-07T06:28:07.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-03-07T08:59:01.000Z (3 months ago)
- Last Synced: 2025-03-07T09:01:41.612Z (3 months ago)
- Topics: metrics, metrics-rs, opentelemetry, opentelemetry-rust, rust, rustlang
- Language: Rust
- Homepage: https://crates.io/crates/metrics-exporter-opentelemetry
- Size: 13.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
### 🐻❄️🎈 `metrics-exporter-opentelemetry`
#### *A [`metrics`] exporter over OpenTelemetry*The **metrics-exporter-opentelemetry** crate is a [`metrics`] exporter over OpenTelemetry's **metrics** API.
## Warnings
- The crate doesn't support the following methods from [`metrics`]:
- [`Counter::absolute`](https://docs.rs/metrics/latest/metrics/struct.Counter.html#method.absolute) - OpenTelemetry doesn't keep track of the value inside of a counter.- [`Gauge::increment`](https://docs.rs/metrics/latest/metrics/struct.Gauge.html#method.increment), [`Gauge::decrement`](https://docs.rs/metrics/latest/metrics/struct.Gauge.html#method.decrement) - OpenTelemetry doesn't keep track of the value inside of a gauge.
- [`Histogram::record_many`](https://docs.rs/metrics/latest/metrics/struct.Histogram.html#method.record_many) - OpenTelemetry doesn't support recording multiple histogram points.
- The crate provide no-op implementations of the `metrics::Recorder::describe_*` as we can't modify a constructed counter/gauge/histogram from `metrics::Recorder::register_*`. The SDK keeps track of it but is internal and isn't able to be accessed.
## Usage
```rust
// Cargo.toml:
//
// [dependencies]
// metrics = "^0"
// metrics-exporter-opentelemetry = "^0"use metrics_exporter_opentelemetry::Recorder;
fn main() {
// Install a global `metrics` recorder
let _ = Recorder::builder("my-app")
.install_global()
.unwrap();let counter = metrics::counter!("hello.world");
counter.increment(1);
}
```## License
**metrics-exporter-opentelemetry** is released under the **MIT License** with love, care, and **Dr. Pepper**. This is a call of help, I am too addicted to Dr. Pepper at this rate.[`metrics`]: https://crates.io/crates/metrics