Search in sources :

Example 1 with MetricsPublisher

use of com.hazelcast.internal.metrics.MetricsPublisher in project hazelcast by hazelcast.

the class MetricsService method registerPublisher.

/**
 * Register a custom {@link MetricsPublisher} implementation with a register
 * function that takes {@link NodeEngine} as input letting the caller to
 * optionally initialize the publisher returned from the function.
 *
 * @param registerFunction The function that returns with the {@link MetricsPublisher}
 *                         instance.
 */
public void registerPublisher(Function<NodeEngine, MetricsPublisher> registerFunction) {
    if (config.isEnabled()) {
        MetricsPublisher publisher = registerFunction.apply(nodeEngine);
        publishers.add(publisher);
        scheduleMetricsCollectorIfNeeded();
    } else {
        logger.fine(String.format("Custom publisher is not registered with function %s as the metrics system is disabled", registerFunction));
    }
}
Also used : MetricsPublisher(com.hazelcast.internal.metrics.MetricsPublisher)

Example 2 with MetricsPublisher

use of com.hazelcast.internal.metrics.MetricsPublisher in project hazelcast by hazelcast.

the class MetricsServiceTest method testCustomPublisherIsNotRegisteredIfMetricsDisabled.

@Test
public void testCustomPublisherIsNotRegisteredIfMetricsDisabled() {
    config.getMetricsConfig().setEnabled(false);
    MetricsPublisher publisherMock = mock(MetricsPublisher.class);
    MetricsService metricsService = prepareMetricsService();
    metricsService.registerPublisher(nodeEngine -> publisherMock);
    metricsService.collectMetrics();
    verify(publisherMock, never()).publishDouble(any(), anyDouble());
    verify(publisherMock, never()).publishLong(any(), anyLong());
}
Also used : MetricsPublisher(com.hazelcast.internal.metrics.MetricsPublisher) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 3 with MetricsPublisher

use of com.hazelcast.internal.metrics.MetricsPublisher in project hazelcast by hazelcast.

the class MetricsServiceTest method testMetricsCollectedIfMetricsEnabledAndMcJmxDisabledButCustomPublisherRegistered.

@Test
public void testMetricsCollectedIfMetricsEnabledAndMcJmxDisabledButCustomPublisherRegistered() {
    config.getMetricsConfig().setEnabled(true);
    config.getMetricsConfig().getManagementCenterConfig().setEnabled(false);
    config.getMetricsConfig().getJmxConfig().setEnabled(false);
    MetricsPublisher publisherMock = mock(MetricsPublisher.class);
    MetricsService metricsService = prepareMetricsService();
    metricsService.registerPublisher(nodeEngine -> publisherMock);
    assertTrueEventually(() -> {
        verify(publisherMock, atLeastOnce()).publishDouble(any(), anyDouble());
        verify(publisherMock, atLeastOnce()).publishLong(any(), anyLong());
    });
}
Also used : MetricsPublisher(com.hazelcast.internal.metrics.MetricsPublisher) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 4 with MetricsPublisher

use of com.hazelcast.internal.metrics.MetricsPublisher in project hazelcast by hazelcast.

the class MetricsServiceTest method testCustomPublisherIsRegistered.

@Test
public void testCustomPublisherIsRegistered() {
    MetricsPublisher publisherMock = mock(MetricsPublisher.class);
    MetricsService metricsService = prepareMetricsService();
    metricsService.registerPublisher(nodeEngine -> publisherMock);
    metricsService.collectMetrics();
    verify(publisherMock, atLeastOnce()).publishDouble(any(), anyDouble());
    verify(publisherMock, atLeastOnce()).publishLong(any(), anyLong());
}
Also used : MetricsPublisher(com.hazelcast.internal.metrics.MetricsPublisher) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 5 with MetricsPublisher

use of com.hazelcast.internal.metrics.MetricsPublisher in project hazelcast by hazelcast.

the class TestHazelcastInstanceFactory method registerTestMetricsPublisher.

private void registerTestMetricsPublisher(HazelcastInstance hazelcastInstance) {
    if (metricsRule != null && metricsRule.isEnabled()) {
        MetricsService metricService = getNodeEngineImpl(hazelcastInstance).getService(MetricsService.SERVICE_NAME);
        metricService.registerPublisher((FunctionEx<NodeEngine, MetricsPublisher>) nodeEngine -> metricsRule.getMetricsPublisher(hazelcastInstance));
    }
}
Also used : NodeEngine(com.hazelcast.spi.impl.NodeEngine) IntStream(java.util.stream.IntStream) Address(com.hazelcast.cluster.Address) HazelcastInstanceImpl(com.hazelcast.instance.impl.HazelcastInstanceImpl) Arrays(java.util.Arrays) MetricsRule(com.hazelcast.test.metrics.MetricsRule) HazelcastTestSupport.spawn(com.hazelcast.test.HazelcastTestSupport.spawn) Accessors.getAddress(com.hazelcast.test.Accessors.getAddress) HazelcastInstanceFactory(com.hazelcast.instance.impl.HazelcastInstanceFactory) TestNodeRegistry(com.hazelcast.test.mocknetwork.TestNodeRegistry) Function(java.util.function.Function) HazelcastTestSupport.assertClusterSizeEventually(com.hazelcast.test.HazelcastTestSupport.assertClusterSizeEventually) ConcurrentMap(java.util.concurrent.ConcurrentMap) HashSet(java.util.HashSet) Collections.unmodifiableCollection(java.util.Collections.unmodifiableCollection) MetricsPublisher(com.hazelcast.internal.metrics.MetricsPublisher) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Arrays.asList(java.util.Arrays.asList) YamlConfigBuilder(com.hazelcast.config.YamlConfigBuilder) Accessors.getNode(com.hazelcast.test.Accessors.getNode) Config(com.hazelcast.config.Config) HazelcastInstance(com.hazelcast.core.HazelcastInstance) FunctionEx(com.hazelcast.function.FunctionEx) Accessors.getNodeEngineImpl(com.hazelcast.test.Accessors.getNodeEngineImpl) NodeEngine(com.hazelcast.spi.impl.NodeEngine) TestUtil.terminateInstance(com.hazelcast.instance.impl.TestUtil.terminateInstance) DefaultNodeContext(com.hazelcast.instance.impl.DefaultNodeContext) Collection(java.util.Collection) XmlConfigBuilder(com.hazelcast.config.XmlConfigBuilder) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) HazelcastInstanceProxy(com.hazelcast.instance.impl.HazelcastInstanceProxy) Preconditions.checkNotNull(com.hazelcast.internal.util.Preconditions.checkNotNull) UnknownHostException(java.net.UnknownHostException) ClusterProperty(com.hazelcast.spi.properties.ClusterProperty) NetworkConfig(com.hazelcast.config.NetworkConfig) Collectors.toList(java.util.stream.Collectors.toList) NodeContext(com.hazelcast.instance.impl.NodeContext) MetricsService(com.hazelcast.internal.metrics.impl.MetricsService) Hazelcast(com.hazelcast.core.Hazelcast) SYSPROP_MEMBER_CONFIG(com.hazelcast.internal.config.DeclarativeConfigUtil.SYSPROP_MEMBER_CONFIG) YAML_ACCEPTED_SUFFIXES(com.hazelcast.internal.config.DeclarativeConfigUtil.YAML_ACCEPTED_SUFFIXES) Util.uncheckCall(com.hazelcast.jet.impl.util.Util.uncheckCall) Comparator(java.util.Comparator) DeclarativeConfigUtil.isAcceptedSuffixConfigured(com.hazelcast.internal.config.DeclarativeConfigUtil.isAcceptedSuffixConfigured) Collections(java.util.Collections) MetricsService(com.hazelcast.internal.metrics.impl.MetricsService) MetricsPublisher(com.hazelcast.internal.metrics.MetricsPublisher)

Aggregations

MetricsPublisher (com.hazelcast.internal.metrics.MetricsPublisher)5 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)3 QuickTest (com.hazelcast.test.annotation.QuickTest)3 Test (org.junit.Test)3 Address (com.hazelcast.cluster.Address)1 Config (com.hazelcast.config.Config)1 NetworkConfig (com.hazelcast.config.NetworkConfig)1 XmlConfigBuilder (com.hazelcast.config.XmlConfigBuilder)1 YamlConfigBuilder (com.hazelcast.config.YamlConfigBuilder)1 Hazelcast (com.hazelcast.core.Hazelcast)1 HazelcastInstance (com.hazelcast.core.HazelcastInstance)1 FunctionEx (com.hazelcast.function.FunctionEx)1 DefaultNodeContext (com.hazelcast.instance.impl.DefaultNodeContext)1 HazelcastInstanceFactory (com.hazelcast.instance.impl.HazelcastInstanceFactory)1 HazelcastInstanceImpl (com.hazelcast.instance.impl.HazelcastInstanceImpl)1 HazelcastInstanceProxy (com.hazelcast.instance.impl.HazelcastInstanceProxy)1 NodeContext (com.hazelcast.instance.impl.NodeContext)1 TestUtil.terminateInstance (com.hazelcast.instance.impl.TestUtil.terminateInstance)1 SYSPROP_MEMBER_CONFIG (com.hazelcast.internal.config.DeclarativeConfigUtil.SYSPROP_MEMBER_CONFIG)1 YAML_ACCEPTED_SUFFIXES (com.hazelcast.internal.config.DeclarativeConfigUtil.YAML_ACCEPTED_SUFFIXES)1