You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2019/08/09 16:37:00 UTC

[jira] [Commented] (GEODE-4993) GatewaySender connection stats are captured but not stored

    [ https://issues.apache.org/jira/browse/GEODE-4993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16904021#comment-16904021 ] 

ASF subversion and git services commented on GEODE-4993:
--------------------------------------------------------

Commit 3ea7dd1e46e2fd3c06b424ec24e077dfd068bbc3 in geode's branch refs/heads/develop from Alberto Bustamante Reyes
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=3ea7dd1 ]

GEODE-4993: Store GatewaySender connection stats (#3787)

* Add ClientSendStats to stats documentation
* Alphabetically sort ClientSendStats to align with documentation and some fixes
* Leave just one ConnectionStats constructor
* Missing tests for addPdxType
* Remove not used stats
* More missing tests for addPdxType
* Added tests


> GatewaySender connection stats are captured but not stored
> ----------------------------------------------------------
>
>                 Key: GEODE-4993
>                 URL: https://issues.apache.org/jira/browse/GEODE-4993
>             Project: Geode
>          Issue Type: Improvement
>          Components: statistics, wan
>            Reporter: Barry Oglesby
>            Assignee: Alberto Bustamante Reyes
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: geode-4993.diff
>
>          Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> The GatewaySender connection stats are captured but not stored in the gfs file. a GatewaySenderEventRemoteDispatcher causes ConnectionStats to be created when its connection is created. For some reason, these are saved to a DummyStatisticsFactory (which causes them not to be saved):
> {noformat}
> if (pool.getGatewaySender() != null) {
>  stats = new ConnectionStats(new DummyStatisticsFactory(), statName, this.poolStats);
> }
> {noformat}
> If something like this were done instead, then those statistics would be saved in the gfs file under an appropriate name:
> {noformat}
> if (pool.getGatewaySender() != null) {
>  String statName = pool.getGatewaySender().getId() + "-" + location.toString();
>  stats = new ConnectionStats(ds, "GatewaySender", statName, this.poolStats);
> }
> public ConnectionStats(StatisticsFactory factory, String prefix, String name,
>  PoolStats poolStats/* , GatewayStats gatewayStats */) {
>  this.stats = factory.createAtomicStatistics(type, prefix + "Stats-" + name);
>  this.sendStats = factory.createAtomicStatistics(sendType, prefix + "SendStats-" + name);
>  this.poolStats = poolStats;
> }
> {noformat}
> The kinds of stats tracked by the ConnectionStats include:
> - connections
> - sentBytes
> - receivedBytes
> Here is a stack trace showing where the ConnectionStats are created:
> {noformat}
> java.lang.Exception: Stack trace
>  at java.lang.Thread.dumpStack(Thread.java:1329)
>  at org.apache.geode.cache.client.internal.ConnectionStats.<init>(ConnectionStats.java:1716)
>  at org.apache.geode.cache.client.internal.EndpointManagerImpl.getStats(EndpointManagerImpl.java:225)
>  at org.apache.geode.cache.client.internal.EndpointManagerImpl.referenceEndpoint(EndpointManagerImpl.java:75)
>  at org.apache.geode.cache.client.internal.ConnectionImpl.connect(ConnectionImpl.java:124)
>  at org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:137)
>  at org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:259)
>  at org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:242)
>  at org.apache.geode.cache.client.internal.PoolImpl.acquireConnection(PoolImpl.java:910)
>  at org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.initializeConnection(GatewaySenderEventRemoteDispatcher.java:398)
>  at org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.getConnection(GatewaySenderEventRemoteDispatcher.java:331)
>  at org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher._dispatchBatch(GatewaySenderEventRemoteDispatcher.java:208)
>  at org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.dispatchBatch(GatewaySenderEventRemoteDispatcher.java:157)
>  at org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue(AbstractGatewaySenderEventProcessor.java:610)
>  at org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.run(AbstractGatewaySenderEventProcessor.java:1051)
> {noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)