Interface MetricConsumer


  • public interface MetricConsumer

    This interface defines the consumer counterpart of the Metric interface. All Metric objects contain their own thread local instance of this interface, so most implementations will require a registry of sorts to manage the aggregation of state across MetricConsumers.

    An Application needs to bind a Provider of this interface to an implementation, or else all calls to the Metric objects become no-ops. An implementation will look similar to:

     private final MyMetricRegistry myMetricRegistry = new MyMetricRegistry();
     void createContainer() {
         ContainerBuilder builder = containerActivator.newContainerBuilder();
         builder.guice().install(new MyGuiceModule());
         (...)
     }
     class MyGuiceModule extends com.google.inject.AbstractModule {
         void configure() {
             bind(MetricConsumer.class).toProvider(myMetricRegistry);
             (...)
         }
     }
     class MyMetricRegistry implements com.google.inject.Provider<MetricConsumer> {
         (...)
     }
     
    Author:
    Simon Thoresen Hult
    • Method Detail

      • set

        void set​(String key,
                 Number val,
                 Metric.Context ctx)
        Consume a call to Metric.set(String, Number, Metric.Context).
        Parameters:
        key - the name of the metric to modify
        val - the value to assign to the named metric
        ctx - the context to further describe this entry
      • add

        void add​(String key,
                 Number val,
                 Metric.Context ctx)
        Consume a call to Metric.add(String, Number, Metric.Context).
        Parameters:
        key - the name of the metric to modify
        val - the value to add to the named metric
        ctx - the context to further describe this entry
      • createContext

        Metric.Context createContext​(Map<String,​?> properties)
        Creates a Metric.Context object that encapsulates the given properties. The returned Context object will be passed along every future call to set(String, Number, Metric.Context) and add(String, Number, Metric.Context) where the properties match those given here.
        Parameters:
        properties - the properties to incorporate in the context
        Returns:
        the created context