use std::collections::HashMap;use substreams::prelude::*;use substreams::errors::Error;use substreams_sink_prometheus::{PrometheusOperations, Counter, Gauge};#[substreams::handlers::map]fnprom_out(... some stores ...) ->Result<PrometheusOperations, Error> {// Initialize Prometheus Operations containerletmut prom_ops:PrometheusOperations=Default::default();// Counter Metric// ==============// Initialize Gauge with a name & labelsletmut counter =Counter::from("counter_name");// Increments the Counter by 1. prom_ops.push(counter.inc());// Adds an arbitrary value to a Counter. (Returns an error if the value is < 0.) prom_ops.push(counter.add(123.456));// Labels// ======// Create a HashMap of labels// Labels represents a collection of label name -> value mappings. let labels1 =HashMap::from([("label1".to_string(), "value1".to_string())]);letmut labels2 =HashMap::new(); labels2.insert("label2".to_string(), "value2".to_string());// Gauge Metric// ============// Initialize Gaugeletmut gauge =Gauge::from("gauge_name").with(labels1);// Sets the Gauge to an arbitrary value. prom_ops.push(gauge.set(88.8));// Increments the Gauge by 1. prom_ops.push(gauge.inc());// Decrements the Gauge by 1. prom_ops.push(gauge.dec());// Adds an arbitrary value to a Gauge. (The value can be negative, resulting in a rease of the Gauge.) prom_ops.push(gauge.add(50.0)); prom_ops.push(gauge.add(-10.0));// Subtracts arbitrary value from the Gauge. (The value can be negative, resulting in an rease of the Gauge.) prom_ops.push(gauge.sub(25.0)); prom_ops.push(gauge.sub(-5.0));// Set Gauge to the current Unix time in seconds. prom_ops.push(gauge.set_to_current_time());// Remove metrics for the given label values prom_ops.push(gauge.remove(labels2));// Reset gauge values prom_ops.push(gauge.reset());Ok(prom_ops)}