You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2018/09/11 22:55:12 UTC
[geode] branch feature/Micrometer updated: More stats fixes
This is an automated email from the ASF dual-hosted git repository.
udo pushed a commit to branch feature/Micrometer
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/Micrometer by this push:
new 714c460 More stats fixes
714c460 is described below
commit 714c460e29b7975ed64535aaceb408294696a558
Author: Udo Kohlmeyer <uk...@pivotal.io>
AuthorDate: Tue Sep 11 15:54:53 2018 -0700
More stats fixes
---
.../statistics/StatisticsDistributedTest.java | 9 +-
.../AutoConnectionSourceImplJUnitTest.java | 3 +-
.../internal/cache/DiskInitFileJUnitTest.java | 20 +-
.../GemFireStatSamplerIntegrationTest.java | 2 +-
.../SimpleStatSamplerIntegrationTest.java | 2 +-
.../management/bean/stats/DiskStatsJUnitTest.java | 2 +-
.../bean/stats/GatewayMBeanBridgeJUnitTest.java | 3 +-
.../bean/stats/GatewayReceiverStatsJUnitTest.java | 2 +-
.../bean/stats/MemberLevelStatsJUnitTest.java | 14 +-
.../bean/stats/RegionStatsJUnitTest.java | 6 +-
.../internal/beans/ManagementAdapterTest.java | 3 +-
.../cache/client/internal/EndpointManagerImpl.java | 8 +-
.../geode/cache/client/internal/PoolImpl.java | 18 +-
.../internal/ClusterDistributionManager.java | 2 +-
.../internal/InternalDistributedSystem.java | 10 +-
.../distributed/internal/InternalLocator.java | 2 +-
.../distributed/internal/locks/DLockService.java | 4 +-
.../geode/internal/cache/DirectoryHolder.java | 9 +-
.../apache/geode/internal/cache/DiskStoreImpl.java | 5 +-
.../geode/internal/cache/GemFireCacheImpl.java | 2 +-
.../apache/geode/internal/cache/LocalRegion.java | 2 -
.../cache/OfflineCompactionDiskRegion.java | 3 +-
.../geode/internal/cache/PartitionedRegion.java | 5 +-
.../internal/cache/PartitionedRegionDataStore.java | 1 -
.../internal/cache/PartitionedRegionHelper.java | 3 +-
.../geode/internal/cache/ValidatingDiskRegion.java | 4 +-
.../cache/control/InternalResourceManager.java | 3 +-
.../cache/eviction/AbstractEvictionController.java | 6 +-
.../geode/internal/cache/ha/HARegionQueue.java | 5 +-
.../internal/cache/tier/sockets/AcceptorImpl.java | 409 +++++++++------------
.../cache/tier/sockets/CacheClientUpdater.java | 3 +-
.../internal/cache/wan/AbstractGatewaySender.java | 6 +-
.../geode/internal/offheap/OffHeapStorage.java | 15 +-
.../geode/internal/statistics/CallbackSampler.java | 4 +-
.../statistics/DummyStatisticsFactory.java | 23 +-
.../statistics/GFSStatisticsFactoryImpl.java | 19 +-
.../internal/statistics/GemFireStatSampler.java | 69 ++--
.../geode/internal/statistics/HostStatSampler.java | 12 +-
.../statistics/InternalDistributedSystemStats.java | 47 ++-
.../internal/statistics/SimpleStatSampler.java | 2 +-
...SamplerStats.java => StatSamplerStatsImpl.java} | 44 ++-
.../statistics/VMStatsContractFactory.java | 15 +-
.../statistics/{VMStats.java => VMStatsImpl.java} | 9 +-
.../apache/geode/internal/stats50/VMStats50.java | 7 +-
.../management/internal/FederatingManager.java | 4 +-
.../geode/management/internal/LocalManager.java | 3 +-
.../internal/beans/MemberMBeanBridge.java | 8 +-
.../ParallelQueueRemovalMessageJUnitTest.java | 6 +-
.../internal/offheap/OffHeapStorageJUnitTest.java | 16 +-
.../internal/statistics/CallbackSamplerTest.java | 2 +-
.../geode/cache/query/internal/cq/CqQueryImpl.java | 7 +-
.../cache/query/internal/cq/CqServiceImpl.java | 4 +-
.../cache/query/internal/cq/CqStatisticsImpl.java | 3 +-
.../java/org/apache/geode/test/fake/Fakes.java | 10 +-
.../statistics/MicrometerStatSamplerStatsImpl.kt | 90 +++++
.../micrometer/MicrometerStatisticsFactoryImpl.kt | 8 +
.../MicrometerResourceManagerStats.kt | 2 +-
.../geode/internal/statistics/StatSampleStats.java | 23 ++
.../apache/geode/internal/statistics/VMStats.java | 6 +-
.../stats/common/statistics/StatisticsFactory.java | 83 +++--
.../common/statistics/factory/StatsFactory.java | 9 +-
61 files changed, 606 insertions(+), 520 deletions(-)
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java
index c231890..7a91c18 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java
@@ -287,10 +287,10 @@ public class StatisticsDistributedTest extends JUnit4CacheTestCase {
assertEquals(1, statsArray.length);
Statistics statSamplerStats = statsArray[0];
- int initialSampleCount = statSamplerStats.getInt(StatSamplerStats.SAMPLE_COUNT);
+ int initialSampleCount = statSamplerStats.getInt(StatSamplerStatsImpl.SAMPLE_COUNT);
await("awaiting sampleCount >= 2").atMost(30, SECONDS).until(() -> statSamplerStats
- .getInt(StatSamplerStats.SAMPLE_COUNT) >= initialSampleCount + 2);
+ .getInt(StatSamplerStatsImpl.SAMPLE_COUNT) >= initialSampleCount + 2);
});
}
@@ -311,10 +311,11 @@ public class StatisticsDistributedTest extends JUnit4CacheTestCase {
assertEquals(1, statsArray.length);
Statistics statSamplerStats = statsArray[0];
- int initialSampleCount = statSamplerStats.getInt(StatSamplerStats.SAMPLE_COUNT);
+ int initialSampleCount = statSamplerStats.getInt(StatSamplerStatsImpl.SAMPLE_COUNT);
await("awaiting sampleCount >= 2").atMost(30, SECONDS).until(
- () -> statSamplerStats.getInt(StatSamplerStats.SAMPLE_COUNT) >= initialSampleCount + 2);
+ () -> statSamplerStats.getInt(StatSamplerStatsImpl.SAMPLE_COUNT) >= initialSampleCount
+ + 2);
// now post total updateEvents to static
PubSubStats statistics = subStatsRef.get();
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
index 4c12d4a..0033078 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
@@ -111,8 +111,7 @@ public class AutoConnectionSourceImplJUnitTest {
DistributedSystem distributedSystem = DistributedSystem.connect(props);
cache = CacheFactory.create(distributedSystem);
poolStats =
- StatsFactory.createStatsImpl(PoolStats.class, distributedSystem.getStatisticsFactory(),
- "pool");
+ StatsFactory.createStatsImpl(PoolStats.class, "pool");
port = AvailablePortHelper.getRandomAvailableTCPPort();
handler = new FakeHandler();
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskInitFileJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskInitFileJUnitTest.java
index 6e8b942..39b3244 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskInitFileJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskInitFileJUnitTest.java
@@ -31,7 +31,6 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.apache.geode.internal.cache.persistence.DiskRegionView;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
public class DiskInitFileJUnitTest {
@@ -56,21 +55,13 @@ public class DiskInitFileJUnitTest {
*/
@Test
public void testCanonicalIds() {
- // create a mock statistics factory for creating directory holders
- final StatisticsFactory sf = context.mock(StatisticsFactory.class);
- context.checking(new Expectations() {
- {
- ignoring(sf);
- }
- });
-
// Create a mock disk store impl. All we need to do is return
// this init file directory.
final DiskStoreImpl parent = context.mock(DiskStoreImpl.class);
context.checking(new Expectations() {
{
allowing(parent).getInfoFileDir();
- will(returnValue(new DirectoryHolder(sf, testDirectory, 0, 0)));
+ will(returnValue(new DirectoryHolder(testDirectory, 0, 0)));
ignoring(parent);
}
});
@@ -120,13 +111,6 @@ public class DiskInitFileJUnitTest {
@Test
public void testKrfIds() {
- // create a mock statistics factory for creating directory holders
- final StatisticsFactory sf = context.mock(StatisticsFactory.class);
- context.checking(new Expectations() {
- {
- ignoring(sf);
- }
- });
// Add a mock region to the init file so it doesn't
// delete the file when the init file is closed
final DiskRegionView drv = context.mock(DiskRegionView.class);
@@ -141,7 +125,7 @@ public class DiskInitFileJUnitTest {
context.checking(new Expectations() {
{
allowing(parent).getInfoFileDir();
- will(returnValue(new DirectoryHolder(sf, testDirectory, 0, 0)));
+ will(returnValue(new DirectoryHolder(testDirectory, 0, 0)));
ignoring(parent);
}
});
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/GemFireStatSamplerIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/GemFireStatSamplerIntegrationTest.java
index de3f409..491030f 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/GemFireStatSamplerIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/GemFireStatSamplerIntegrationTest.java
@@ -128,7 +128,7 @@ public class GemFireStatSamplerIntegrationTest extends StatSamplerTestCase {
Assert.assertEquals(SocketCreator.getHostName(SocketCreator.getLocalHost()),
statSampler.getSystemDirectoryPath());
- VMStatsContract vmStats = statSampler.getVMStats();
+ VMStats vmStats = statSampler.getVMStats();
assertNotNull(vmStats);
assertTrue(vmStats instanceof VMStats50);
/*
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/SimpleStatSamplerIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/SimpleStatSamplerIntegrationTest.java
index 951e015..8f2326b 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/SimpleStatSamplerIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/SimpleStatSamplerIntegrationTest.java
@@ -104,7 +104,7 @@ public class SimpleStatSamplerIntegrationTest extends StatSamplerTestCase {
assertEquals(SocketCreator.getHostName(SocketCreator.getLocalHost()),
statSampler.getSystemDirectoryPath());
- VMStatsContract vmStats = statSampler.getVMStats();
+ VMStats vmStats = statSampler.getVMStats();
assertNotNull(vmStats);
assertTrue(vmStats instanceof VMStats50);
/*
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/DiskStatsJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/DiskStatsJUnitTest.java
index 8c5f384..b7bea98 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/DiskStatsJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/DiskStatsJUnitTest.java
@@ -38,7 +38,7 @@ public class DiskStatsJUnitTest extends MBeanStatsTestCase {
public void init() {
diskStoreStats =
- StatsFactory.createStatsImpl(DiskStoreStats.class, system.getStatisticsFactory(), "test");
+ StatsFactory.createStatsImpl(DiskStoreStats.class, "test");
bridge = new DiskStoreMBeanBridge();
bridge.addDiskStoreStats(diskStoreStats);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayMBeanBridgeJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayMBeanBridgeJUnitTest.java
index c72b40d..f15d996 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayMBeanBridgeJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayMBeanBridgeJUnitTest.java
@@ -40,8 +40,7 @@ public class GatewayMBeanBridgeJUnitTest extends MBeanStatsTestCase {
private AbstractGatewaySender sender;
public void init() {
- senderStats = StatsFactory.createStatsImpl(GatewaySenderStats.class,
- system.getStatisticsFactory(), "test");
+ senderStats = StatsFactory.createStatsImpl(GatewaySenderStats.class, "test");
sender = Mockito.mock(AbstractGatewaySender.class);
Mockito.when(sender.getStatistics()).thenReturn(senderStats);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayReceiverStatsJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayReceiverStatsJUnitTest.java
index eeb69a6..4327d37 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayReceiverStatsJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/GatewayReceiverStatsJUnitTest.java
@@ -35,7 +35,7 @@ public class GatewayReceiverStatsJUnitTest extends MBeanStatsTestCase {
public void init() {
receiverStats =
- StatsFactory.createStatsImpl(GatewayReceiverStats.class, null, "Test Sock Name");
+ StatsFactory.createStatsImpl(GatewayReceiverStats.class, "Test Sock Name");
bridge = new GatewayReceiverMBeanBridge();
bridge.addGatewayReceiverStats(receiverStats);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java
index f42d006..aca5709 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java
@@ -31,7 +31,7 @@ import org.apache.geode.internal.NanoTimer;
import org.apache.geode.internal.OSProcess;
import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.internal.cache.execute.FunctionServiceStats;
-import org.apache.geode.internal.statistics.VMStatsContract;
+import org.apache.geode.internal.statistics.VMStats;
import org.apache.geode.internal.stats50.VMStats50;
import org.apache.geode.management.ManagementService;
import org.apache.geode.management.internal.beans.MemberMBeanBridge;
@@ -68,14 +68,14 @@ public class MemberLevelStatsJUnitTest extends MBeanStatsTestCase {
public void init() {
cachePerfStats =
- StatsFactory.createStatsImpl(CachePerfStats.class, system.getStatisticsFactory(), null);
+ StatsFactory.createStatsImpl(CachePerfStats.class, null);
funcServiceStats = new FunctionServiceStats(system.getStatisticsFactory(), "FunctionExecution");
long statId = OSProcess.getId();
distributionStats =
- StatsFactory.createStatsImpl(DistributionStats.class, system.getStatisticsFactory(),
+ StatsFactory.createStatsImpl(DistributionStats.class,
String.valueOf(statId));
DistributionStatsImpl.enableClockStats = true;
- dlockStats = StatsFactory.createStatsImpl(DLockStats.class, system.getStatisticsFactory(),
+ dlockStats = StatsFactory.createStatsImpl(DLockStats.class,
String.valueOf(statId));
bridge = new MemberMBeanBridge();
@@ -85,7 +85,7 @@ public class MemberLevelStatsJUnitTest extends MBeanStatsTestCase {
bridge.addLockServiceStats(dlockStats);
- VMStatsContract vmstats =
+ VMStats vmstats =
system.getInternalDistributedSystemStats().getStatSampler().getVMStats();
assertTrue(vmstats instanceof VMStats50);
@@ -94,7 +94,7 @@ public class MemberLevelStatsJUnitTest extends MBeanStatsTestCase {
for (int i = 0; i < 4; i++) {
DiskStoreStats stats =
- StatsFactory.createStatsImpl(DiskStoreStats.class, system.getStatisticsFactory(),
+ StatsFactory.createStatsImpl(DiskStoreStats.class,
name.getMethodName() + i);
diskStatsList.add(stats);
bridge.addDiskStoreStats(stats);
@@ -102,7 +102,7 @@ public class MemberLevelStatsJUnitTest extends MBeanStatsTestCase {
for (int i = 0; i < 4; i++) {
PartitionedRegionStats stats = StatsFactory.createStatsImpl(PartitionedRegionStats.class,
- system.getStatisticsFactory(), name.getMethodName() + i);
+ name.getMethodName() + i);
parRegionStatsList.add(stats);
bridge.addPartionRegionStats(stats);
}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
index 2e25835..859d149 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
@@ -48,13 +48,13 @@ public class RegionStatsJUnitTest extends MBeanStatsTestCase {
private DiskRegionStats diskRegionStats;
protected void init() {
- cachePerfStats = StatsFactory.createCachePerfStatsImpl(system.getStatisticsFactory(), null);
+ cachePerfStats = StatsFactory.createCachePerfStatsImpl(null);
partitionedRegionStats =
StatsFactory
- .createStatsImpl(PartitionedRegionStats.class, system.getStatisticsFactory(), "/tests");
+ .createStatsImpl(PartitionedRegionStats.class, "/tests");
diskRegionStats =
StatsFactory
- .createStatsImpl(DiskRegionStats.class, system.getStatisticsFactory(), "test-disk");
+ .createStatsImpl(DiskRegionStats.class, "test-disk");
bridge = new RegionMBeanBridge(cachePerfStats);
parBridge = new PartitionedRegionBridge(partitionedRegionStats);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/beans/ManagementAdapterTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/beans/ManagementAdapterTest.java
index 5dac407..970015b 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/beans/ManagementAdapterTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/beans/ManagementAdapterTest.java
@@ -53,8 +53,7 @@ public class ManagementAdapterTest {
@Before
public void before() {
cache = serverRule.getCache();
- doReturn(StatsFactory.createStatsImpl(DiskStoreStats.class,
- cache.getInternalDistributedSystem().getStatisticsFactory(), "disk-stats")).when(diskStore)
+ doReturn(StatsFactory.createStatsImpl(DiskStoreStats.class, "disk-stats")).when(diskStore)
.getStats();
doReturn(new File[] {}).when(diskStore).getDiskDirs();
}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java
index 4886ca5..1ab6b0f 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java
@@ -32,7 +32,6 @@ import org.apache.geode.distributed.DistributedSystem;
import org.apache.geode.distributed.internal.ServerLocation;
import org.apache.geode.internal.cache.tier.InternalClientMembership;
import org.apache.geode.internal.logging.LogService;
-import org.apache.geode.internal.statistics.DummyStatisticsFactory;
import org.apache.geode.stats.common.cache.client.internal.ConnectionStats;
import org.apache.geode.stats.common.internal.cache.PoolStats;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
@@ -222,14 +221,11 @@ public class EndpointManagerImpl implements EndpointManager {
PoolImpl pool = (PoolImpl) PoolManager.find(this.poolName);
if (pool != null) {
if (pool.getGatewaySender() != null) {
- stats = StatsFactory.createConnectionStatsImpl(
- new DummyStatisticsFactory(distributedSystem.getStatisticsFactory()), statName,
- this.poolStats);
+ stats = StatsFactory.createConnectionStatsImpl(statName, this.poolStats);
}
}
if (stats == null) {
- stats = StatsFactory.createConnectionStatsImpl(distributedSystem.getStatisticsFactory(),
- statName, this.poolStats);
+ stats = StatsFactory.createConnectionStatsImpl(statName, this.poolStats);
}
statMap.put(location, stats);
}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java
index 246097a..534099d 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java
@@ -65,9 +65,7 @@ import org.apache.geode.internal.logging.InternalLogWriter;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.internal.logging.log4j.LocalizedMessage;
import org.apache.geode.internal.monitoring.ThreadsMonitoring;
-import org.apache.geode.internal.statistics.DummyStatisticsFactory;
import org.apache.geode.stats.common.internal.cache.PoolStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
@@ -243,16 +241,16 @@ public class PoolImpl implements InternalPool {
} else {
this.proxyId = ClientProxyMembershipID.getNewProxyMembership(this.internalDistributedSystem);
}
- StatisticsFactory statFactory = null;
- if (this.gatewaySender != null) {
- statFactory =
- new DummyStatisticsFactory(this.internalDistributedSystem.getStatisticsFactory());
- } else {
- statFactory = this.internalDistributedSystem.getInternalDistributedSystemStats();
- }
+ // StatisticsFactory statFactory = null;
+ // if (this.gatewaySender != null) {
+ // statFactory =
+ // new DummyStatisticsFactory(this.internalDistributedSystem.getStatisticsFactory());
+ // } else {
+ // statFactory = this.internalDistributedSystem.getInternalDistributedSystemStats();
+ // }
this.stats =
this.startDisabled ? null
- : StatsFactory.createStatsImpl(PoolStats.class, statFactory, getName() + "->"
+ : StatsFactory.createStatsImpl(PoolStats.class, getName() + "->"
+ (isEmpty(serverGroup) ? "[any servers]" : "[" + getServerGroup() + "]"));
source = getSourceImpl(((PoolFactoryImpl.PoolAttributes) attributes).locatorCallback);
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java
index 41e25da..30e7472 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java
@@ -711,7 +711,7 @@ public class ClusterDistributionManager implements DistributionManager {
long statId = OSProcess.getId();
this.stats = StatsFactory
- .createStatsImpl(DistributionStats.class, system.getStatisticsFactory(),
+ .createStatsImpl(DistributionStats.class,
String.valueOf(statId));
DistributionStatsImpl.enableClockStats = system.getConfig().getEnableTimeStatistics();
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
index 00ff36d..e99bc2a 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
@@ -102,7 +102,6 @@ import org.apache.geode.management.ManagementException;
import org.apache.geode.security.GemFireSecurityException;
import org.apache.geode.security.PostProcessor;
import org.apache.geode.security.SecurityManager;
-import org.apache.geode.statistics.micrometer.MicrometerStatisticsFactoryImpl;
import org.apache.geode.stats.common.distributed.internal.DMStats;
import org.apache.geode.stats.common.statistics.Statistics;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
@@ -613,9 +612,7 @@ public class InternalDistributedSystem extends DistributedSystem {
private void initializeStats() {
this.internalDistributedSystemStats =
- InternalDistributedSystemStats.createInstance(this.statsDisabled, this.getConfig(),
- // this,new StatisticsTypeFactoryImpl());
- this, new MicrometerStatisticsFactoryImpl());
+ InternalDistributedSystemStats.createInstance(this.statsDisabled, this.getConfig(), this);
}
@@ -723,8 +720,7 @@ public class InternalDistributedSystem extends DistributedSystem {
this.offHeapStore =
OffHeapStorage
- .createOffHeapStorage(this.getInternalDistributedSystemStats(), offHeapMemorySize,
- this);
+ .createOffHeapStorage(offHeapMemorySize, this);
// Note: this can only happen on a linux system
if (getConfig().getLockMemory()) {
@@ -2788,7 +2784,7 @@ public class InternalDistributedSystem extends DistributedSystem {
@Override
public StatisticsFactory getStatisticsFactory() {
- return getInternalDistributedSystemStats();
+ return getInternalDistributedSystemStats().getStatisticsFactory();
}
@Override
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
index cc84b67..96434ae 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
@@ -485,7 +485,7 @@ public class InternalLocator extends Locator implements ConnectListener {
ThreadGroup group = LoggingThreadGroup.createThreadGroup("Distribution locators", logger);
this.stats =
- StatsFactory.createStatsImpl(LocatorStats.class, null, (hostnameForClients + port));
+ StatsFactory.createStatsImpl(LocatorStats.class, (hostnameForClients + port));
this.server = new TcpServerFactory().makeTcpServer(port, this.bindAddress, null, this.config,
this.handler, new DelayedPoolStatHelper(), group, this.toString(), this);
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockService.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockService.java
index d0f1c2b..d4c9cf9 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockService.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockService.java
@@ -62,7 +62,6 @@ import org.apache.geode.internal.logging.log4j.LogMarker;
import org.apache.geode.internal.util.StopWatch;
import org.apache.geode.internal.util.concurrent.FutureResult;
import org.apache.geode.stats.common.distributed.internal.locks.DLockStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
@@ -2909,9 +2908,8 @@ public class DLockService extends DistributedLockService {
DistributedSystem distributedSystem) {
if (stats == DUMMY_STATS) {
Assert.assertTrue(distributedSystem != null, "Need an instance of InternalDistributedSystem");
- StatisticsFactory statFactory = distributedSystem.getStatisticsFactory();
long statId = OSProcess.getId();
- stats = StatsFactory.createStatsImpl(DLockStats.class, statFactory, String.valueOf(statId));
+ stats = StatsFactory.createStatsImpl(DLockStats.class, String.valueOf(statId));
}
return stats;
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DirectoryHolder.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DirectoryHolder.java
index 59e6336..21ed635 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DirectoryHolder.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DirectoryHolder.java
@@ -18,7 +18,6 @@ import java.io.File;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.geode.stats.common.internal.cache.DiskDirectoryStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
@@ -46,11 +45,11 @@ public class DirectoryHolder {
/** For testing purposes we can set the disk directory size in bytes **/
static boolean SET_DIRECTORY_SIZE_IN_BYTES_FOR_TESTING_PURPOSES = false;
- DirectoryHolder(StatisticsFactory factory, File dir, long space, int index) {
- this(dir.getPath(), factory, dir, space, index);
+ DirectoryHolder(File dir, long space, int index) {
+ this(dir.getPath(), dir, space, index);
}
- DirectoryHolder(String ownersName, StatisticsFactory factory, File dir, long space, int index) {
+ DirectoryHolder(String ownersName, File dir, long space, int index) {
this.dir = dir;
if (SET_DIRECTORY_SIZE_IN_BYTES_FOR_TESTING_PURPOSES) {
this.capacity = space;
@@ -59,7 +58,7 @@ public class DirectoryHolder {
this.capacity = space * 1024 * 1024;
}
this.index = index;
- this.dirStats = StatsFactory.createStatsImpl(DiskDirectoryStats.class, factory, ownersName);
+ this.dirStats = StatsFactory.createStatsImpl(DiskDirectoryStats.class, ownersName);
this.dirStats.setMaxSpace(this.capacity);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index 5208de9..6f20c2d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -421,8 +421,7 @@ public class DiskStoreImpl implements DiskStore {
this.criticalPercent = props.getDiskUsageCriticalPercentage();
this.cache = cache;
- StatisticsFactory factory = cache.getDistributedSystem().getStatisticsFactory();
- this.stats = StatsFactory.createStatsImpl(DiskStoreStats.class, factory, getName());
+ this.stats = StatsFactory.createStatsImpl(DiskStoreStats.class, getName());
// start simple init
@@ -457,7 +456,7 @@ public class DiskStoreImpl implements DiskStore {
long tempMaxDirSize = 0;
for (int i = 0; i < length; i++) {
directories[i] =
- new DirectoryHolder(getName() + "_DIR#" + i, factory, dirs[i], dirSizes[i], i);
+ new DirectoryHolder(getName() + "_DIR#" + i, dirs[i], dirSizes[i], i);
if (tempMaxDirSize < dirSizes[i]) {
tempMaxDirSize = dirSizes[i];
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
index 1e79af1..3215b76 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
@@ -932,7 +932,7 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
// Create the CacheStatistics
this.cachePerfStats =
- StatsFactory.createStatsImpl(CachePerfStats.class, system.getStatisticsFactory(), null);
+ StatsFactory.createStatsImpl(CachePerfStats.class, null);
CachePerfStatsImpl.enableClockStats = this.system.getConfig().getEnableTimeStatistics();
this.transactionManager = new TXManagerImpl(this.cachePerfStats, this);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index 2e2a9d2..fb1c6be 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -656,7 +656,6 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
this.hasOwnStats = true;
this.cachePerfStats =
StatsFactory.createRegionPerfStatsImplFromClass(RegionPerfStats.class,
- cache.getInternalDistributedSystem().getStatisticsFactory(),
cache.getCachePerfStats(), regionName);
}
}
@@ -7730,7 +7729,6 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
stats =
StatsFactory
.createStatsImpl(DiskRegionStats.class,
- getCache().getDistributedSystem().getStatisticsFactory(),
getFullPath());
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java
index 9f6f944..1cf8c1f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java
@@ -29,8 +29,7 @@ import org.apache.geode.stats.common.statistics.factory.StatsFactory;
public class OfflineCompactionDiskRegion extends DiskRegion implements DiskRecoveryStore {
private OfflineCompactionDiskRegion(DiskStoreImpl ds, DiskRegionView drv) {
super(ds, drv.getName(), drv.isBucket(), true, false, true,
- StatsFactory.createStatsImpl(DiskRegionStats.class,
- ds.getCache().getDistributedSystem().getStatisticsFactory(), drv.getName()),
+ StatsFactory.createStatsImpl(DiskRegionStats.class, drv.getName()),
new DummyCancelCriterion(), new DummyDiskExceptionHandler(), null, drv.getFlags(),
drv.getPartitionName(), drv.getStartingBucketId(), drv.getCompressorClassName(),
drv.getOffHeap());
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index c9e4a11..c354b41 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -758,8 +758,7 @@ public class PartitionedRegion extends LocalRegion
super(regionName, regionAttributes, parentRegion, cache, internalRegionArgs);
this.node = initializeNode();
- this.prStats = StatsFactory.createStatsImpl(PartitionedRegionStats.class,
- cache.getDistributedSystem().getStatisticsFactory(), getFullPath());
+ this.prStats = StatsFactory.createStatsImpl(PartitionedRegionStats.class, getFullPath());
this.regionIdentifier = getFullPath().replace('/', '#');
if (logger.isDebugEnabled()) {
@@ -853,7 +852,7 @@ public class PartitionedRegion extends LocalRegion
StatisticsFactory statisticsFactory =
this.getCache().getDistributedSystem().getStatisticsFactory();
this.diskRegionStats =
- StatsFactory.createStatsImpl(DiskRegionStats.class, statisticsFactory, getFullPath());
+ StatsFactory.createStatsImpl(DiskRegionStats.class, getFullPath());
} else {
this.diskRegionStats = null;
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
index 24f83af..3a2501e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
@@ -212,7 +212,6 @@ public class PartitionedRegionDataStore implements HasCachePerfStats {
// this.bucketStats = new CachePerfStats(pr.getSystem(), "partition-" + pr.getName());
this.bucketStats =
StatsFactory.createRegionPerfStatsImplFromClass(RegionPerfStats.class,
- pr.getCache().getInternalDistributedSystem().getStatisticsFactory(),
pr.getCachePerfStats(), "dataStorRegion-" + pr.getName());
this.keysOfInterest = new ConcurrentHashMap();
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionHelper.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionHelper.java
index e80d146..49de9b4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionHelper.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionHelper.java
@@ -262,8 +262,7 @@ public class PartitionedRegionHelper {
RegionAttributes ra = factory.create();
// Create anonymous stats holder for Partitioned Region meta data
final HasCachePerfStats prMetaStatsHolder =
- () -> StatsFactory.createStatsImpl(CachePerfStats.class,
- cache.getDistributedSystem().getStatisticsFactory(), "partitionMetaData");
+ () -> StatsFactory.createStatsImpl(CachePerfStats.class, "partitionMetaData");
try {
root = (DistributedRegion) cache.createVMRegion(PR_ROOT_REGION_NAME, ra,
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java
index 9aa1d15..a443771 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java
@@ -51,9 +51,7 @@ import org.apache.geode.stats.common.statistics.factory.StatsFactory;
public class ValidatingDiskRegion extends DiskRegion implements DiskRecoveryStore {
protected ValidatingDiskRegion(DiskStoreImpl diskStore, DiskRegionView diskRegionView) {
super(diskStore, diskRegionView.getName(), diskRegionView.isBucket(), true, false, true,
- StatsFactory.createStatsImpl(DiskRegionStats.class,
- diskStore.getCache().getDistributedSystem().getStatisticsFactory(),
- diskRegionView.getName()),
+ StatsFactory.createStatsImpl(DiskRegionStats.class, diskRegionView.getName()),
new DummyCancelCriterion(), new DummyDiskExceptionHandler(), null,
diskRegionView.getFlags(),
diskRegionView.getPartitionName(), diskRegionView.getStartingBucketId(),
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/control/InternalResourceManager.java b/geode-core/src/main/java/org/apache/geode/internal/cache/control/InternalResourceManager.java
index 116de8c..a3af5dd 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/control/InternalResourceManager.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/control/InternalResourceManager.java
@@ -117,8 +117,7 @@ public class InternalResourceManager implements ResourceManager {
this.cache = cache;
this.resourceAdvisor = (ResourceAdvisor) cache.getDistributionAdvisor();
this.stats = StatsFactory
- .createStatsImpl(ResourceManagerStats.class,
- cache.getDistributedSystem().getStatisticsFactory(), "ResourceManager");
+ .createStatsImpl(ResourceManagerStats.class, "ResourceManager");
// Create a new executor that other classes may use for handling resource
// related tasks
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/eviction/AbstractEvictionController.java b/geode-core/src/main/java/org/apache/geode/internal/cache/eviction/AbstractEvictionController.java
index ec5d290..699497c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/eviction/AbstractEvictionController.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/eviction/AbstractEvictionController.java
@@ -71,20 +71,20 @@ public abstract class AbstractEvictionController implements EvictionController {
EvictionCounters evictionCounters;
if (algorithm == EvictionAlgorithm.LRU_HEAP) {
evictionStats =
- StatsFactory.createStatsImpl(HeapLRUEvictionStats.class, statsFactory, statsName);
+ StatsFactory.createStatsImpl(HeapLRUEvictionStats.class, statsName);
evictionCounters = new EvictionCountersImpl(evictionStats);
return new HeapLRUController(evictionCounters, action, sizer, algorithm);
}
if (algorithm == EvictionAlgorithm.LRU_MEMORY || algorithm == EvictionAlgorithm.LIFO_MEMORY) {
evictionStats =
- StatsFactory.createStatsImpl(CountLRUEvictionStats.class, statsFactory, statsName);
+ StatsFactory.createStatsImpl(CountLRUEvictionStats.class, statsName);
evictionCounters = new EvictionCountersImpl(evictionStats);
return new MemoryLRUController(evictionCounters, maximum, sizer, action, isOffHeap,
algorithm);
}
if (algorithm == EvictionAlgorithm.LRU_ENTRY || algorithm == EvictionAlgorithm.LIFO_ENTRY) {
evictionStats =
- StatsFactory.createStatsImpl(MemoryLRUEvictionStats.class, statsFactory, statsName);
+ StatsFactory.createStatsImpl(MemoryLRUEvictionStats.class, statsName);
evictionCounters = new EvictionCountersImpl(evictionStats);
return new CountLRUEviction(evictionCounters, maximum, action, algorithm);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/ha/HARegionQueue.java b/geode-core/src/main/java/org/apache/geode/internal/cache/ha/HARegionQueue.java
index bfe6acd..b21a8fb 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/ha/HARegionQueue.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/ha/HARegionQueue.java
@@ -103,7 +103,6 @@ import org.apache.geode.internal.util.concurrent.StoppableReentrantReadWriteLock
import org.apache.geode.internal.util.concurrent.StoppableReentrantReadWriteLock.StoppableWriteLock;
import org.apache.geode.stats.common.cache.query.internal.CqQueryVsdStats;
import org.apache.geode.stats.common.internal.cache.ha.HARegionQueueStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
@@ -370,13 +369,11 @@ public class HARegionQueue implements RegionQueue {
String processedRegionName = createRegionName(regionName);
- // Initialize the statistics
- StatisticsFactory factory = cache.getDistributedSystem().getStatisticsFactory();
createHARegion(processedRegionName, cache);
initializeHARegionQueue(processedRegionName, this.region, haContainer, clientProxyId,
clientConflation, isPrimary,
- StatsFactory.createStatsImpl(HARegionQueueStats.class, factory, processedRegionName),
+ StatsFactory.createStatsImpl(HARegionQueueStats.class, processedRegionName),
new StoppableReentrantReadWriteLock(cache.getCancelCriterion()),
new StoppableReentrantReadWriteLock(region.getCancelCriterion()),
this.region.getCancelCriterion(), true);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java
index d0ae814..15e0674 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java
@@ -109,57 +109,100 @@ import org.apache.geode.stats.common.statistics.factory.StatsFactory;
*/
@SuppressWarnings("deprecation")
public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
+ public static final int CLIENT_QUEUE_INITIALIZATION_POOL_SIZE = 16;
+ /**
+ * The name of a system property that sets the hand shake timeout (in milliseconds). This is how
+ * long a client will wait to hear back from a server.
+ */
+ public static final String HANDSHAKE_TIMEOUT_PROPERTY_NAME = "BridgeServer.handShakeTimeout";
+ /**
+ * The default value of the {@link #HANDSHAKE_TIMEOUT_PROPERTY_NAME} system property.
+ */
+ public static final int DEFAULT_HANDSHAKE_TIMEOUT_MS = 59000;
+ /**
+ * The name of a system property that sets the accept timeout (in milliseconds). This is how long
+ * a server will wait to get its first byte from a client it has just accepted.
+ */
+ public static final String ACCEPT_TIMEOUT_PROPERTY_NAME = "BridgeServer.acceptTimeout";
+ /**
+ * The default value of the {@link #ACCEPT_TIMEOUT_PROPERTY_NAME} system property.
+ */
+ public static final int DEFAULT_ACCEPT_TIMEOUT_MS = 9900;
+ /**
+ * The mininum value of max-connections
+ */
+ public static final int MINIMUM_MAX_CONNECTIONS = 16;
+ /**
+ * The system property name for setting the {@link ServerSocket}backlog
+ */
+ public static final String BACKLOG_PROPERTY_NAME = "BridgeServer.backlog";
+ /**
+ * Test value for handshake timeout
+ */
+ protected static final int handshakeTimeout =
+ Integer.getInteger(HANDSHAKE_TIMEOUT_PROPERTY_NAME, DEFAULT_HANDSHAKE_TIMEOUT_MS).intValue();
+ static final byte REPLY_REFUSED = (byte) 60;
+ static final byte REPLY_INVALID = (byte) 61;
private static final Logger logger = LogService.getLogger();
-
private static final boolean isJRockit = System.getProperty("java.vm.name").contains("JRockit");
private static final int HANDSHAKER_DEFAULT_POOL_SIZE = 4;
- public static final int CLIENT_QUEUE_INITIALIZATION_POOL_SIZE = 16;
-
+ /**
+ * The default value of the {@link ServerSocket} {@link #BACKLOG_PROPERTY_NAME}system property
+ */
+ private static final int DEFAULT_BACKLOG = 1000;
+ /**
+ * This system property is only used if max-threads == 0. This is for 5.0.2 backwards
+ * compatibility.
+ *
+ * @deprecated since 5.1 use cache-server max-threads instead
+ */
+ @Deprecated
+ private static final boolean DEPRECATED_SELECTOR = Boolean.getBoolean("BridgeServer.SELECTOR");
+ private static final boolean WORKAROUND_SELECTOR_BUG =
+ Boolean.getBoolean("CacheServer.NIO_SELECTOR_WORKAROUND");
+ // private final Selector tmpSel;
+ private static boolean isAuthenticationRequired;
+ private static boolean isPostAuthzCallbackPresent;
+ /**
+ * break any potential circularity in {@link #loadEmergencyClasses()}
+ */
+ private static volatile boolean emergencyClassesLoaded = false;
+ /**
+ * Current number of ServerConnection instances that are CLIENT_TO_SERVER cons.
+ */
+ public final AtomicInteger clientServerCnxCount = new AtomicInteger();
protected final CacheServerStats stats;
+ /**
+ * The GemFire cache served up by this acceptor
+ */
+ protected final InternalCache cache;
private final int maxConnections;
private final int maxThreads;
-
private final ThreadPoolExecutor pool;
/**
* A pool used to process handshakes.
*/
private final ThreadPoolExecutor hsPool;
-
/**
* A pool used to process client-queue-initializations.
*/
private final ThreadPoolExecutor clientQueueInitPool;
-
/**
* The port on which this acceptor listens for client connections
*/
private final int localPort;
-
- /**
- * The server socket that handles requests for connections
- */
- private ServerSocket serverSock = null;
-
- /**
- * The GemFire cache served up by this acceptor
- */
- protected final InternalCache cache;
-
/**
* Caches region information
*/
private final CachedRegionHelper crHelper;
-
/**
* A lock to prevent close from occurring while creating a ServerConnection
*/
private final Object syncLock = new Object();
-
/**
* THE selector for the bridge server; null if no selector.
*/
private final Selector selector;
- // private final Selector tmpSel;
/**
* Used for managing direct byte buffer for client comms; null if no selector.
*/
@@ -180,91 +223,19 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
* tcpNoDelay setting for outgoing sockets
*/
private final boolean tcpNoDelay;
-
- /**
- * The name of a system property that sets the hand shake timeout (in milliseconds). This is how
- * long a client will wait to hear back from a server.
- */
- public static final String HANDSHAKE_TIMEOUT_PROPERTY_NAME = "BridgeServer.handShakeTimeout";
-
- /**
- * The default value of the {@link #HANDSHAKE_TIMEOUT_PROPERTY_NAME} system property.
- */
- public static final int DEFAULT_HANDSHAKE_TIMEOUT_MS = 59000;
-
- /**
- * Test value for handshake timeout
- */
- protected static final int handshakeTimeout =
- Integer.getInteger(HANDSHAKE_TIMEOUT_PROPERTY_NAME, DEFAULT_HANDSHAKE_TIMEOUT_MS).intValue();
-
- /**
- * The name of a system property that sets the accept timeout (in milliseconds). This is how long
- * a server will wait to get its first byte from a client it has just accepted.
- */
- public static final String ACCEPT_TIMEOUT_PROPERTY_NAME = "BridgeServer.acceptTimeout";
-
- /**
- * The default value of the {@link #ACCEPT_TIMEOUT_PROPERTY_NAME} system property.
- */
- public static final int DEFAULT_ACCEPT_TIMEOUT_MS = 9900;
-
/**
* Test value for accept timeout
*/
private final int acceptTimeout =
Integer.getInteger(ACCEPT_TIMEOUT_PROPERTY_NAME, DEFAULT_ACCEPT_TIMEOUT_MS).intValue();
-
- /**
- * The mininum value of max-connections
- */
- public static final int MINIMUM_MAX_CONNECTIONS = 16;
-
/**
* The buffer size for server-side sockets.
*/
private final int socketBufferSize;
-
- /**
- * Notifies clients of updates
- */
- private CacheClientNotifier clientNotifier;
-
- /**
- * The default value of the {@link ServerSocket} {@link #BACKLOG_PROPERTY_NAME}system property
- */
- private static final int DEFAULT_BACKLOG = 1000;
-
- /**
- * The system property name for setting the {@link ServerSocket}backlog
- */
- public static final String BACKLOG_PROPERTY_NAME = "BridgeServer.backlog";
-
- /**
- * Current number of ServerConnection instances that are CLIENT_TO_SERVER cons.
- */
- public final AtomicInteger clientServerCnxCount = new AtomicInteger();
-
- /**
- * Has this acceptor been shut down
- */
- private volatile boolean shutdownStarted = false;
-
- /**
- * The thread that runs the acceptor
- */
- private Thread thread = null;
-
- /**
- * The thread that runs the selector loop if any
- */
- private Thread selectorThread = null;
-
/**
* Controls updates to {@link #allSCs}
*/
private final Object allSCsLock = new Object();
-
/**
* List of ServerConnection.
*
@@ -273,14 +244,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
* guarded.By {@link #allSCsLock}
*/
private final HashSet allSCs = new HashSet();
-
- /**
- * List of ServerConnections, for {@link #emergencyClose()}
- *
- * guarded.By {@link #allSCsLock}
- */
- private volatile ServerConnection allSCList[] = new ServerConnection[0];
-
/**
* The ip address or host name this acceptor is to bind to; <code>null</code> or "" indicates it
* will listen on all local addresses.
@@ -288,38 +251,67 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
* @since GemFire 5.7
*/
private final String bindHostName;
-
/**
* A listener for connect/disconnect events
*/
private final ConnectionListener connectionListener;
-
/**
* The client health monitor tracking connections for this acceptor
*/
private final ClientHealthMonitor healthMonitor;
-
/**
* bridge's setting of notifyBySubscription
*/
private final boolean notifyBySubscription;
-
+ private final SocketCreator socketCreator;
+ private final SecurityService securityService;
+ private final ServerConnectionFactory serverConnectionFactory;
+ /**
+ * This system property is only used if max-threads == 0. This is for 5.0.2 backwards
+ * compatibility.
+ *
+ * @deprecated since 5.1 use cache-server max-threads instead
+ */
+ @Deprecated
+ private final int DEPRECATED_SELECTOR_POOL_SIZE =
+ Integer.getInteger("BridgeServer.SELECTOR_POOL_SIZE", 16).intValue();
+ private final int HANDSHAKE_POOL_SIZE = Integer
+ .getInteger("BridgeServer.HANDSHAKE_POOL_SIZE", HANDSHAKER_DEFAULT_POOL_SIZE).intValue();
+ protected boolean loggedAcceptError = false;
+ /**
+ * The server socket that handles requests for connections
+ */
+ private ServerSocket serverSock = null;
+ /**
+ * Notifies clients of updates
+ */
+ private CacheClientNotifier clientNotifier;
+ /**
+ * Has this acceptor been shut down
+ */
+ private volatile boolean shutdownStarted = false;
+ /**
+ * The thread that runs the acceptor
+ */
+ private Thread thread = null;
+ /**
+ * The thread that runs the selector loop if any
+ */
+ private Thread selectorThread = null;
+ /**
+ * List of ServerConnections, for {@link #emergencyClose()}
+ *
+ * guarded.By {@link #allSCsLock}
+ */
+ private volatile ServerConnection allSCList[] = new ServerConnection[0];
/**
* The AcceptorImpl identifier, used to identify the clients connected to this Acceptor.
*/
private long acceptorId;
-
- private static boolean isAuthenticationRequired;
-
- private static boolean isPostAuthzCallbackPresent;
-
private boolean isGatewayReceiver;
private List<GatewayTransportFilter> gatewayTransportFilters;
- private final SocketCreator socketCreator;
-
- private final SecurityService securityService;
-
- private final ServerConnectionFactory serverConnectionFactory;
+ private Selector tmpSel;
+ private int registeredKeys = 0;
/**
* Initializes this acceptor thread to listen for connections on the given port.
@@ -535,11 +527,9 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
LocalizedStrings.AcceptorImpl_CACHE_SERVER_CONNECTION_LISTENER_BOUND_TO_ADDRESS_0_WITH_BACKLOG_1,
new Object[] {sockName, Integer.valueOf(backLog)}));
if (isGatewayReceiver) {
- this.stats =
- (CacheServerStats) StatsFactory
- .createStatsImpl(GatewayReceiverStats.class, null, sockName);
+ this.stats = StatsFactory.createStatsImpl(GatewayReceiverStats.class, sockName);
} else {
- this.stats = StatsFactory.createStatsImpl(CacheServerStats.class, null, sockName);
+ this.stats = StatsFactory.createStatsImpl(CacheServerStats.class, sockName);
}
}
@@ -568,6 +558,78 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
(postAuthzFactoryName != null && postAuthzFactoryName.length() > 0) ? true : false;
}
+ /**
+ * Ensure that the CachedRegionHelper and ServerConnection classes get loaded.
+ *
+ * @see SystemFailure#loadEmergencyClasses()
+ */
+ public static void loadEmergencyClasses() {
+ if (emergencyClassesLoaded) {
+ return;
+ }
+ emergencyClassesLoaded = true;
+ CachedRegionHelper.loadEmergencyClasses();
+ ServerConnection.loadEmergencyClasses();
+ }
+
+ protected static void closeSocket(Socket s) {
+ if (s != null) {
+ try {
+ s.close();
+ } catch (IOException ignore) {
+ }
+ }
+ }
+
+ /**
+ * @param bindName the ip address or host name that this acceptor should bind to. If null or ""
+ * then calculate it.
+ * @return the ip address or host name this acceptor will listen on. An "" if all local addresses
+ * will be listened to.
+ * @since GemFire 5.7
+ */
+ private static String calcBindHostName(Cache cache, String bindName) {
+ if (bindName != null && !bindName.equals("")) {
+ return bindName;
+ }
+
+ InternalDistributedSystem system = (InternalDistributedSystem) cache.getDistributedSystem();
+ DistributionConfig config = system.getConfig();
+ String hostName = null;
+
+ // Get the server-bind-address. If it is not null, use it.
+ // If it is null, get the bind-address. If it is not null, use it.
+ // Otherwise set default.
+ String serverBindAddress = config.getServerBindAddress();
+ if (serverBindAddress != null && serverBindAddress.length() > 0) {
+ hostName = serverBindAddress;
+ } else {
+ String bindAddress = config.getBindAddress();
+ if (bindAddress != null && bindAddress.length() > 0) {
+ hostName = bindAddress;
+ }
+ }
+ return hostName;
+ }
+
+ // IBM J9 sometimes reports "listen failed" instead of BindException
+ // see bug #40589
+ public static boolean treatAsBindException(SocketException se) {
+ if (se instanceof BindException) {
+ return true;
+ }
+ final String msg = se.getMessage();
+ return (msg != null && msg.contains("Invalid argument: listen failed"));
+ }
+
+ public static boolean isAuthenticationRequired() {
+ return isAuthenticationRequired;
+ }
+
+ public static boolean isPostAuthzCallbackPresent() {
+ return isPostAuthzCallbackPresent;
+ }
+
private ThreadPoolExecutor initializeHandshakerThreadPool() throws IOException {
String gName = "Handshaker " + serverSock.getInetAddress() + ":" + this.localPort;
final ThreadGroup socketThreadGroup = LoggingThreadGroup.createThreadGroup(gName, logger);
@@ -701,27 +763,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
return this.maxThreads > 0;
}
- /**
- * This system property is only used if max-threads == 0. This is for 5.0.2 backwards
- * compatibility.
- *
- * @deprecated since 5.1 use cache-server max-threads instead
- */
- @Deprecated
- private static final boolean DEPRECATED_SELECTOR = Boolean.getBoolean("BridgeServer.SELECTOR");
-
- /**
- * This system property is only used if max-threads == 0. This is for 5.0.2 backwards
- * compatibility.
- *
- * @deprecated since 5.1 use cache-server max-threads instead
- */
- @Deprecated
- private final int DEPRECATED_SELECTOR_POOL_SIZE =
- Integer.getInteger("BridgeServer.SELECTOR_POOL_SIZE", 16).intValue();
- private final int HANDSHAKE_POOL_SIZE = Integer
- .getInteger("BridgeServer.HANDSHAKE_POOL_SIZE", HANDSHAKER_DEFAULT_POOL_SIZE).intValue();
-
@Override
public void start() throws IOException {
ThreadGroup tg = LoggingThreadGroup.createThreadGroup(
@@ -845,25 +886,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
}
/**
- * break any potential circularity in {@link #loadEmergencyClasses()}
- */
- private static volatile boolean emergencyClassesLoaded = false;
-
- /**
- * Ensure that the CachedRegionHelper and ServerConnection classes get loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- if (emergencyClassesLoaded) {
- return;
- }
- emergencyClassesLoaded = true;
- CachedRegionHelper.loadEmergencyClasses();
- ServerConnection.loadEmergencyClasses();
- }
-
- /**
* @see SystemFailure#emergencyClose()
*/
public void emergencyClose() {
@@ -918,11 +940,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
return result;
}
- private static final boolean WORKAROUND_SELECTOR_BUG =
- Boolean.getBoolean("CacheServer.NIO_SELECTOR_WORKAROUND");
-
- private Selector tmpSel;
-
private void checkForStuckKeys() {
if (!WORKAROUND_SELECTOR_BUG) {
return;
@@ -1042,8 +1059,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
}
}
- private int registeredKeys = 0;
-
public void runSelectorLoop() {
// int zeroEventsCount = 0;
try {
@@ -1206,7 +1221,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
return name;
}
-
public InetAddress getServerInetAddr() {
return this.serverSock.getInetAddress();
}
@@ -1242,17 +1256,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
return this.selectorQueue;
}
- protected boolean loggedAcceptError = false;
-
- protected static void closeSocket(Socket s) {
- if (s != null) {
- try {
- s.close();
- } catch (IOException ignore) {
- }
- }
- }
-
/**
* {@linkplain ServerSocket#accept Listens}for a client to connect and then creates a new {@link
* ServerConnection}to handle messages from that client.
@@ -1520,9 +1523,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
}
}
- static final byte REPLY_REFUSED = (byte) 60;
- static final byte REPLY_INVALID = (byte) 61;
-
void refuseHandshake(OutputStream out, String message, byte exception) throws IOException {
HeapDataOutputStream hdos = new HeapDataOutputStream(32, Version.CURRENT);
@@ -1728,37 +1728,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
&& (selector == null || !selector.isOpen()) && (tmpSel == null || !tmpSel.isOpen());
}
- /**
- * @param bindName the ip address or host name that this acceptor should bind to. If null or ""
- * then calculate it.
- * @return the ip address or host name this acceptor will listen on. An "" if all local addresses
- * will be listened to.
- * @since GemFire 5.7
- */
- private static String calcBindHostName(Cache cache, String bindName) {
- if (bindName != null && !bindName.equals("")) {
- return bindName;
- }
-
- InternalDistributedSystem system = (InternalDistributedSystem) cache.getDistributedSystem();
- DistributionConfig config = system.getConfig();
- String hostName = null;
-
- // Get the server-bind-address. If it is not null, use it.
- // If it is null, get the bind-address. If it is not null, use it.
- // Otherwise set default.
- String serverBindAddress = config.getServerBindAddress();
- if (serverBindAddress != null && serverBindAddress.length() > 0) {
- hostName = serverBindAddress;
- } else {
- String bindAddress = config.getBindAddress();
- if (bindAddress != null && bindAddress.length() > 0) {
- hostName = bindAddress;
- }
- }
- return hostName;
- }
-
private InetAddress getBindAddress() throws IOException {
if (this.bindHostName == null || "".equals(this.bindHostName)) {
return null; // pick default local address
@@ -1831,24 +1800,6 @@ public class AcceptorImpl implements Acceptor, Runnable, CommBufferPool {
return this.gatewayTransportFilters;
}
- // IBM J9 sometimes reports "listen failed" instead of BindException
- // see bug #40589
- public static boolean treatAsBindException(SocketException se) {
- if (se instanceof BindException) {
- return true;
- }
- final String msg = se.getMessage();
- return (msg != null && msg.contains("Invalid argument: listen failed"));
- }
-
- public static boolean isAuthenticationRequired() {
- return isAuthenticationRequired;
- }
-
- public static boolean isPostAuthzCallbackPresent() {
- return isPostAuthzCallbackPresent;
- }
-
public Set<ServerConnection> getAllServerConnections() {
return Collections.unmodifiableSet(allSCs);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
index 8e7a1f2..ec5d255 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
@@ -288,8 +288,7 @@ public class CacheClientUpdater extends Thread implements ClientUpdater, Disconn
// this holds the connection which this threads reads
this.eManager = eManager;
this.endpoint = endpoint;
- this.stats = StatsFactory.createStatsImpl(CCUStats.class, this.system.getStatisticsFactory(),
- this.location.toString());
+ this.stats = StatsFactory.createStatsImpl(CCUStats.class, this.location.toString());
// Create the connection...
final boolean isDebugEnabled = logger.isDebugEnabled();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
index 31e1529..4c16b79 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
@@ -269,8 +269,7 @@ public abstract class AbstractGatewaySender implements InternalGatewaySender, Di
this.senderAdvisor = GatewaySenderAdvisor.createGatewaySenderAdvisor(this);
if (!this.isForInternalUse()) {
this.statistics = StatsFactory
- .createStatsImpl(GatewaySenderStats.class,
- cache.getDistributedSystem().getStatisticsFactory(), id);
+ .createStatsImpl(GatewaySenderStats.class, id);
}
initializeEventIdIndex();
}
@@ -1254,8 +1253,7 @@ public abstract class AbstractGatewaySender implements InternalGatewaySender, Di
final HasCachePerfStats statsHolder = new HasCachePerfStats() {
@Override
public CachePerfStats getCachePerfStats() {
- return StatsFactory.createStatsImpl(CachePerfStats.class,
- cache.getDistributedSystem().getStatisticsFactory(), META_DATA_REGION_NAME);
+ return StatsFactory.createStatsImpl(CachePerfStats.class, META_DATA_REGION_NAME);
}
};
diff --git a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStorage.java b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStorage.java
index e6d5fe3..65c2616 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStorage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStorage.java
@@ -24,7 +24,6 @@ import org.apache.geode.distributed.internal.InternalLocator;
import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.stats.common.internal.offheap.OffHeapStorageStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
@@ -39,9 +38,9 @@ public class OffHeapStorage {
private final OffHeapStorageStats stats;
- private OffHeapStorage(StatisticsFactory factory) {
+ private OffHeapStorage() {
this.stats =
- StatsFactory.createStatsImpl(OffHeapStorageStats.class, factory, "offHeapMemoryStats");
+ StatsFactory.createStatsImpl(OffHeapStorageStats.class, "offHeapMemoryStats");
}
public static long parseOffHeapMemorySize(String value) {
@@ -104,7 +103,7 @@ public class OffHeapStorage {
*
* @return MemoryAllocator for off-heap storage
*/
- public static MemoryAllocator createOffHeapStorage(StatisticsFactory sf, long offHeapMemorySize,
+ public static MemoryAllocator createOffHeapStorage(long offHeapMemorySize,
DistributedSystem system) {
if (offHeapMemorySize == 0 || Boolean.getBoolean(InternalLocator.FORCE_LOCATOR_DM_TYPE)) {
// Checking the FORCE_LOCATOR_DM_TYPE is a quick hack to keep our locator from allocating off
@@ -126,15 +125,13 @@ public class OffHeapStorage {
// ooohml provides the hook for disconnecting and closing cache on OutOfOffHeapMemoryException
OutOfOffHeapMemoryListener ooohml =
new DisconnectingOutOfOffHeapMemoryListener((InternalDistributedSystem) system);
- return basicCreateOffHeapStorage(sf, offHeapMemorySize, ooohml);
+ return basicCreateOffHeapStorage(offHeapMemorySize, ooohml);
}
- static MemoryAllocator basicCreateOffHeapStorage(StatisticsFactory statisticsFactory,
- long offHeapMemorySize,
+ static MemoryAllocator basicCreateOffHeapStorage(long offHeapMemorySize,
OutOfOffHeapMemoryListener ooohml) {
final OffHeapStorageStats stats =
- StatsFactory.createStatsImpl(OffHeapStorageStats.class, statisticsFactory,
- "offHeapStorageStats");
+ StatsFactory.createStatsImpl(OffHeapStorageStats.class, "offHeapStorageStats");
// determine off-heap and slab sizes
final long maxSlabSize = calcMaxSlabSize(offHeapMemorySize);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/CallbackSampler.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/CallbackSampler.java
index 4517e68..37aa5d7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/CallbackSampler.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/CallbackSampler.java
@@ -31,10 +31,10 @@ public class CallbackSampler {
private final CancelCriterion cancelCriterion;
private long sampleIntervalNanos;
private ScheduledExecutorService executor;
- private final StatSamplerStats statSamplerStats;
+ private final StatSamplerStatsImpl statSamplerStats;
public CallbackSampler(final CancelCriterion cancelCriterion,
- final StatSamplerStats statSamplerStats) {
+ final StatSamplerStatsImpl statSamplerStats) {
this.cancelCriterion = cancelCriterion;
this.statSamplerStats = statSamplerStats;
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/DummyStatisticsFactory.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/DummyStatisticsFactory.java
index 3e2becb..72a0449 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/DummyStatisticsFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/DummyStatisticsFactory.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.statistics;
import java.io.IOException;
import java.io.Reader;
+import java.util.List;
import org.apache.geode.stats.common.statistics.StatisticDescriptor;
import org.apache.geode.stats.common.statistics.Statistics;
@@ -49,13 +50,11 @@ public class DummyStatisticsFactory implements StatisticsFactory {
return result;
}
- // /** for internal use only. Its called by {@link LocalStatisticsImpl#close}. */
- // public void destroyStatistics(Statistics stats) {
- // if (statsList.remove(stats)) {
- // statsListModCount++;
- // }
- // }
- //
+ @Override
+ public Statistics findStatisticsByUniqueId(long uniqueId) {
+ return null;
+ }
+
public Statistics createAtomicStatistics(StatisticsType type) {
return createAtomicStatistics(type, null, 1);
}
@@ -81,6 +80,16 @@ public class DummyStatisticsFactory implements StatisticsFactory {
return new Statistics[0];
}
+ @Override
+ public String getType() {
+ return null;
+ }
+
+ @Override
+ public List getStatsList() {
+ return null;
+ }
+
public StatisticsType createType(String name, String description, StatisticDescriptor[] stats) {
return factory.createType(name, description, stats);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/GFSStatisticsFactoryImpl.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/GFSStatisticsFactoryImpl.java
index fcfaaf4..d6bee4a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/GFSStatisticsFactoryImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/GFSStatisticsFactoryImpl.java
@@ -9,13 +9,15 @@ import java.util.concurrent.atomic.LongAdder;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.internal.statistics.platform.OsStatisticsFactory;
import org.apache.geode.stats.common.statistics.StatisticDescriptor;
import org.apache.geode.stats.common.statistics.Statistics;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.StatisticsType;
import org.apache.geode.stats.common.statistics.StatisticsTypeFactory;
-public class GFSStatisticsFactoryImpl implements StatisticsFactory, StatisticsManager {
+public class GFSStatisticsFactoryImpl implements StatisticsFactory, StatisticsManager,
+ OsStatisticsFactory {
private final CopyOnWriteArrayList<Statistics> statsList = new CopyOnWriteArrayList<>();
private int statsListModCount = 0;
@@ -133,37 +135,37 @@ public class GFSStatisticsFactoryImpl implements StatisticsFactory, StatisticsMa
@Override
public StatisticDescriptor createIntCounter(String name, String description, String units,
- boolean largerBetter) {
+ boolean largerBetter) {
return statisticsTypeFactory.createIntCounter(name, description, units, largerBetter);
}
@Override
public StatisticDescriptor createLongCounter(String name, String description, String units,
- boolean largerBetter) {
+ boolean largerBetter) {
return statisticsTypeFactory.createLongCounter(name, description, units, largerBetter);
}
@Override
public StatisticDescriptor createDoubleCounter(String name, String description, String units,
- boolean largerBetter) {
+ boolean largerBetter) {
return statisticsTypeFactory.createDoubleCounter(name, description, units, largerBetter);
}
@Override
public StatisticDescriptor createIntGauge(String name, String description, String units,
- boolean largerBetter) {
+ boolean largerBetter) {
return statisticsTypeFactory.createIntGauge(name, description, units, largerBetter);
}
@Override
public StatisticDescriptor createLongGauge(String name, String description, String units,
- boolean largerBetter) {
+ boolean largerBetter) {
return statisticsTypeFactory.createLongGauge(name, description, units, largerBetter);
}
@Override
public StatisticDescriptor createDoubleGauge(String name, String description, String units,
- boolean largerBetter) {
+ boolean largerBetter) {
return statisticsTypeFactory.createDoubleGauge(name, description, units, largerBetter);
}
@@ -219,6 +221,7 @@ public class GFSStatisticsFactoryImpl implements StatisticsFactory, StatisticsMa
return hits.toArray(result);
}
+ @Override
public Statistics findStatisticsByUniqueId(final long uniqueId) {
for (Statistics statistics : this.statsList) {
if (uniqueId == statistics.getUniqueId()) {
@@ -242,7 +245,7 @@ public class GFSStatisticsFactoryImpl implements StatisticsFactory, StatisticsMa
@Override
public Statistics createOsStatistics(StatisticsType type, String textId, long numericId,
- int osStatFlags) {
+ int osStatFlags) {
statsListUniqueId.increment();
Statistics result =
new LocalStatisticsImpl(type, textId, numericId, statsListUniqueId.longValue(), false,
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/GemFireStatSampler.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/GemFireStatSampler.java
index e4a2031..7e4cf0b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/GemFireStatSampler.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/GemFireStatSampler.java
@@ -42,6 +42,7 @@ import org.apache.geode.internal.statistics.platform.OsStatisticsFactory;
import org.apache.geode.internal.statistics.platform.ProcessStats;
import org.apache.geode.stats.common.statistics.Statistics;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
+import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
* GemFireStatSampler adds listeners and rolling archives to HostStatSampler.
@@ -77,7 +78,7 @@ public class GemFireStatSampler extends HostStatSampler {
InternalDistributedSystemStats internalDistributedSystemStats,
DistributionManager distributionManager) {
super(cancelCriterion,
- new StatSamplerStats(internalDistributedSystemStats, internalDistributedId));
+ StatsFactory.createStatsImpl(StatSampleStats.class, String.valueOf(internalDistributedId)));
this.distributionConfig = distributionConfig;
this.distributionManager = distributionManager;
this.internalDistributedSystemStats = internalDistributedSystemStats;
@@ -237,16 +238,16 @@ public class GemFireStatSampler extends HostStatSampler {
@Override
protected StatisticsManager getStatisticsManager() {
- return this.internalDistributedSystemStats;
+ return this.internalDistributedSystemStats.getStatisticsManager();
}
@Override
protected OsStatisticsFactory getOsStatisticsFactory() {
- return this.internalDistributedSystemStats;
+ return this.internalDistributedSystemStats.getOSStatisticsFactory();
}
private StatisticsFactory getStatisticsFactory() {
- return internalDistributedSystemStats;
+ return internalDistributedSystemStats.getStatisticsFactory();
}
@Override
@@ -343,8 +344,8 @@ public class GemFireStatSampler extends HostStatSampler {
protected abstract static class StatListenerImpl {
protected Statistics stats;
protected StatisticDescriptorImpl stat;
- boolean oldValueInitialized = false;
protected long oldValue;
+ boolean oldValueInitialized = false;
public long getStatId() {
if (this.stats.isClosed()) {
@@ -360,10 +361,6 @@ public class GemFireStatSampler extends HostStatSampler {
protected abstract static class LocalStatListenerImpl extends StatListenerImpl {
private LocalStatListener listener;
- public LocalStatListener getListener() {
- return this.listener;
- }
-
static LocalStatListenerImpl create(LocalStatListener l, Statistics stats, String statName) {
LocalStatListenerImpl result;
StatisticDescriptorImpl stat = (StatisticDescriptorImpl) stats.nameToDescriptor(statName);
@@ -389,6 +386,10 @@ public class GemFireStatSampler extends HostStatSampler {
return result;
}
+ public LocalStatListener getListener() {
+ return this.listener;
+ }
+
/**
* Checks to see if the value of the stat has changed. If it has then the local listener is
* fired
@@ -435,31 +436,6 @@ public class GemFireStatSampler extends HostStatSampler {
private int listenerId;
private InternalDistributedMember recipient;
- @Override
- public int hashCode() {
- return listenerId;
- }
-
- @Override
- public boolean equals(Object o) {
- if (o == null) {
- return false;
- }
- if (o instanceof RemoteStatListenerImpl) {
- return listenerId == ((RemoteStatListenerImpl) o).listenerId;
- } else {
- return false;
- }
- }
-
- int getListenerId() {
- return this.listenerId;
- }
-
- public InternalDistributedMember getRecipient() {
- return this.recipient;
- }
-
static RemoteStatListenerImpl create(int listenerId, InternalDistributedMember recipient,
long resourceId, String statName,
HostStatSampler sampler) {
@@ -491,6 +467,31 @@ public class GemFireStatSampler extends HostStatSampler {
return result;
}
+ @Override
+ public int hashCode() {
+ return listenerId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == null) {
+ return false;
+ }
+ if (o instanceof RemoteStatListenerImpl) {
+ return listenerId == ((RemoteStatListenerImpl) o).listenerId;
+ } else {
+ return false;
+ }
+ }
+
+ int getListenerId() {
+ return this.listenerId;
+ }
+
+ public InternalDistributedMember getRecipient() {
+ return this.recipient;
+ }
+
/**
* Checks to see if the value of the stat has changed. If it has then it adds that change to the
* specified message.
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/HostStatSampler.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/HostStatSampler.java
index 3cb4e31..6cdc086 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/HostStatSampler.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/HostStatSampler.java
@@ -77,9 +77,9 @@ public abstract class HostStatSampler
private final boolean osStatsDisabled = Boolean.getBoolean(OS_STATS_DISABLED_PROPERTY);
private final boolean fileSizeLimitInKB;
- private final StatSamplerStats samplerStats;
+ private final StatSamplerStatsImpl samplerStats;
- private VMStatsContract vmStats;
+ private VMStats vmStats;
private SampleCollector sampleCollector;
/**
@@ -93,11 +93,11 @@ public abstract class HostStatSampler
private final NanoTimer timer;
- protected HostStatSampler(CancelCriterion stopper, StatSamplerStats samplerStats) {
+ protected HostStatSampler(CancelCriterion stopper, StatSamplerStatsImpl samplerStats) {
this(stopper, samplerStats, new NanoTimer());
}
- protected HostStatSampler(CancelCriterion stopper, StatSamplerStats samplerStats,
+ protected HostStatSampler(CancelCriterion stopper, StatSamplerStatsImpl samplerStats,
NanoTimer timer) {
this.stopper = stopper;
this.statSamplerInitializedLatch = new StoppableCountDownLatch(this.stopper, 1);
@@ -107,7 +107,7 @@ public abstract class HostStatSampler
this.timer = timer;
}
- public StatSamplerStats getStatSamplerStats() {
+ public StatSamplerStatsImpl getStatSamplerStats() {
return this.samplerStats;
}
@@ -400,7 +400,7 @@ public abstract class HostStatSampler
*
* @since GemFire 3.5
*/
- public VMStatsContract getVMStats() {
+ public VMStats getVMStats() {
return this.vmStats;
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/InternalDistributedSystemStats.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/InternalDistributedSystemStats.java
index 62a5031..508d79c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/InternalDistributedSystemStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/InternalDistributedSystemStats.java
@@ -14,15 +14,18 @@
*/
package org.apache.geode.internal.statistics;
+import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.internal.cache.execute.FunctionServiceStats;
-import org.apache.geode.statistics.micrometer.MicrometerStatisticsFactoryImpl;
+import org.apache.geode.internal.statistics.platform.OsStatisticsFactory;
import org.apache.geode.stats.common.internal.cache.execute.FunctionStats;
+import org.apache.geode.stats.common.statistics.Statistics;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
+import org.apache.geode.stats.common.statistics.StatisticsType;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
public class InternalDistributedSystemStats {
@@ -123,4 +126,46 @@ public class InternalDistributedSystemStats {
public GemFireStatSampler getStatSampler() {
return this.sampler;
}
+
+ /**
+ * For every registered statistic instance call the specified visitor. This method was added to
+ * fix bug 40358
+ */
+ public void visitStatistics(InternalDistributedSystem.StatisticsVisitor visitor) {
+ for (Statistics s : getStatsList()) {
+ visitor.visit(s);
+ }
+ }
+
+ public StatisticsFactory getStatisticsFactory() {
+ return statisticsFactory;
+ }
+
+ public List<Statistics> getStatsList() {
+ return statisticsFactory.getStatsList();
+ }
+
+ public Statistics[] findStatisticsByType(StatisticsType gcType) {
+ return statisticsFactory.findStatisticsByType(gcType);
+ }
+
+ public Statistics findStatisticsByUniqueId(long rsrcUniqueId) {
+ return statisticsFactory.findStatisticsByUniqueId(rsrcUniqueId);
+ }
+
+ public StatisticsType findType(String cachePerfStats) {
+ return statisticsFactory.findType(cachePerfStats);
+ }
+
+ public Statistics[] findStatisticsByTextId(String textId) {
+ return statisticsFactory.findStatisticsByTextId(textId);
+ }
+
+ public StatisticsManager getStatisticsManager() {
+ return (StatisticsManager) statisticsFactory;
+ }
+
+ public OsStatisticsFactory getOSStatisticsFactory() {
+ return (OsStatisticsFactory) statisticsFactory;
+ }
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/SimpleStatSampler.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/SimpleStatSampler.java
index d56474a..fe9a520 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/SimpleStatSampler.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/SimpleStatSampler.java
@@ -63,7 +63,7 @@ public class SimpleStatSampler extends HostStatSampler {
}
public SimpleStatSampler(CancelCriterion stopper, StatisticsManager sm, NanoTimer timer) {
- super(stopper, new StatSamplerStats(sm, sm.getId()), timer);
+ super(stopper, new StatSamplerStatsImpl(sm, sm.getId()), timer);
this.sm = sm;
logger.info(LogMarker.STATISTICS_MARKER, LocalizedMessage
.create(LocalizedStrings.SimpleStatSampler_STATSSAMPLERATE_0, getSampleRate()));
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/StatSamplerStats.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/StatSamplerStatsImpl.java
similarity index 85%
rename from geode-core/src/main/java/org/apache/geode/internal/statistics/StatSamplerStats.java
rename to geode-core/src/main/java/org/apache/geode/internal/statistics/StatSamplerStatsImpl.java
index 0a8f7af..580be9c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/StatSamplerStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/StatSamplerStatsImpl.java
@@ -14,6 +14,7 @@
*/
package org.apache.geode.internal.statistics;
+import org.apache.geode.stats.common.statistics.GFSStatsImplementer;
import org.apache.geode.stats.common.statistics.StatisticDescriptor;
import org.apache.geode.stats.common.statistics.Statistics;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
@@ -22,16 +23,16 @@ import org.apache.geode.stats.common.statistics.StatisticsType;
/**
* Statistics related to the statistic sampler.
*/
-public class StatSamplerStats {
- public static final String SAMPLE_COUNT = "sampleCount"; // int
- public static final String SAMPLE_TIME = "sampleTime"; // long
- public static final String DELAY_DURATION = "delayDuration"; // int
- public static final String STAT_RESOURCES = "statResources"; // int
- public static final String JVM_PAUSES = "jvmPauses"; // int
- public static final String SAMPLE_CALLBACKS = "sampleCallbacks"; // int
- public static final String SAMPLE_CALLBACK_ERRORS = "sampleCallbackErrors"; // int
- public static final String SAMPLE_CALLBACK_DURATION = "sampleCallbackDuration"; // long
-
+public class StatSamplerStatsImpl implements StatSampleStats, GFSStatsImplementer {
+ private static final String SAMPLE_COUNT = "sampleCount"; // int
+ private static final String SAMPLE_TIME = "sampleTime"; // long
+ private static final String DELAY_DURATION = "delayDuration"; // int
+ private static final String STAT_RESOURCES = "statResources"; // int
+ private static final String JVM_PAUSES = "jvmPauses"; // int
+ private static final String SAMPLE_CALLBACKS = "sampleCallbacks"; // int
+ private static final String SAMPLE_CALLBACK_ERRORS = "sampleCallbackErrors"; // int
+ private static final String SAMPLE_CALLBACK_DURATION = "sampleCallbackDuration"; // long
+ private final Statistics samplerStats;
private StatisticsType samplerType;
private int sampleCountId;
private int sampleTimeId;
@@ -42,7 +43,12 @@ public class StatSamplerStats {
private int sampleCallbackErrorsId;
private int sampleCallbackDurationId;
- private void initializeStats(StatisticsFactory factory) {
+ public StatSamplerStatsImpl(StatisticsFactory factory, long id) {
+ initializeStats(factory);
+ this.samplerStats = factory.createStatistics(samplerType, "statSampler", id);
+ }
+
+ public void initializeStats(StatisticsFactory factory) {
samplerType = factory.createType("StatSampler", "Stats on the statistic sampler.",
new StatisticDescriptor[] {
factory.createIntCounter(SAMPLE_COUNT, "Total number of samples taken by this sampler.",
@@ -76,13 +82,6 @@ public class StatSamplerStats {
sampleCallbackDurationId = samplerType.nameToId(SAMPLE_CALLBACK_DURATION);
}
- private final Statistics samplerStats;
-
- public StatSamplerStats(StatisticsFactory factory, long id) {
- initializeStats(factory);
- this.samplerStats = factory.createStatistics(samplerType, "statSampler", id);
- }
-
public void tookSample(long nanosSpentWorking, int statResources, long nanosSpentSleeping) {
this.samplerStats.incInt(sampleCountId, 1);
this.samplerStats.incLong(sampleTimeId, nanosSpentWorking / 1000000);
@@ -90,38 +89,47 @@ public class StatSamplerStats {
this.samplerStats.setInt(statResourcesId, statResources);
}
+ @Override
public void incJvmPauses() {
this.samplerStats.incInt(jvmPausesId, 1);
}
+ @Override
public void incSampleCallbackErrors(int delta) {
this.samplerStats.incInt(sampleCallbackErrorsId, delta);
}
+ @Override
public void setSampleCallbacks(int count) {
this.samplerStats.setInt(sampleCallbacksId, count);
}
+ @Override
public void incSampleCallbackDuration(long delta) {
this.samplerStats.incLong(sampleCallbackDurationId, delta);
}
+ @Override
public int getSampleCount() {
return this.samplerStats.getInt(SAMPLE_COUNT);
}
+ @Override
public long getSampleTime() {
return this.samplerStats.getLong(SAMPLE_TIME);
}
+ @Override
public int getDelayDuration() {
return this.samplerStats.getInt(DELAY_DURATION);
}
+ @Override
public int getStatResources() {
return this.samplerStats.getInt(STAT_RESOURCES);
}
+ @Override
public int getJvmPauses() {
return this.samplerStats.getInt(JVM_PAUSES);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsContractFactory.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsContractFactory.java
index 3352248..443b911 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsContractFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsContractFactory.java
@@ -17,16 +17,21 @@ package org.apache.geode.internal.statistics;
import org.apache.geode.SystemFailure;
import org.apache.geode.internal.stats50.VMStats50;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
+import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
* Factory used to produce an instance of VMStatsContract.
*/
public class VMStatsContractFactory {
+ private VMStatsContractFactory() {
+ // private so no instances allowed. static methods only
+ }
+
/**
* Create and return a VMStatsContract.
*/
- public static VMStatsContract create(StatisticsFactory f, long id) {
- VMStatsContract result;
+ public static VMStats create(StatisticsFactory f, long id) {
+ VMStats result;
try {
result = new VMStats50(f, id);
} catch (VirtualMachineError err) {
@@ -46,12 +51,8 @@ public class VMStatsContractFactory {
SystemFailure.checkFailure();
// log.warning("Could not create 5.0 VMStats", ignore);
// couldn't create the 1.5 version so create the old 1.4 version
- result = new VMStats(f, id);
+ result = StatsFactory.createStatsImpl(VMStatsImpl.class, String.valueOf(id));
}
return result;
}
-
- private VMStatsContractFactory() {
- // private so no instances allowed. static methods only
- }
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStats.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsImpl.java
similarity index 90%
rename from geode-core/src/main/java/org/apache/geode/internal/statistics/VMStats.java
rename to geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsImpl.java
index a63d4f1..888ba23 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsImpl.java
@@ -14,6 +14,7 @@
*/
package org.apache.geode.internal.statistics;
+import org.apache.geode.stats.common.statistics.GFSStatsImplementer;
import org.apache.geode.stats.common.statistics.StatisticDescriptor;
import org.apache.geode.stats.common.statistics.Statistics;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
@@ -22,14 +23,14 @@ import org.apache.geode.stats.common.statistics.StatisticsType;
/**
* Statistics related to a Java VM. Currently they all come from {@link java.lang.Runtime}.
*/
-public class VMStats implements VMStatsContract {
+public class VMStatsImpl implements GFSStatsImplementer, VMStats {
private StatisticsType vmType;
private int cpusId;
private int freeMemoryId;
private int totalMemoryId;
private int maxMemoryId;
- private void initializeStats(StatisticsFactory factory) {
+ public void initializeStats(StatisticsFactory factory) {
vmType = factory.createType("VMStats", "Stats available on any java virtual machine.",
new StatisticDescriptor[] {
factory.createIntGauge("cpus",
@@ -53,9 +54,9 @@ public class VMStats implements VMStatsContract {
private final Statistics vmStats;
- public VMStats(StatisticsFactory factory, long id) {
+ public VMStatsImpl(StatisticsFactory factory, String id) {
initializeStats(factory);
- this.vmStats = factory.createStatistics(vmType, "vmStats", id);
+ this.vmStats = factory.createStatistics(vmType, "vmStats", Long.parseLong(id));
}
public void refresh() {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/stats50/VMStats50.java b/geode-core/src/main/java/org/apache/geode/internal/stats50/VMStats50.java
index 7bd2552..639128a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/stats50/VMStats50.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/stats50/VMStats50.java
@@ -37,7 +37,8 @@ import org.apache.geode.SystemFailure;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.internal.logging.LogService;
-import org.apache.geode.internal.statistics.VMStatsContract;
+import org.apache.geode.internal.statistics.VMStats;
+import org.apache.geode.stats.common.statistics.GFSStatsImplementer;
import org.apache.geode.stats.common.statistics.StatisticDescriptor;
import org.apache.geode.stats.common.statistics.Statistics;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
@@ -47,7 +48,7 @@ import org.apache.geode.stats.common.statistics.StatisticsType;
* Statistics related to a Java VM. This version is hardcoded to use 1.5 MXBean stats from
* java.lang.management.
*/
-public class VMStats50 implements VMStatsContract {
+public class VMStats50 implements VMStats, GFSStatsImplementer {
private static final Logger logger = LogService.getLogger(VMStats50.class.getName());
private StatisticsType vmType;
@@ -128,7 +129,7 @@ public class VMStats50 implements VMStatsContract {
private int thread_cpuTimeId;
private int thread_userTimeId;
- private void initializeStats(StatisticsFactory factory) {
+ public void initializeStats(StatisticsFactory factory) {
clBean = ManagementFactory.getClassLoadingMXBean();
memBean = ManagementFactory.getMemoryMXBean();
osBean = ManagementFactory.getOperatingSystemMXBean();
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/FederatingManager.java b/geode-core/src/main/java/org/apache/geode/management/internal/FederatingManager.java
index 8ce532a..54fd191 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/FederatingManager.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/FederatingManager.java
@@ -376,9 +376,7 @@ public class FederatingManager extends Manager {
// Create anonymous stats holder for Management Regions
final HasCachePerfStats monitoringRegionStats =
- () -> StatsFactory.createStatsImpl(CachePerfStats.class,
- cache.getDistributedSystem().getStatisticsFactory(),
- "managementRegionStats");
+ () -> StatsFactory.createStatsImpl(CachePerfStats.class, "managementRegionStats");
internalArgs.setCachePerfStatsHolder(monitoringRegionStats);
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/LocalManager.java b/geode-core/src/main/java/org/apache/geode/management/internal/LocalManager.java
index b32eb3f..341a9e2 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/LocalManager.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/LocalManager.java
@@ -137,8 +137,7 @@ public class LocalManager extends Manager {
// Create anonymous stats holder for Management Regions
final HasCachePerfStats monitoringRegionStats = new HasCachePerfStats() {
public CachePerfStats getCachePerfStats() {
- return StatsFactory.createStatsImpl(CachePerfStats.class,
- cache.getDistributedSystem().getStatisticsFactory(), "managementRegionStats");
+ return StatsFactory.createStatsImpl(CachePerfStats.class, "managementRegionStats");
}
};
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java b/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java
index 7480364..3ac61aa 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java
@@ -77,8 +77,8 @@ import org.apache.geode.internal.process.ProcessUtils;
import org.apache.geode.internal.statistics.GemFireStatSampler;
import org.apache.geode.internal.statistics.HostStatHelper;
import org.apache.geode.internal.statistics.InternalDistributedSystemStats;
-import org.apache.geode.internal.statistics.StatSamplerStats;
-import org.apache.geode.internal.statistics.VMStatsContract;
+import org.apache.geode.internal.statistics.StatSamplerStatsImpl;
+import org.apache.geode.internal.statistics.VMStats;
import org.apache.geode.internal.statistics.platform.ProcessStats;
import org.apache.geode.internal.stats50.VMStats50;
import org.apache.geode.internal.tcp.ConnectionTable;
@@ -565,7 +565,7 @@ public class MemberMBeanBridge {
ProcessStats processStats = sampler.getProcessStats();
- StatSamplerStats samplerStats = sampler.getStatSamplerStats();
+ StatSamplerStatsImpl samplerStats = sampler.getStatSamplerStats();
if (processStats != null) {
systemStatsMonitor.addStatisticsToMonitor(processStats.getStatistics());
}
@@ -575,7 +575,7 @@ public class MemberMBeanBridge {
}
public void addVMStats() {
- VMStatsContract vmStatsContract =
+ VMStats vmStatsContract =
system.getInternalDistributedSystemStats().getStatSampler().getVMStats();
InternalDistributedSystemStats internalDistributedSystemStats =
system.getInternalDistributedSystemStats();
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java
index b2e3338..1ccb55d 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueRemovalMessageJUnitTest.java
@@ -70,11 +70,8 @@ import org.apache.geode.internal.cache.eviction.EvictionController;
import org.apache.geode.internal.cache.partitioned.RegionAdvisor;
import org.apache.geode.internal.cache.wan.AbstractGatewaySender;
import org.apache.geode.internal.cache.wan.GatewaySenderEventImpl;
-import org.apache.geode.internal.statistics.DummyStatisticsFactory;
-import org.apache.geode.internal.statistics.StatisticsTypeFactoryImpl;
import org.apache.geode.stats.common.internal.cache.PartitionedRegionStats;
import org.apache.geode.stats.common.internal.cache.wan.GatewaySenderStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
import org.apache.geode.test.fake.Fakes;
@@ -126,8 +123,7 @@ public class ParallelQueueRemovalMessageJUnitTest {
when(this.queueRegion.getParallelGatewaySender()).thenReturn(this.sender);
when(this.sender.getQueues()).thenReturn(null);
when(this.sender.getDispatcherThreads()).thenReturn(1);
- stats = StatsFactory.createStatsImpl(GatewaySenderStats.class, new DummyStatisticsFactory(
- (StatisticsFactory) new StatisticsTypeFactoryImpl()), "ln");
+ stats = StatsFactory.createStatsImpl(GatewaySenderStats.class, "ln");
when(this.sender.getStatistics()).thenReturn(stats);
}
diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStorageJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStorageJUnitTest.java
index 10a1193..de4f2aa 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStorageJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStorageJUnitTest.java
@@ -31,7 +31,6 @@ import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.DistributionStatsImpl;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.InternalLocator;
-import org.apache.geode.internal.statistics.LocalStatisticsFactory;
import org.apache.geode.stats.common.internal.offheap.OffHeapStorageStats;
import org.apache.geode.stats.common.statistics.StatisticsFactory;
@@ -123,19 +122,19 @@ public class OffHeapStorageJUnitTest {
@Test
public void createOffHeapStorageReturnsNullIfForceLocator() {
System.setProperty(InternalLocator.FORCE_LOCATOR_DM_TYPE, "true");
- assertEquals(null, OffHeapStorage.createOffHeapStorage(null, 1, null));
+ assertEquals(null, OffHeapStorage.createOffHeapStorage(1, null));
}
@Test
public void createOffHeapStorageReturnsNullIfMemorySizeIsZero() {
- assertEquals(null, OffHeapStorage.createOffHeapStorage(null, 0, null));
+ assertEquals(null, OffHeapStorage.createOffHeapStorage(0, null));
}
@Test
public void exceptionIfSlabCountTooSmall() {
StatisticsFactory statsFactory = mock(StatisticsFactory.class);
try {
- OffHeapStorage.createOffHeapStorage(statsFactory, OffHeapStorage.MIN_SLAB_SIZE - 1, null);
+ OffHeapStorage.createOffHeapStorage(OffHeapStorage.MIN_SLAB_SIZE - 1, null);
} catch (IllegalArgumentException expected) {
expected.getMessage()
.equals("The amount of off heap memory must be at least " + OffHeapStorage.MIN_SLAB_SIZE
@@ -145,9 +144,8 @@ public class OffHeapStorageJUnitTest {
@Test
public void exceptionIfDistributedSystemNull() {
- StatisticsFactory statsFactory = mock(StatisticsFactory.class);
try {
- OffHeapStorage.createOffHeapStorage(statsFactory, OffHeapStorage.MIN_SLAB_SIZE,
+ OffHeapStorage.createOffHeapStorage(OffHeapStorage.MIN_SLAB_SIZE,
(DistributedSystem) null);
} catch (IllegalArgumentException expected) {
expected.getMessage().equals("InternalDistributedSystem is null");
@@ -156,20 +154,18 @@ public class OffHeapStorageJUnitTest {
@Test
public void createOffHeapStorageWorks() {
- StatisticsFactory localStatsFactory = new LocalStatisticsFactory(null);
InternalDistributedSystem ids = mock(InternalDistributedSystem.class);
MemoryAllocator ma =
- OffHeapStorage.createOffHeapStorage(localStatsFactory, OffHeapStorage.MIN_SLAB_SIZE, ids);
+ OffHeapStorage.createOffHeapStorage(OffHeapStorage.MIN_SLAB_SIZE, ids);
System.setProperty(MemoryAllocatorImpl.FREE_OFF_HEAP_MEMORY_PROPERTY, "true");
ma.close();
}
@Test
public void testCreateOffHeapStorage() {
- StatisticsFactory localStatsFactory = new LocalStatisticsFactory(null);
OutOfOffHeapMemoryListener ooohml = mock(OutOfOffHeapMemoryListener.class);
MemoryAllocator ma =
- OffHeapStorage.basicCreateOffHeapStorage(localStatsFactory, 1024 * 1024, ooohml);
+ OffHeapStorage.basicCreateOffHeapStorage(1024 * 1024, ooohml);
try {
OffHeapStorageStats stats = ma.getStats();
assertNotNull(stats.getStats());
diff --git a/geode-core/src/test/java/org/apache/geode/internal/statistics/CallbackSamplerTest.java b/geode-core/src/test/java/org/apache/geode/internal/statistics/CallbackSamplerTest.java
index 4cfcd52..6f72793 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/statistics/CallbackSamplerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/statistics/CallbackSamplerTest.java
@@ -42,7 +42,7 @@ public class CallbackSamplerTest {
@Mock
CancelCriterion cancelCriterion;
@Mock
- StatSamplerStats statSamplerStats;
+ StatSamplerStatsImpl statSamplerStats;
@Mock
StatisticsManager statisticsManager;
@Mock
diff --git a/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqQueryImpl.java b/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqQueryImpl.java
index 53937d2..30f2221 100644
--- a/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqQueryImpl.java
+++ b/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqQueryImpl.java
@@ -42,7 +42,6 @@ import org.apache.geode.internal.logging.InternalLogWriter;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.stats.common.cache.query.CqStatistics;
import org.apache.geode.stats.common.cache.query.internal.CqQueryVsdStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
@@ -134,11 +133,9 @@ public abstract class CqQueryImpl implements InternalCqQuery {
void updateCqCreateStats() {
// Initialize the VSD statistics
- StatisticsFactory factory = cache.getDistributedSystem().getStatisticsFactory();
- this.stats = StatsFactory.createStatsImpl(CqQueryVsdStats.class, factory, getServerCqName());
+ this.stats = StatsFactory.createStatsImpl(CqQueryVsdStats.class, getServerCqName());
// This will not converted to a Micrometer impl. This is due to this merely being a wrapper
- // around
- // a real statsImpl
+ // around a real statsImpl
this.cqStats = new CqStatisticsImpl(this);
// Update statistics with CQ creation.
diff --git a/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqServiceImpl.java b/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqServiceImpl.java
index fffb2f1..a452ebc 100644
--- a/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqServiceImpl.java
+++ b/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqServiceImpl.java
@@ -80,7 +80,6 @@ import org.apache.geode.internal.logging.log4j.LocalizedMessage;
import org.apache.geode.stats.common.cache.query.CqServiceStatistics;
import org.apache.geode.stats.common.cache.query.internal.CqQueryVsdStats;
import org.apache.geode.stats.common.cache.query.internal.cq.CqServiceVsdStats;
-import org.apache.geode.stats.common.statistics.StatisticsFactory;
import org.apache.geode.stats.common.statistics.factory.StatsFactory;
/**
@@ -168,8 +167,7 @@ public class CqServiceImpl implements CqService {
this.matchingCqMap = new ConcurrentHashMap<String, HashSet<String>>();
// Initialize the VSD statistics
- StatisticsFactory factory = this.cache.getDistributedSystem().getStatisticsFactory();
- this.cqServiceVsdStats = StatsFactory.createStatsImpl(CqServiceVsdStats.class, factory, null);
+ this.cqServiceVsdStats = StatsFactory.createStatsImpl(CqServiceVsdStats.class, null);
// This won't be converted to a Micrometer stat, as this is not really a stat, but merely a
// wrapper
// around a stat Impl
diff --git a/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqStatisticsImpl.java b/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqStatisticsImpl.java
index 5fc6869..2e83424 100644
--- a/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqStatisticsImpl.java
+++ b/geode-cq/src/main/java/org/apache/geode/cache/query/internal/cq/CqStatisticsImpl.java
@@ -15,13 +15,14 @@
package org.apache.geode.cache.query.internal.cq;
import org.apache.geode.stats.common.cache.query.CqStatistics;
+import org.apache.geode.stats.common.statistics.GFSStatsImplementer;
/**
* Provides statistical information about a CqQuery.
*
* @since GemFire 5.5
*/
-public class CqStatisticsImpl implements CqStatistics {
+public class CqStatisticsImpl implements CqStatistics, GFSStatsImplementer {
private CqQueryImpl cqQuery;
/**
diff --git a/geode-junit/src/main/java/org/apache/geode/test/fake/Fakes.java b/geode-junit/src/main/java/org/apache/geode/test/fake/Fakes.java
index 378e5c0..be83561 100644
--- a/geode-junit/src/main/java/org/apache/geode/test/fake/Fakes.java
+++ b/geode-junit/src/main/java/org/apache/geode/test/fake/Fakes.java
@@ -101,10 +101,12 @@ public class Fakes {
when(system.getClock()).thenReturn(clock);
when(system.getLogWriter()).thenReturn(logger);
when(system.getSecurityService()).thenReturn(mock(SecurityService.class));
- when(system.getInternalDistributedSystemStats().createAtomicStatistics(any(), any(), anyLong()))
- .thenReturn(stats);
- when(system.getInternalDistributedSystemStats().createAtomicStatistics(any(), any()))
- .thenReturn(stats);
+ when(system.getInternalDistributedSystemStats().getStatisticsFactory()
+ .createAtomicStatistics(any(), any(), anyLong()))
+ .thenReturn(stats);
+ when(system.getInternalDistributedSystemStats().getStatisticsFactory()
+ .createAtomicStatistics(any(), any()))
+ .thenReturn(stats);
when(system.getCache()).thenReturn(cache);
when(distributionManager.getId()).thenReturn(member);
diff --git a/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/MicrometerStatSamplerStatsImpl.kt b/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/MicrometerStatSamplerStatsImpl.kt
new file mode 100644
index 0000000..efe7a1a
--- /dev/null
+++ b/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/MicrometerStatSamplerStatsImpl.kt
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.statistics
+
+import org.apache.geode.internal.statistics.StatSampleStats
+import org.apache.geode.statistics.internal.micrometer.impl.CounterStatisticMeter
+import org.apache.geode.statistics.internal.micrometer.impl.GaugeStatisticMeter
+import org.apache.geode.statistics.internal.micrometer.impl.MicrometerMeterGroup
+import org.apache.geode.statistics.micrometer.MicrometerStatsImplementer
+import org.apache.geode.stats.common.statistics.StatisticsFactory
+
+/**
+ * Statistics related to the statistic sampler.
+ */
+class MicrometerStatSamplerStats(factory: StatisticsFactory, id: String) : MicrometerMeterGroup(factory, id), StatSampleStats, MicrometerStatsImplementer {
+
+ private val statSamplerSampleCountMeter = CounterStatisticMeter("stat.sample.count", "Total number of samples taken by this sampler.")
+ @Deprecated("For Micrometer one should really be using Timers rather than current implemented Counters")
+ private val statSamplerSampleTimeTimer = CounterStatisticMeter("stat.sample.timer", "Total amount of time spent taking samples.")
+ private val statSamplerDelayDurationMeter = GaugeStatisticMeter("stat.sample.delay.timer",
+ "Actual duration of sampling delay taken before taking this sample.")
+ private val statSamplerStatisticResoucesCountMeter = GaugeStatisticMeter("stat.sample.resource.count",
+ "Current number of statistic resources being sampled by this sampler.")
+ private val statSamplerJVMPausesMeter = CounterStatisticMeter("stat.sample.jvm.pause.count",
+ "Total number of JVM pauses (which may or may not be full GC pauses) detected by this sampler. " +
+ "A JVM pause is defined as a system event which kept the statistics sampler thread from sampling for 3000 or more milliseconds. " +
+ "This threshold can be customized by setting the system property gemfire.statSamplerDelayThreshold (units are milliseconds).")
+ private val statSamplerSampleCallbackCountMeter = GaugeStatisticMeter("stat.sample.callbacks.count",
+ "Current number of statistics that are sampled using callbacks.", arrayOf("status", "success"))
+ private val statSamplerSampleCallbackErrorCountMeter = CounterStatisticMeter("stat.sample.callbacks.count",
+ "Total number of exceptions thrown by callbacks when performing sampling", arrayOf("status", "error"))
+ private val statSamplerSampleCallbackTimer = CounterStatisticMeter("stat.sample.callbacks.timer", "Total amount of time invoking sampling callbacks")
+
+ override fun initializeStaticMeters() {
+ registerMeter(statSamplerDelayDurationMeter)
+ registerMeter(statSamplerJVMPausesMeter)
+ registerMeter(statSamplerSampleCallbackCountMeter)
+ registerMeter(statSamplerSampleCallbackErrorCountMeter)
+ registerMeter(statSamplerSampleCountMeter)
+ registerMeter(statSamplerStatisticResoucesCountMeter)
+ registerMeter(statSamplerSampleCallbackTimer)
+ registerMeter(statSamplerSampleTimeTimer)
+ }
+
+
+ fun tookSample(nanosSpentWorking: Long, statResources: Int, nanosSpentSleeping: Long) {
+ statSamplerSampleCountMeter.increment()
+ statSamplerSampleTimeTimer.increment(nanosSpentWorking / 1000000)
+ statSamplerDelayDurationMeter.increment(nanosSpentSleeping / 1000000)
+ statSamplerStatisticResoucesCountMeter.increment(statResources)
+ }
+
+ override fun incJvmPauses() {
+ statSamplerJVMPausesMeter.increment()
+ }
+
+ override fun incSampleCallbackErrors(delta: Int) {
+ statSamplerSampleCallbackErrorCountMeter.increment(delta)
+ }
+
+ override fun setSampleCallbacks(count: Int) {
+ statSamplerSampleCallbackCountMeter.setValue(count)
+ }
+
+ override fun incSampleCallbackDuration(delta: Long) {
+ statSamplerSampleCallbackTimer.increment(delta)
+ }
+
+ override fun getSampleCount(): Int = statSamplerSampleCountMeter.getValue().toInt()
+
+ override fun getSampleTime(): Long = statSamplerSampleTimeTimer.getValue()
+
+ override fun getDelayDuration(): Int = statSamplerDelayDurationMeter.getValue().toInt()
+
+ override fun getStatResources(): Int = statSamplerStatisticResoucesCountMeter.getValue().toInt()
+
+ override fun getJvmPauses(): Int = statSamplerJVMPausesMeter.getValue().toInt()
+}
diff --git a/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/micrometer/MicrometerStatisticsFactoryImpl.kt b/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/micrometer/MicrometerStatisticsFactoryImpl.kt
index 5c44415..55e6a7b 100644
--- a/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/micrometer/MicrometerStatisticsFactoryImpl.kt
+++ b/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/micrometer/MicrometerStatisticsFactoryImpl.kt
@@ -107,4 +107,12 @@ class MicrometerStatisticsFactoryImpl(vararg meterRegistries: MeterRegistry = ar
override fun createTypesFromXml(reader: Reader): Array<StatisticsType> {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
+
+ override fun findStatisticsByUniqueId(uniqueId: Long): Statistics {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+
+ override fun getStatsList(): MutableList<Any?> {
+ return super.getStatsList()
+ }
}
\ No newline at end of file
diff --git a/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/resourcemanger/MicrometerResourceManagerStats.kt b/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/resourcemanger/MicrometerResourceManagerStats.kt
index 9b3ccc5..1ba7ebe 100644
--- a/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/resourcemanger/MicrometerResourceManagerStats.kt
+++ b/geode-micrometer-stats/src/main/kotlin/org/apache/geode/statistics/resourcemanger/MicrometerResourceManagerStats.kt
@@ -28,7 +28,7 @@ import org.apache.geode.statistics.util.NOW_NANOS
class MicrometerResourceManagerStats() :
MicrometerMeterGroup(statisticsFactory = null,groupName = "ResourceManagerStats"), ResourceManagerStats, MicrometerStatsImplementer {
- constructor(statisticsFactory: StatisticsFactory?, name: String?): this()
+ constructor(statisticsFactory: StatisticsFactory, name: String?): this()
private val resourceRebalanceInProgressMeter = GaugeStatisticMeter("manager.resources.rebalance.inprogress.count", "Current number of cache rebalance operations being directed by this process.")
private val resourceRebalanceCompletedMeter = CounterStatisticMeter("manager.resources.rebalance.completed.count", "Total number of cache rebalance operations directed by this process.")
diff --git a/geode-stats-common/src/main/java/org/apache/geode/internal/statistics/StatSampleStats.java b/geode-stats-common/src/main/java/org/apache/geode/internal/statistics/StatSampleStats.java
new file mode 100644
index 0000000..ed51be3
--- /dev/null
+++ b/geode-stats-common/src/main/java/org/apache/geode/internal/statistics/StatSampleStats.java
@@ -0,0 +1,23 @@
+package org.apache.geode.internal.statistics;
+
+import org.apache.geode.stats.common.Stats;
+
+public interface StatSampleStats extends Stats {
+ void incJvmPauses();
+
+ void incSampleCallbackErrors(int delta);
+
+ void setSampleCallbacks(int count);
+
+ void incSampleCallbackDuration(long delta);
+
+ int getSampleCount();
+
+ long getSampleTime();
+
+ int getDelayDuration();
+
+ int getStatResources();
+
+ int getJvmPauses();
+}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsContract.java b/geode-stats-common/src/main/java/org/apache/geode/internal/statistics/VMStats.java
similarity index 93%
rename from geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsContract.java
rename to geode-stats-common/src/main/java/org/apache/geode/internal/statistics/VMStats.java
index 7c65281..6e8628c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/VMStatsContract.java
+++ b/geode-stats-common/src/main/java/org/apache/geode/internal/statistics/VMStats.java
@@ -14,15 +14,15 @@
*/
package org.apache.geode.internal.statistics;
+import org.apache.geode.stats.common.Stats;
+
/**
* Describes the contract a VMStats implementation must implement.
* <p>
* I named this VMStatsContract because an implementation named VMStats already exists and I didn't
* want to rename it because of the svn merge issues.
- *
- * @see VMStatsContractFactory
*/
-public interface VMStatsContract {
+public interface VMStats extends Stats {
/**
* Called by sampler when it wants the VMStats statistics values to be refetched from the system.
*/
diff --git a/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/StatisticsFactory.java b/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/StatisticsFactory.java
index f037c5b..0ed6edb 100644
--- a/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/StatisticsFactory.java
+++ b/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/StatisticsFactory.java
@@ -15,6 +15,9 @@
package org.apache.geode.stats.common.statistics;
+import java.util.Collections;
+import java.util.List;
+
/**
* Instances of this interface provide methods that create instances of {@link Statistics}. It can
* also be used to create instances of {@link StatisticDescriptor} and {@link StatisticsType}
@@ -34,22 +37,22 @@ package org.apache.geode.stats.common.statistics;
* has two stats whose values always increase:
*
* <pre>
- StatisticsFactory f = ...;
- StatisticsType t = f.createType(
- "StatSampler",
- "Stats on the statistic sampler.",
- new StatisticDescriptor[] {
- f.createIntCounter("sampleCount",
- "Total number of samples taken by this sampler.",
- "samples"),
- f.createLongCounter("sampleTime",
- "Total amount of time spent taking samples.",
- "milliseconds"),
- }
- );
- this.samplerStats = f.createStatistics(t, "statSampler");
- this.sampleCountId = this.samplerStats.nameToId("sampleCount");
- this.sampleTimeId = this.samplerStats.nameToId("sampleTime");
+ * StatisticsFactory f = ...;
+ * StatisticsType t = f.createType(
+ * "StatSampler",
+ * "Stats on the statistic sampler.",
+ * new StatisticDescriptor[] {
+ * f.createIntCounter("sampleCount",
+ * "Total number of samples taken by this sampler.",
+ * "samples"),
+ * f.createLongCounter("sampleTime",
+ * "Total amount of time spent taking samples.",
+ * "milliseconds"),
+ * }
+ * );
+ * this.samplerStats = f.createStatistics(t, "statSampler");
+ * this.sampleCountId = this.samplerStats.nameToId("sampleCount");
+ * this.sampleTimeId = this.samplerStats.nameToId("sampleTime");
* </pre>
*
* Later on the stat ids can be used to increment the stats:
@@ -62,37 +65,35 @@ package org.apache.geode.stats.common.statistics;
* The following is an example of how to create the same type using XML. The XML data:
*
* <pre>
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE statistics PUBLIC
- "-//GemStone Systems, Inc.//GemFire Statistics Type//EN"
- "http://www.gemstone.com/dtd/statisticsType.dtd">
- <statistics>
- <type name="StatSampler">
- <description>Stats on the statistic sampler.</description>
- <stat name="sampleCount" storage="int" counter="true">
- <description>Total number of samples taken by this sampler.</description>
- <unit>samples</unit>
- </stat>
- <stat name="sampleTime" storage="long" counter="true">
- <description>Total amount of time spent taking samples.</description>
- <unit>milliseconds</unit>
- </stat>
- </type>
- </statistics>
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <!DOCTYPE statistics PUBLIC
+ * "-//GemStone Systems, Inc.//GemFire Statistics Type//EN"
+ * "http://www.gemstone.com/dtd/statisticsType.dtd">
+ * <statistics>
+ * <type name="StatSampler">
+ * <description>Stats on the statistic sampler.</description>
+ * <stat name="sampleCount" storage="int" counter="true">
+ * <description>Total number of samples taken by this sampler.</description>
+ * <unit>samples</unit>
+ * </stat>
+ * <stat name="sampleTime" storage="long" counter="true">
+ * <description>Total amount of time spent taking samples.</description>
+ * <unit>milliseconds</unit>
+ * </stat>
+ * </type>
+ * </statistics>
* </pre>
*
* The code to create the type:
*
* <pre>
- StatisticsFactory f = ...;
- Reader r = new InputStreamReader("fileContainingXmlData"));
- StatisticsType type = f.createTypesFromXml(r)[0];
+ * StatisticsFactory f = ...;
+ * Reader r = new InputStreamReader("fileContainingXmlData"));
+ * StatisticsType type = f.createTypesFromXml(r)[0];
* </pre>
* <P>
*
* @see <A href="package-summary.html#statistics">Package introduction</A>
- *
- *
* @since GemFire 3.0
*/
public interface StatisticsFactory extends StatisticsTypeFactory {
@@ -120,6 +121,8 @@ public interface StatisticsFactory extends StatisticsTypeFactory {
*/
Statistics createStatistics(StatisticsType type, String textId, long numericId);
+ Statistics findStatisticsByUniqueId(long uniqueId);
+
/**
* Creates and returns a {@link Statistics} instance of the given {@link StatisticsType type} with
* default ids.
@@ -162,4 +165,8 @@ public interface StatisticsFactory extends StatisticsTypeFactory {
default String getType() {
return "GeodeStats";
}
+
+ default List getStatsList() {
+ return Collections.emptyList();
+ }
}
diff --git a/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/factory/StatsFactory.java b/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/factory/StatsFactory.java
index cbbfb93..560269f 100644
--- a/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/factory/StatsFactory.java
+++ b/geode-stats-common/src/main/java/org/apache/geode/stats/common/statistics/factory/StatsFactory.java
@@ -125,7 +125,7 @@ public class StatsFactory {
statsFactory.resolvedStatsImplForClass.get(interfaceClazz);
return (RegionPerfStats) resolvedLocatorClassImpl
.getDeclaredConstructor(StatisticsFactory.class, CachePerfStats.class, String.class)
- .newInstance(statsFactory.getStatisticsFactory(), cachePerfStats, regionName);
+ .newInstance(statsFactory.getFactory(), cachePerfStats, regionName);
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException
| InvocationTargetException e) {
e.printStackTrace();
@@ -134,14 +134,14 @@ public class StatsFactory {
}
public static boolean isLegacyGeodeStats() {
- return statsFactory.getStatisticsFactory().getType().equals("GeodeStats");
+ return statsFactory.getFactory().getType().equals("GeodeStats");
}
public static StatisticsFactory getStatisticsFactory() {
return statsFactory.statisticsFactory;
}
- private StatisticsFactory getStatisticsFactory() {
+ private StatisticsFactory getFactory() {
return statisticsFactory;
}
@@ -163,7 +163,8 @@ public class StatsFactory {
.put(CachePerfStats.class, (Class<? extends StatsImplementer>) aClass));
}
- private StatsImplementer createConnectionStatInstanceFromClass(String locatorName, PoolStats poolStats) {
+ private StatsImplementer createConnectionStatInstanceFromClass(String locatorName,
+ PoolStats poolStats) {
try {
Class<? extends StatsImplementer> resolvedLocatorClassImpl =
resolveImplementationForClass(ConnectionStats.class);