Skip to content

Conversation

@rkuris
Copy link

@rkuris rkuris commented Apr 2, 2015

We are using this in production now; there were several bugs but the idea was great. It now should report most of the stats correctly with a modern JVM.

rkuris and others added 17 commits December 19, 2014 11:32
Lots of cleanup. Added support for hostname:port@interval in the
startup, so you can tune how often the reporter runs and the port it
communicates on.

Renamed classes to be lookout classes. Switched to testng and added a
parser test for the hostname parsing. Improved documentation.
Added tests for statsdReporter, verified that the JVM reports non-zero values
for everything.
Add support for port and reporting interval
Fix the agent not starting if args are not supplied
This is a pretty big refactor. There are now three sources of data for
logging to statsd: the JVM (now in JavaVMGenerator), yammer metrics
(now in YammerMetricsGenerator) and JMX (see CassandraJMXGenerator).

Unfortunately, the CassandraJMXGenerator has to know some of the internals
of how Cassandra reports JMX. It's coded to be somewhat bulletproof, such
that missing JMX variables won't stop the other found ones from being
reported. Right now, we fetch:

gossip.score.<IP>, which help decide who is closer/faster for queries
gossip.severity, which indicates how busy this node is self-reporting to others
cfstats.<keyspace>.<columnfamily>.ReadCount
cfstats.<keyspace>.<columnfamily>.WriteCount
cfstats.<keyspace>.<columnfamily>.RecentReadLatencyMicros
cfstats.<keyspace>.<columnfamily>.RecentWriteLatencyMicros
cfstats.<keyspace>.<columnfamily>.TombstonesPerSlice
cfstats.<keyspace>.<columnfamily>.estimatedKeys
The last one is great for monitoring general trends, but of course don't
rely on that number to be very accurate.

Also supported is the currently-experimental PHI reporter, in PHI.<IP>,
coming to a Cassandra cluster near you soon.
This change just hardcodes the prefix to 'cassandra'. We should make the prefix configurable based on
either a passed in configuration string or the cluster name, but that's not as easy or urgent as this
change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant