public interface MetricsRegistry
Probe
instances. A probe is registered under a certain name,
and can be read by creating a Gauge, see newLongGauge(String)
.
This name can be any string, e.g.:
Modifier and Type | Method and Description |
---|---|
void |
collectMetrics(Object... objects)
For each object that implements
MetricsProvider the MetricsProvider.provideMetrics(MetricsRegistry)
is called. |
<S> void |
deregister(S source)
Deregisters all probes for a given source object.
|
void |
discardMetrics(Object... objects)
For each object that implements
DiscardableMetricsProvider the
DiscardableMetricsProvider.discardMetrics(MetricsRegistry) is called. |
Set<String> |
getNames()
Gets a set of all current probe names.
|
ProbeLevel |
minimumLevel()
Returns the minimum ProbeLevel this MetricsRegistry is recording.
|
DoubleGauge |
newDoubleGauge(String name)
Creates a
DoubleGauge for a given metric name. |
LongGauge |
newLongGauge(String name)
Creates a
LongGauge for a given metric name. |
<S> void |
register(S source,
String name,
ProbeLevel level,
DoubleProbeFunction<S> probe)
Registers a probe
If a probe for the given name exists, it will be overwritten.
|
<S> void |
register(S source,
String name,
ProbeLevel level,
LongProbeFunction<S> probe)
Registers a probe.
|
void |
render(ProbeRenderer renderer)
Renders the content of the MetricsRegistry.
|
<S> void |
scanAndRegister(S source,
String namePrefix)
Scans the source object for any fields/methods that have been annotated with
Probe annotation, and
registering these fields/methods as probes instances. |
void |
scheduleAtFixedRate(Runnable publisher,
long period,
TimeUnit timeUnit)
Schedules a publisher to be executed at a fixed rate.
|
ProbeLevel minimumLevel()
LongGauge newLongGauge(String name)
LongGauge
for a given metric name.
If no gauge exists for the name, it will be created but no probe is set. The reason to do so is that you don't want to
depend on the order of registration. Perhaps you want to read out e.g. operations.count gauge, but the OperationService
has not started yet and the metric is not yet available. Another cause is that perhaps a probe is not registered, but
the metric is created. For example when experimenting with a new implementation, e.g. a new OperationService
implementation, that doesn't provide the operation.count probe.
Multiple calls with the same name, return different Gauge instances; so the Gauge instance is not cached. This is
done to prevent memory leaks.name
- the name of the metric.NullPointerException
- if name is null.DoubleGauge newDoubleGauge(String name)
DoubleGauge
for a given metric name.name
- name of the metricNullPointerException
- if name is null.newLongGauge(String)
Set<String> getNames()
<S> void scanAndRegister(S source, String namePrefix)
Probe
annotation, and
registering these fields/methods as probes instances.
If a probe is called, 'queueSize' and the namePrefix is 'operations, then the name of the probe-instance
is 'operations.queueSize'.
If probes with the same name already exist, then the probes are replaced.
If an object has no @Gauge annotations, the call is ignored.source
- the object to scan.namePrefix
- the name prefix.NullPointerException
- if namePrefix or source is null.IllegalArgumentException
- if the source contains Gauge annotation on a field/method of unsupported type.<S> void register(S source, String name, ProbeLevel level, LongProbeFunction<S> probe)
name
- the name of the probe.level
- the ProbeLevelprobe
- the probeNullPointerException
- if source, name, level or probe is null.<S> void register(S source, String name, ProbeLevel level, DoubleProbeFunction<S> probe)
name
- the name of the probelevel
- the ProbeLevelprobe
- the probeNullPointerException
- if source, name, level or probe is null.<S> void deregister(S source)
source
- the object to deregister. If called with null, then ignored.void scheduleAtFixedRate(Runnable publisher, long period, TimeUnit timeUnit)
publisher
- the published task that needs to be executedperiod
- the time between executionstimeUnit
- the timeunit for periodNullPointerException
- if publisher or timeUnit is null.void render(ProbeRenderer renderer)
renderer
- the ProbeRendererNullPointerException
- if renderer is null.void collectMetrics(Object... objects)
MetricsProvider
the MetricsProvider.provideMetrics(MetricsRegistry)
is called.objects
- the array of objects to initialize.void discardMetrics(Object... objects)
DiscardableMetricsProvider
the
DiscardableMetricsProvider.discardMetrics(MetricsRegistry)
is called.objects
- the array of objects to check.Copyright © 2018 Hazelcast, Inc.. All Rights Reserved.