Hi Barry, Thanks for your reply. I have not set statsDisabled property. Attached is the entire server log.
Thanks, Srikanth Manvi On Mon, Sep 26, 2016 at 9:27 PM, Barry Oglesby <[email protected]> wrote: > An added gradle dependency on influxdb shouldn't affect whether the server > starts up or not. I made that same change, and the server started > successfully. > > The InternalDistributedSystem creates and starts the GemFireStatSampler in > its initialize method like: > > this.sampler = new GemFireStatSampler(this); > this.sampler.start(); > > The HostStatSampler (superclass of GemFireStatSampler) run method creates > and initializes the SampleCollector like: > > this.sampleCollector = new SampleCollector(this); > this.sampleCollector.initialize(this, NanoTimer.getTime()); > > The SampleCollector initialize method sets the instance. > > All of this happens regardless of the value of statistic-archive-file and > statistic-sampling-enabled. > > I can reproduce the exception you're seeing if I set the > gemfire.statsDisabled system property like: > > -Dgemfire.statsDisabled=true > > Setting that property to true short-circuits the creation of the > GemFireStatSampler which causes the exact stack you reported. > > The HostStatSampler run method does invoke initSpecialStats right before > creating the SampleCollector. I guess if that method throws an exception, > the SampleCollector might not be created. An exception in the > HostStatSampler run method should log something in the server log, though. > > Do you have a full server log file that you can post? > > > Thanks, > Barry Oglesby > > > On Mon, Sep 26, 2016 at 3:10 PM, sri man <[email protected]> wrote: > > > Hi, > > > > I am trying to experiment with exposing Geode stats to Grafana > > <http://grafana.org/> using a the time-series database InfluxDB > > <https://www.influxdata.com/time-series-platform/influxdb/>. > > > > Facing the below exception when I start the server after enabling stats > and > > including influxDB java client <https://github.com/ > > influxdata/influxdb-java> in > > the project. > > I am new to gradle (and also the above technologies ! ), not sure if I am > > doing something wrong here w.r.t including the influxdb-java client. > > > > When I enable statistics, the server doesn't start(the .... after the > > start server command doesn't seem to stop), and I see the below > exception > > in the server logs > > > > [warning 2016/09/26 17:47:45.408 EDT geode-server1 <main> tid=0x1] > > Statistics sampler is not available > > *java.lang.IllegalStateException: Statistics sampler is not available* > > at > > org.apache.geode.internal.statistics.SampleCollector. > > getStatMonitorHandler(SampleCollector.java:127) > > at > > org.apache.geode.internal.statistics.StatisticsMonitor. > > getStatMonitorHandler(StatisticsMonitor.java:139) > > at > > org.apache.geode.internal.statistics.StatisticsMonitor. > > addListener(StatisticsMonitor.java:83) > > at > > org.apache.geode.management.internal.beans.stats.MBeanStatsMonitor. > > addStatisticsToMonitor(MBeanStatsMonitor.java:59) > > at > > org.apache.geode.management.internal.beans.MemberMBeanBridge. > > addCacheStats(MemberMBeanBridge.java:470) > > at > > org.apache.geode.management.internal.beans.MemberMBeanBridge.init( > > MemberMBeanBridge.java:420) > > at > > org.apache.geode.management.internal.beans.ManagementAdapter. > > handleCacheCreation(ManagementAdapter.java:161) > > at > > org.apache.geode.management.internal.beans.ManagementListener. > handleEvent( > > ManagementListener.java:119) > > at > > org.apache.geode.distributed.internal.InternalDistributedSystem. > > notifyResourceEventListeners(InternalDistributedSystem.java:2077) > > at > > org.apache.geode.distributed.internal.InternalDistributedSystem. > > handleResourceEvent(InternalDistributedSystem.java:525) > > at > > org.apache.geode.internal.cache.GemFireCacheImpl. > > initialize(GemFireCacheImpl.java:1113) > > at > > org.apache.geode.internal.cache.GemFireCacheImpl. > > basicCreate(GemFireCacheImpl.java:765) > > at > > org.apache.geode.internal.cache.GemFireCacheImpl.create( > > GemFireCacheImpl.java:752) > > at org.apache.geode.cache.CacheFactory.create( > > CacheFactory.java:181) > > at org.apache.geode.cache.CacheFactory.create( > > CacheFactory.java:231) > > at > > org.apache.geode.distributed.internal.DefaultServerLauncherCacheProv > > ider.createCache(DefaultServerLauncherCacheProvider.java:55) > > at > > org.apache.geode.distributed.ServerLauncher.createCache( > > ServerLauncher.java:783) > > at > > org.apache.geode.distributed.ServerLauncher.start( > ServerLauncher.java:703) > > at > > org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:633) > > at > > org.apache.geode.distributed.ServerLauncher.main( > ServerLauncher.java:184) > > For now I have changed the method (private writeSample > > in StatArchiveWriter.java) to write to influxDB. > > > > *Geode Properties:* > > statistic-sampling-enabled=true > > statistic-archive-file=statsFile.gfs > > > > When I remove the above properties from the properties file the server > > starts up fine, which makes me think that my gradle changes should be > fine. > > > > *Gradle changes:* > > > > 1. I have included the below line in geode-core/build.gradle > > <https://github.com/apache/incubator-geode/blob/develop/ > > geode-core/build.gradle#L39> > > dependencies. > > compile 'org.influxdb:influxdb-java:' + project.'influxdb-client- > > version' > > > > 2. I have included the dependency version here > > https://github.com/apache/incubator-geode/blob/develop/ > > gradle/dependency-versions.properties > > > > 3. Have added the influxdb jar name here > > https://github.com/apache/incubator-geode/blob/develop/ > > geode-assembly/src/test/resources/expected_jars.txt > > > > > > Please let me know why one would see exception > > "java.lang.IllegalStateException: Statistics sampler is not available". > > > > Any feedback on the approach/usefulness of using InfluxDB-Grafana for > geode > > stats is appreciated. > > > > > > Thanks, > > Srikanth Manvi > > >
