PrometheusCounters class

Performance counters that send their metrics to Prometheus service.

The component is normally used in passive mode conjunction with PrometheusMetricsService. 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

See RestService See CommandableHttpService

Example

var counters =  PrometheusCounters();
counters.configure(ConfigParams.fromTuples([
    'connection.protocol', 'http',
    'connection.host', 'localhost',
    'connection.port', 8080
]));

await counters.open('123')
    ...

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

counters.dump();

Constructors

PrometheusCounters()
Creates a new instance of the performance counters.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

beginTiming(String name) → CounterTiming
Begins measurement of execution time interval. It returns CounterTiming object which has to be called at CounterTiming.endTiming to end the measurement and update the counter.
inherited
clear(String name) → void
Clears (resets) a counter specified by its name.
inherited
clearAll() → void
Clears (resets) all counters.
inherited
close(String? correlationId) Future
Closes component and frees used resources.
configure(ConfigParams config) → void
Configures component by passing configuration parameters.
dump() → void
Dumps (saves) the current values of counters.
inherited
endTiming(String? name, int elapsed) → void
Ends measurement of execution elapsed time and updates specified counter.
inherited
get(String? name, CounterType type) → Counter
Gets a counter specified by its name. It counter does not exist or its type doesn't match the specified type it creates a new one.
inherited
getAll() List<Counter>
Gets all captured counters.
inherited
getInterval() int
Gets the counters dump/save interval.
inherited
increment(String name, int value) → void
Increments counter by given value.
inherited
incrementOne(String name) → void
Increments counter by 1.
inherited
isOpen() bool
Checks if the component is opened.
last(String name, int value) → void
Records the last calculated measurement value.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
open(String? correlationId) Future
Opens the component.
save(List<Counter> counters) Future
Saves the current counters measurements.
setInterval(int value) → void
Sets the counters dump/save interval.
inherited
setReferences(IReferences references) → void
Sets references to dependent components.
stats(String name, int value) → void
Calculates min/average/max statistics based on the current and previous values.
inherited
timestamp(String name, DateTime value) → void
Records the given timestamp.
inherited
timestampNow(String name) → void
Records the current time as a timestamp.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited