Scans the source object for any fields/methods that have been annotated with 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
If probes with the same name already exist, then the probes are replaced.
If an object has no @Gauge annotations, the call is ignored.
Creates a 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.
Schedules a publisher to be executed at a fixed rate.
Probably this method will be removed in the future, but we need a mechanism for complex gauges that require some
calculation to provide their values.