smartcat-labs / cassandra-diagnostics

Cassandra Node Diagnostics Tools
Apache License 2.0
51 stars 6 forks source link

DataDog reporter broken for 1.4.8, 1.4.9 #294

Closed AdamNuclear closed 6 years ago

AdamNuclear commented 6 years ago

I am trying to update reporter from 1.3.6 to 1.4.9 but I am not able to make datadog reporter working.

Error:

INFO  [cassandra-diagnostics-agent] 2017-10-10 18:33:42,817 ConnectorImpl.java:87 - Cassandra setup process completed.
INFO  [cassandra-diagnostics-agent] 2017-10-10 18:33:42,818 DiagnosticsProcessor.java:55 - Creating reporter for class name io.smartcat.cassandra.diagnostics.reporter.DatadogReporter
ERROR [cassandra-diagnostics-agent] 2017-10-10 18:33:42,823 DiagnosticsAgent.java:56 - com/timgroup/statsd/StatsDClient
java.lang.NoClassDefFoundError: com/timgroup/statsd/StatsDClient
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_144]
    at java.lang.Class.forName(Class.java:264) ~[na:1.8.0_144]
    at io.smartcat.cassandra.diagnostics.DiagnosticsProcessor.initReporters(DiagnosticsProcessor.java:56) ~[cassandra-diagnostics-core-1.4.8.jar:na]
    at io.smartcat.cassandra.diagnostics.DiagnosticsProcessor.<init>(DiagnosticsProcessor.java:47) ~[cassandra-diagnostics-core-1.4.8.jar:na]
    at io.smartcat.cassandra.diagnostics.Diagnostics.activate(Diagnostics.java:72) ~[cassandra-diagnostics-core-1.4.8.jar:na]
    at io.smartcat.cassandra.diagnostics.DiagnosticsAgent$1.run(DiagnosticsAgent.java:47) ~[cassandra-diagnostics-core-1.4.8.jar:na]
    at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_144]
Caused by: java.lang.ClassNotFoundException: com.timgroup.statsd.StatsDClient
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_144]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_144]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_144]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_144]
    ... 7 common frames omitted

jar's location:

root@cass31-dc3 /usr/share/cassandra/lib # ls -al cassandra-diag*
-rw-r--r-- 1 root root 2527132 Jul 17 12:17 cassandra-diagnostics-connector30-1.4.8.jar
-rw-r--r-- 1 root root  271862 Jul 17 12:14 cassandra-diagnostics-core-1.4.8.jar
-rw-r--r-- 1 root root    5616 Jul 17 12:19 cassandra-diagnostics-reporter-datadog-1.4.8.jar
root@cass31-dc3 /usr/share/cassandra/lib # 

My config:

reporters:
  - reporter: io.smartcat.cassandra.diagnostics.reporter.DatadogReporter
    options:
      statsDHost: localhost
      statsDPort: 8125 #Optional
  - reporter: io.smartcat.cassandra.diagnostics.reporter.LogReporter

 # Modules
modules:
 - module: io.smartcat.cassandra.diagnostics.module.requestrate.RequestRateModule
   measurement: requestRate
   options:
     period: 60
     timeunit: SECONDS
   reporters:
     - io.smartcat.cassandra.diagnostics.reporter.DatadogReporter

 - module: io.smartcat.cassandra.diagnostics.module.metrics.MetricsModule
   options:
     period: 60 #optional
     timeunit: SECONDS #optional
     jmxHost: 127.0.0.1 #optional
     jmxPort: 7199 #optional
     jmxSslEnabled: false #optional
     jmxSslUsername: username #optional, set if ssl enabled
     jmxSslPassword: password #optional, set if ssl enabled
     metricsPackageName: "org.apache.cassandra.metrics" #optional
     metricsSeparator: "_" # optional, metrics measurement name separator
     metricsPatterns:
#         - "^org.apache.cassandra.metrics.CommitLog.+"
       - "^org.apache.cassandra.metrics.Compaction.+"
#         - "^org.apache.cassandra.metrics.ColumnFamily.PendingTasks"
#         - "^org.apache.cassandra.metrics.ColumnFamily.ReadLatency"
#         - "^org.apache.cassandra.metrics.ColumnFamily.WriteLatency"
#         - "^org.apache.cassandra.metrics.ColumnFamily.ReadTotalLatency"
#         - "^org.apache.cassandra.metrics.ColumnFamily.WriteTotalLatency"
#         - "^org.apache.cassandra.metrics.DroppedMetrics.+"
#         - "^org.apache.cassandra.metrics.Storage.+"
       - "^org.apache.cassandra.metrics.ThreadPools.+"
   reporters:
     - io.smartcat.cassandra.diagnostics.reporter.DatadogReporter

Same issue in 1.4.9

mgobec commented 6 years ago

@AdamNuclear This error is saying that the statsDClient class is missing which is one of the deps for dd reporter. Can you download cassandra-diagnostics-reporter-datadog-1.4.9-all.jar which has the dependencies packed and test it out?

AdamNuclear commented 6 years ago

@mgobec I downloaded 1.4.10 with datadog-all, changed config based on your readme

metricsPackageNames:
       - "org.apache.cassandra.metrics" #optional

And now it works as expected. I am closing the issue thx !