All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.orientechnologies.agent.profiler.OMetricsRegistry Maven / Gradle / Ivy

package com.orientechnologies.agent.profiler;

import com.orientechnologies.agent.profiler.metrics.*;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;
import java.util.SortedMap;
import java.util.function.BiFunction;
import java.util.function.Supplier;

/** Created by Enrico Risa on 09/07/2018. */
public interface OMetricsRegistry {

  default String name(String name, String... names) {
    return name.join(".", names);
  }

  default String name(Class klass, String... names) {
    return klass.getName().join(".", names);
  }

  OCounter counter(String name, String description);

  OMeter meter(String name, String description);

  OMeter meter(String name, String description, String unitOfMeasure);

   OGauge gauge(String name, String description, Supplier valueFunction);

   OGauge gauge(
      String name, String description, String unitOfMeasure, Supplier valueFunction);

   OGauge newGauge(String name, String description, Supplier valueFunction);

   OGauge newGauge(
      String name, String description, String unitOfMeasure, Supplier valueFunction);

  OHistogram histogram(String name, String description);

  OTimer timer(String name, String description);

  Map getMetrics();

   T register(String name, String description, Class klass);

   T register(String name, T metric);

  void registerAll(OMetricSet metricSet);

  void registerAll(String prefix, OMetricSet metricSet);

  SortedMap getHistograms(BiFunction filter);

  boolean remove(String name);

  void toJSON(OutputStream outputStream) throws IOException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy