我的团队正在从使用 Astyanax 驱动程序(如果尚未弃用,则很快就会弃用)转向使用 Datastax 3.0 驱动程序。
我们的代码实现了 Astyanax 的 ConnectionPoolMonitor 类,并且我们捕获了有关连接池使用情况的大约 22 个不同的指标。
我正在尝试找到一种等效的方法来使用 Datastax 驱动程序执行此操作。但我能找到的只有这个: https://datastax.github.io/java-driver/manual/pooling/#monitoring-and-tuning-the-pool
基本上,上面的示例展示了如何运行连续轮询 Session.State 的后台线程。这看起来相当尴尬。 Astyanax 对实现 ConnectionPoolMonitor 的类进行回调。
Session.State 中公开的信息量相当有限:已连接的主机、正在进行的查询、打开的连接和已废弃的连接。
有没有更好的选择,我还没有找到?我如何捕获诸如此类的指标:
- 池耗尽、连接超时、套接字超时、没有主机的计数
- 创建、关闭、借用、返回、创建错误的连接计数
- 添加、删除、关闭、重新激活/重新连接的主机数量
- 未知错误、错误请求、中断、传输错误的异常计数
最佳答案
尝试cluster.getMetrics()
并阅读此Java文档:http://docs.datastax.com/en/drivers/java/3.0/com/datastax/driver/core/Metrics.html
关于java - Cassandra Datastax 连接池监视器/指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797418/