beekeeper icon indicating copy to clipboard operation
beekeeper copied to clipboard

Graphite reporter not working for beekeeper-vacuum-tool

Open massdosage opened this issue 5 years ago • 0 comments

Describe the bug

The Beekeeper Vacuum Tool doesn't appear to use any of the Graphite Configuration provided in the yml file, it ignores this whether its set to enabled or not. Even with no Graphite Configuration it appears to create and attempt to use a default Dropwizards/Codahale graphite reporter which throws warnings like so:

2020-04-22 20:05:54.397  WARN 15781 --- [           main] c.c.metrics.graphite.GraphiteReporter    : Unable to report to Graphite

java.net.ConnectException: Connection refused (Connection refused)
        at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na]
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[na:na]
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[na:na]
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[na:na]
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) ~[na:na]
        at java.base/java.net.Socket.connect(Socket.java:609) ~[na:na]
        at java.base/java.net.Socket.connect(Socket.java:558) ~[na:na]
        at java.base/java.net.Socket.<init>(Socket.java:454) ~[na:na]
        at java.base/java.net.Socket.<init>(Socket.java:264) ~[na:na]
        at java.base/javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:277) ~[na:na]
        at com.codahale.metrics.graphite.PickledGraphite.connect(PickledGraphite.java:185) ~[metrics-graphite-4.0.5.jar!/:4.0.5]
        at com.codahale.metrics.graphite.GraphiteReporter.report(GraphiteReporter.java:265) ~[metrics-graphite-4.0.5.jar!/:4.0.5]
        at com.codahale.metrics.ScheduledReporter.report(ScheduledReporter.java:237) ~[metrics-core-4.0.5.jar!/:4.0.5]
        at io.micrometer.graphite.GraphiteMeterRegistry.close(GraphiteMeterRegistry.java:94) ~[micrometer-registry-graphite-1.1.3.jar!/:1.1.3]
        at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
        at java.base/java.util.Collections$SetFromMap.forEach(Collections.java:5581) ~[na:na]
        at io.micrometer.core.instrument.composite.CompositeMeterRegistry.close(CompositeMeterRegistry.java:232) ~[micrometer-core-1.1.3.jar!/:1.1.3]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
        at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:337) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:271) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:571) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:543) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1055) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:504) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1062) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1057) ~[spring-context-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1026) ~[spring-context-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:975) ~[spring-context-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:834) ~[spring-boot-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) ~[spring-boot-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
        at com.expediagroup.beekeeper.vacuum.BeekeeperVacuumTool.main(BeekeeperVacuumTool.java:43) ~[classes!/:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]

2020-04-22 20:05:54.400  WARN 15781 --- [           main] c.c.metrics.graphite.GraphiteReporter    : Unable to report to Graphite

java.net.ConnectException: Connection refused (Connection refused)
        at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na]
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[na:na]
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[na:na]
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[na:na]
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) ~[na:na]
        at java.base/java.net.Socket.connect(Socket.java:609) ~[na:na]
        at java.base/java.net.Socket.connect(Socket.java:558) ~[na:na]
        at java.base/java.net.Socket.<init>(Socket.java:454) ~[na:na]
        at java.base/java.net.Socket.<init>(Socket.java:264) ~[na:na]
        at java.base/javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:277) ~[na:na]
        at com.codahale.metrics.graphite.PickledGraphite.connect(PickledGraphite.java:185) ~[metrics-graphite-4.0.5.jar!/:4.0.5]
        at com.codahale.metrics.graphite.GraphiteReporter.report(GraphiteReporter.java:265) ~[metrics-graphite-4.0.5.jar!/:4.0.5]
        at com.codahale.metrics.ScheduledReporter.report(ScheduledReporter.java:237) ~[metrics-core-4.0.5.jar!/:4.0.5]
        at io.micrometer.graphite.GraphiteMeterRegistry.close(GraphiteMeterRegistry.java:94) ~[micrometer-registry-graphite-1.1.3.jar!/:1.1.3]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
        at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:337) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:271) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:571) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:543) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1055) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:504) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1062) ~[spring-beans-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1057) ~[spring-context-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1026) ~[spring-context-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:975) ~[spring-context-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
        at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:834) ~[spring-boot-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) ~[spring-boot-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
        at com.expediagroup.beekeeper.vacuum.BeekeeperVacuumTool.main(BeekeeperVacuumTool.java:43) ~[classes!/:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) ~[beekeeper-vacuum-tool-2.1.0-SNAPSHOT.jar:na]

To remove the above this temporary change has been placed in beekeeper-vacuum-tool's pom.xml:

   <dependency>
      <groupId>com.expediagroup</groupId>
      <artifactId>beekeeper-core</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <!-- TODO: put this back and figure out why graphite config etc. is being ignored by vacuum-tool -->
        <exclusion>
          <groupId>io.micrometer</groupId>
          <artifactId>micrometer-registry-graphite</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

To Reproduce

  • Remove the above exclusion and rebuild beekeeper-vacuum-tool.
  • Perform a run using this and observe the above error.
  • Attempt to configure Graphite and observer that this appears to have no effect.

Expected behavior Graphite configuration is honoured - disabled when not present or marked accordingly, and used when provided. Default behaviour when no graphite configuration is present is that the default Graphite Reporter in the stack trace above is not operational.

massdosage avatar Apr 23 '20 15:04 massdosage