收集 Cassandra 监控指标的可能选项
Possible options to collect Cassandra Monitoring metrics
我想为 Cassandra 集群收集不同的指标(如 read/write 延迟、内存使用、堆大小、cpu 使用、压缩计数等),这些信息将被其他第三方使用监控工具。
所以我开始了解
这样的选项
- nodetool(内部使用jmx apis)
- jmx api (mbean)
- jconsole(单个 Cassandra 进程可以跟踪并在内部使用该机器上的 jmx 读取数据)
不过这里有几个问题:
- nodetool 没有提供 jmx 可以直接提供的所有信息,这是否正确?
- 如果我决定直接使用 JMX api 收集指标,那么我的监控应用程序是否必须为 Cassandra 集群中的每个节点单独调用?因此,如果我有 50 个节点,并且 jmx 在调用节点上为 运行,那么是否会有 50 个调用来收集来自每个集群主机的读取延迟?
- 有什么方法可以将所有集群节点的数据收集在一个地方,比如jmx服务器,然后监控工具可以在单机调用中读取数据?
- nodetool 实用程序如何使用 jmx API 从集群的所有节点读取数据?
感谢您的回复。
Is this correct that nodetool doesn't provide all information that directly jmx can provide?
正确。 Nodetool 不是作为报告解决方案构建的,也不专注于显示性能指标。因此,JMX 提供的很多指标都没有被 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?
是的。另一种选择是让 Cassandra push 指标到指定端点。例如,您可以将 Cassandra 配置为 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?
实际上,所有 Cassandra 监控解决方案都会在内部保存收集到的指标,并允许稍后查询它们。我建议查看 existing solutions 以了解更多信息。
How nodetool utility is using jmx APIs to read data from all nodes from cluster?
Nodetool 只会连接到一个主机。
我想为 Cassandra 集群收集不同的指标(如 read/write 延迟、内存使用、堆大小、cpu 使用、压缩计数等),这些信息将被其他第三方使用监控工具。 所以我开始了解
这样的选项- nodetool(内部使用jmx apis)
- jmx api (mbean)
- jconsole(单个 Cassandra 进程可以跟踪并在内部使用该机器上的 jmx 读取数据)
不过这里有几个问题:
- nodetool 没有提供 jmx 可以直接提供的所有信息,这是否正确?
- 如果我决定直接使用 JMX api 收集指标,那么我的监控应用程序是否必须为 Cassandra 集群中的每个节点单独调用?因此,如果我有 50 个节点,并且 jmx 在调用节点上为 运行,那么是否会有 50 个调用来收集来自每个集群主机的读取延迟?
- 有什么方法可以将所有集群节点的数据收集在一个地方,比如jmx服务器,然后监控工具可以在单机调用中读取数据?
- nodetool 实用程序如何使用 jmx API 从集群的所有节点读取数据?
感谢您的回复。
Is this correct that nodetool doesn't provide all information that directly jmx can provide?
正确。 Nodetool 不是作为报告解决方案构建的,也不专注于显示性能指标。因此,JMX 提供的很多指标都没有被 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?
是的。另一种选择是让 Cassandra push 指标到指定端点。例如,您可以将 Cassandra 配置为 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?
实际上,所有 Cassandra 监控解决方案都会在内部保存收集到的指标,并允许稍后查询它们。我建议查看 existing solutions 以了解更多信息。
How nodetool utility is using jmx APIs to read data from all nodes from cluster?
Nodetool 只会连接到一个主机。