0

I have an incoming event (to a spring boot application)in json format that contains a field called "component". I need to create a metrics counter and push to prometheus pushgateway per-component. There should be individual counters for every type of component. How to achieve this?

Rahul Kumar
  • 87
  • 1
  • 12

1 Answers1

0

You can implement component for that. Autowire MeterRegistry

private MeterRegistry registry;

And put map of counters inside.

private Map<String, Counter> counters = new ConcurrentHashMap<>();

add method:

public void increment(String componentName){
  Counter counter = counters.get(componentName);
  if(counter == null) {
    counter = Counter.builder("your.metrics.name").tags("component", componentName).register(registry);
    counters.put(tagValue, counter);
  }
  counter.increment();
}