Reputation: 53
I want to collect different metrics ( like read/write latency, memory usage, heap size, cpu usage, compaction count etc) for Cassandra cluster and that information will be used by other third party monitoring tool. So I got to know options like
However here a few queries :
Thanks for your reply.
Upvotes: 0
Views: 2216
Reputation: 5249
Is this correct that nodetool doesn't provide all information that directly jmx can provide?
Correct. Nodetool wasn't build as an reporting solution and does not focus on showing performance metrics. Therefor a lot of metrics provided by JMX are not covered by nodetool.
If I decide to collect metrics directly using JMX api, then does my monitoring application has to give separate call for each node in Cassandra cluster?
Yes. Another option would be to have Cassandra push metrics to a specified endpoint. As an example, you could configure Cassandra to push data to Graphite or any other backend supported by metrics-reporter-config.
Is there any way where data from all cluster nodes will be gathered at one place like jmx server then monitoring tool can read data in single machine call?
Practically all Cassandra monitoring solutions will save gathered metrics internally and allow to query them later. I'd suggest to have a look at existing solutions to find out more.
How nodetool utility is using jmx APIs to read data from all nodes from cluster?
Nodetool will only connect to a single host.
Upvotes: 2