nom-openmetrics

Crates.ionom-openmetrics
lib.rsnom-openmetrics
version0.2.0
created_at2025-02-16 19:35:36.88483+00
updated_at2025-05-01 19:17:29.56563+00
descriptionA prometheus and openmetrics parser
homepage
repositoryhttps://github.com/drbrain/nom-openmetrics
max_upload_size
id1558072
size46,300
Eric Hodel (drbrain)

documentation

https://docs.rs/nom-openmetrics

README

A Prometheus and OpenMetrics parser

The nom-openmetrics crate supports Prometheus and OpenMetrics metrics exposition formats, but does not validate either format.

use nom_openmetrics::parser::prometheus;

let input = "";

let (_remaining, output) = prometheus(&input).unwrap();

println!("{output:?}");

Outputs:

[
    Family {
        descriptors: [
            Help {
                metric: "adsb_aircraft_observed_recent",
                help: "Number of aircraft observed in the last minute",
            },
            Type {
                metric: "adsb_aircraft_observed_recent",
                type: Gauge,
            },
        ],
        samples: [
            Sample {
                name: "adsb_aircraft_observed_recent",
                labels: [
                    Label {
                        name: "frequency",
                        value: "1090",
                    },
                ],
                number: 37.0,
            },
            Sample {
                name: "adsb_aircraft_observed_recent",
                labels: [
                    Label {
                        name: "frequency",
                        value: "978",
                    },
                ],
                number: 1.0,
            },
        ],
    },
]

Only a complete nom parser is implemented

Commit count: 36

cargo fmt