Search code examples
cassandrajmxmetricsgrafana

Jmx Monitoring: Possible to collect and visualize Jmx/Mbeans Data saved on Cassandra?


I have managed to collect JMX MetricsData from a Java Application and saved it on a Cassandra database (My project leader said to do so).

I know that it is possible to collect with JmxTrans directly from JMX- Endpoints and visualize it within Grafana/Graphite.

My Question is: can I collect the JMX metrics data from cassandra and visualize it in Grafana?


Solution

  • Grafana requires something else (ie graphite, influxdb, cyanite) to store the data. So to answer your question (what I think your asking at least) of if grafana can pull the metrics from JMX itself, it would be "No".

    That said you can make the collection easier and faster. JMX isn't a very efficient medium. Instead just have Cassandra send metrics directly to your graphite (or whatever reporter) instances using its graphite reporter. see http://www.datastax.com/dev/blog/pluggable-metrics-reporting-in-cassandra-2-0-2 for details. The steps in blog post are as follows:

    1. Grab your favorite reporter jar (such as metrics-graphite) and add it to the server’s lib
    2. Create a configuration file for the reporters following the sample. Start the server with -Dcassandra.metricsReporterConfigFile=yourCoolFile.yaml by adding it to JVM_OPTS in cassandra-env.sh

    Example config:

    graphite:
      -
        period: 60
        timeunit: 'SECONDS'
        hosts:
         - host: 'graphite-server.domain.local'
           port: 2003
        predicate:
          color: "white"
          useQualifiedName: true
          patterns:
            - "^org.apache.cassandra.metrics.Cache.+"
            - "^org.apache.cassandra.metrics.ClientRequest.+"
            - "^org.apache.cassandra.metrics.Storage.+"
            - "^org.apache.cassandra.metrics.ThreadPools.+"