Rust client library implementation of the Open Metrics specification. Allows developers to instrument applications and thus enables operators to monitor said applications with monitoring systems like Prometheus.
Documentation: https://docs.rs/prometheus-client/
-
No
unsafe
. Don't use unsafe Rust within the library itself. -
Type safe. Leverage Rust's type system to catch common instrumentation mistakes at compile time.
-
Fast. Don't force users to worry about the performance impact of instrumentation. Instead encourage users to instrument often and extensively.
Below is a list of properties where this client library implementation lags
behind the Open Metrics specification. Not being compliant with all requirements
(MUST
and MUST NOT
) of the specification is considered a bug and likely to
be fixed in the future. Contributions in all forms are most welcome.
-
State set metric.
-
Enforce "A Histogram MetricPoint MUST contain at least one bucket".
-
Enforce "A MetricFamily MUST have a [...] UNIT metadata".
-
Enforce "MetricFamily names [...] MUST be unique within a MetricSet."
-
Enforce "Names SHOULD be in snake_case".
-
Enforce "MetricFamily names beginning with underscores are RESERVED and MUST NOT be used unless specified by this standard".
-
Enforce "Exposers SHOULD avoid names that could be confused with the suffixes that text format sample metric names use".
-
Protobuf wire format. (Follow spec issue.)
-
Gauge histogram metric.
-
Allow "A MetricPoint in a Metric with the type [Counter, Histogram] SHOULD have a Timestamp value called Created".
-
Summary metric.
- rust-prometheus: See tikv/rust-prometheus/#392 for a high-level comparison.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.