use of com.hazelcast.internal.metrics.DynamicMetricsProvider in project hazelcast by hazelcast.
the class ProcessorTasklet method provideDynamicMetrics.
@Override
public void provideDynamicMetrics(MetricDescriptor descriptor, MetricsCollectionContext mContext) {
descriptor = descriptor.withTag(MetricTags.VERTEX, this.context.vertexName()).withTag(MetricTags.PROCESSOR_TYPE, this.processor.getClass().getSimpleName()).withTag(MetricTags.PROCESSOR, Integer.toString(this.context.globalProcessorIndex()));
if (isSource) {
descriptor = descriptor.withTag(MetricTags.SOURCE, "true");
}
if (outstreams.length == 0) {
descriptor = descriptor.withTag(MetricTags.SINK, "true");
}
for (int i = 0; i < instreams.size(); i++) {
MetricDescriptor descWithOrdinal = descriptor.copy().withTag(MetricTags.ORDINAL, String.valueOf(i));
mContext.collect(descWithOrdinal, RECEIVED_COUNT, ProbeLevel.INFO, ProbeUnit.COUNT, receivedCounts.get(i));
mContext.collect(descWithOrdinal, RECEIVED_BATCHES, ProbeLevel.INFO, ProbeUnit.COUNT, receivedBatches.get(i));
}
for (int i = 0; i < emittedCounts.length() - (this.context.snapshottingEnabled() ? 0 : 1); i++) {
String ordinal = i == emittedCounts.length() - 1 ? "snapshot" : String.valueOf(i);
MetricDescriptor descriptorWithOrdinal = descriptor.copy().withTag(MetricTags.ORDINAL, ordinal);
mContext.collect(descriptorWithOrdinal, EMITTED_COUNT, ProbeLevel.INFO, ProbeUnit.COUNT, emittedCounts.get(i));
}
mContext.collect(descriptor, TOP_OBSERVED_WM, ProbeLevel.INFO, ProbeUnit.MS, watermarkCoalescer.topObservedWm());
mContext.collect(descriptor, COALESCED_WM, ProbeLevel.INFO, ProbeUnit.MS, watermarkCoalescer.coalescedWm());
mContext.collect(descriptor, LAST_FORWARDED_WM, ProbeLevel.INFO, ProbeUnit.MS, outbox.lastForwardedWm());
mContext.collect(descriptor, LAST_FORWARDED_WM_LATENCY, ProbeLevel.INFO, ProbeUnit.MS, lastForwardedWmLatency());
mContext.collect(descriptor, this);
// collect static metrics from processor
mContext.collect(descriptor, this.processor);
// collect dynamic metrics from processor
if (processor instanceof DynamicMetricsProvider) {
((DynamicMetricsProvider) processor).provideDynamicMetrics(descriptor.copy(), mContext);
}
if (context instanceof ProcCtx) {
((ProcCtx) context).metricsContext().provideDynamicMetrics(descriptor, mContext);
}
}
use of com.hazelcast.internal.metrics.DynamicMetricsProvider in project hazelcast by hazelcast.
the class LongGaugeImplTest method whenCacheDynamicMetricValueReplacedWithCachedMetricSource.
@Test
public void whenCacheDynamicMetricValueReplacedWithCachedMetricSource() {
LongGaugeImpl longGauge = metricsRegistry.newLongGauge("foo.longField");
// provide concrete value
DynamicMetricsProvider concreteProvider = (descriptor, context) -> context.collect(descriptor.withPrefix("foo"), "longField", INFO, COUNT, 142);
metricsRegistry.registerDynamicMetricsProvider(concreteProvider);
// needed to collect dynamic metrics and update the gauge created from them
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(142, longGauge.read());
metricsRegistry.deregisterDynamicMetricsProvider(concreteProvider);
// provide metric source to be cached
SomeObject someObject = new SomeObject();
someObject.longField = 42;
metricsRegistry.registerDynamicMetricsProvider(someObject);
// needed to collect dynamic metrics and update the gauge created from them
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(42, longGauge.read());
}
use of com.hazelcast.internal.metrics.DynamicMetricsProvider in project hazelcast by hazelcast.
the class LongGaugeImplTest method whenNotVisitedWithCachedValueReadsDefault.
@Test
public void whenNotVisitedWithCachedValueReadsDefault() {
DynamicMetricsProvider concreteProvider = (descriptor, context) -> context.collect(descriptor.withPrefix("foo"), "longField", INFO, COUNT, 42);
metricsRegistry.registerDynamicMetricsProvider(concreteProvider);
LongGaugeImpl longGauge = metricsRegistry.newLongGauge("foo.longField");
// needed to collect dynamic metrics and update the gauge created from them
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(42, longGauge.read());
// clears the cached metric source
metricsRegistry.deregisterDynamicMetricsProvider(concreteProvider);
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(LongGaugeImpl.DEFAULT_VALUE, longGauge.read());
}
use of com.hazelcast.internal.metrics.DynamicMetricsProvider in project hazelcast by hazelcast.
the class DoubleGaugeImplTest method whenCacheDynamicMetricValueReplacedWithCachedMetricSource.
@Test
public void whenCacheDynamicMetricValueReplacedWithCachedMetricSource() {
DoubleGauge doubleGauge = metricsRegistry.newDoubleGauge("foo.doubleField");
// provide concrete value
DynamicMetricsProvider concreteProvider = (descriptor, context) -> context.collect(descriptor.withPrefix("foo"), "doubleField", INFO, COUNT, 142.42D);
metricsRegistry.registerDynamicMetricsProvider(concreteProvider);
// needed to collect dynamic metrics and update the gauge created from them
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(142.42D, doubleGauge.read(), 10E-6);
metricsRegistry.deregisterDynamicMetricsProvider(concreteProvider);
// provide metric source to be cached
SomeObject someObject = new SomeObject();
someObject.doubleField = 42.42D;
metricsRegistry.registerDynamicMetricsProvider(someObject);
// needed to collect dynamic metrics and update the gauge created from them
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(42.42D, doubleGauge.read(), 10E-6);
}
use of com.hazelcast.internal.metrics.DynamicMetricsProvider in project hazelcast by hazelcast.
the class DoubleGaugeImplTest method whenNotVisitedWithCachedValueReadsDefault.
@Test
public void whenNotVisitedWithCachedValueReadsDefault() {
DynamicMetricsProvider concreteProvider = (descriptor, context) -> context.collect(descriptor.withPrefix("foo"), "doubleField", INFO, COUNT, 42.42D);
metricsRegistry.registerDynamicMetricsProvider(concreteProvider);
DoubleGauge doubleGauge = metricsRegistry.newDoubleGauge("foo.doubleField");
// needed to collect dynamic metrics and update the gauge created from them
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(42.42D, doubleGauge.read(), 10E-6);
// clears the cached metric source
metricsRegistry.deregisterDynamicMetricsProvider(concreteProvider);
metricsRegistry.collect(mock(MetricsCollector.class));
assertEquals(DoubleGaugeImpl.DEFAULT_VALUE, doubleGauge.read(), 10E-6);
}
Aggregations