Class PrometheusCounters

java.lang.Object
org.pipservices4.observability.count.CachedCounters
org.pipservices4.prometheus.count.PrometheusCounters
All Implemented Interfaces:
org.pipservices4.components.config.IConfigurable, org.pipservices4.components.config.IReconfigurable, org.pipservices4.components.refer.IReferenceable, org.pipservices4.components.run.IClosable, org.pipservices4.components.run.IOpenable, org.pipservices4.observability.count.ICounters, org.pipservices4.observability.count.ICounterTimingCallback

public class PrometheusCounters extends org.pipservices4.observability.count.CachedCounters implements org.pipservices4.components.refer.IReferenceable, org.pipservices4.components.run.IOpenable, org.pipservices4.components.config.IConfigurable
Performance counters that send their metrics to Prometheus controller.

The component is normally used in passive mode conjunction with PrometheusMetricsController. Alternatively when connection parameters are set it can push metrics to Prometheus PushGateway.

### Configuration parameters ###

  • connection(s):
    • discovery_key: (optional) a key to retrieve the connection from IDiscovery
    • protocol: connection protocol: http or https
    • host: host name or IP address
    • port: port number
    • uri: resource URI or connection string with all parameters in it
  • options:
    • retries: number of retries (default: 3)
    • connect_timeout: connection timeout in milliseconds (default: 10 sec)
    • timeout: invocation timeout in milliseconds (default: 10 sec)

### References ###

  • *:logger:*:*:1.0 (optional) ILogger components to pass log messages
  • *:counters:*:*:1.0 (optional) ICounters components to pass collected measurements
  • *:discovery:*:*:1.0 (optional) IDiscovery services to resolve connection

### Example ###

var counters = new PrometheusCounters(); counters.configure(ConfigParams.fromTuples( "connection.protocol", "http", "connection.host", "localhost", "connection.port", 8080 ));

counters.open("123");

counters.increment("mycomponent.mymethod.calls"); var timing = counters.beginTiming("mycomponent.mymethod.exec_time"); try { ... } finally { timing.endTiming(); }

counters.dump();

  • Field Summary

    Fields inherited from class org.pipservices4.observability.count.CachedCounters

    _lastResetTime, _resetTimeout
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    close(org.pipservices4.components.context.IContext context)
    Closes component and frees used resources.
    void
    configure(org.pipservices4.components.config.ConfigParams config)
    Configures component by passing configuration parameters.
    boolean
    Checks if the component is opened.
    void
    open(org.pipservices4.components.context.IContext context)
    Opens the component.
    protected void
    save(List<org.pipservices4.observability.count.Counter> counters)
    Saves the current counters measurements.
    void
    setReferences(org.pipservices4.components.refer.IReferences references)
    Sets references to dependent components.

    Methods inherited from class org.pipservices4.observability.count.CachedCounters

    beginTiming, clear, clearAll, dump, endTiming, get, getAll, getInterval, increment, incrementOne, last, setInterval, stats, timestamp, timestampNow, update

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PrometheusCounters

      public PrometheusCounters()
  • Method Details

    • configure

      public void configure(org.pipservices4.components.config.ConfigParams config)
      Configures component by passing configuration parameters.
      Specified by:
      configure in interface org.pipservices4.components.config.IConfigurable
      Overrides:
      configure in class org.pipservices4.observability.count.CachedCounters
      Parameters:
      config - configuration parameters to be set.
    • setReferences

      public void setReferences(org.pipservices4.components.refer.IReferences references)
      Sets references to dependent components.
      Specified by:
      setReferences in interface org.pipservices4.components.refer.IReferenceable
      Parameters:
      references - references to locate the component dependencies.
    • isOpen

      public boolean isOpen()
      Checks if the component is opened.
      Specified by:
      isOpen in interface org.pipservices4.components.run.IOpenable
      Returns:
      true if the component has been opened and false otherwise.
    • open

      public void open(org.pipservices4.components.context.IContext context)
      Opens the component.
      Specified by:
      open in interface org.pipservices4.components.run.IOpenable
      Parameters:
      context - (optional) a context to trace execution through call chain.
    • close

      public void close(org.pipservices4.components.context.IContext context)
      Closes component and frees used resources.
      Specified by:
      close in interface org.pipservices4.components.run.IClosable
      Parameters:
      context - (optional) a context to trace execution through call chain.
    • save

      protected void save(List<org.pipservices4.observability.count.Counter> counters)
      Saves the current counters measurements.
      Specified by:
      save in class org.pipservices4.observability.count.CachedCounters
      Parameters:
      counters - current counters measurements to be saves.