#text-format #prometheus #metrics #print #label #exposition #scrape

prom_text_format_parser

A crate to parse and print Prometheus exposition text format

1 unstable release

0.1.0 Dec 28, 2023

#2288 in Parser implementations

MIT/Apache

56KB
1.5K SLoC

GitHub Workflow Status (with event) docs.rs Crates.io Codecov Crates.io

This is a parser and printer for the Prometheus exposition text format.

See here for a detailed description of the format.

Usage example:

    let path = std::env::args().nth(1).expect("A path to scrape text");
    let text = std::fs::read_to_string(path).expect("file read");
    let mut scrape = Scrape::parse(&text).expect("valid scrape");

    // Add a label to all metrics
    scrape.add_label("source", "invalid");
    // Remove a label from all metrics
    scrape.remove_label("source", "invalid");

    // format the scrape in the Prometheus exposition text format
    let rendered = format!("{scrape}");
    assert_eq!(text, rendered);

Dependencies

~1.2–1.7MB
~36K SLoC