用于收集/存储/显示应用程序度量/统计数据的java库是什么?
我有一个Java应用程序,它需要收集和报告关于各种实体的大量度量/操作度量/统计数据(不同的人使用不同的词-我只使用度量)。指标可以是以下指标之一:用于收集/存储/显示应用程序度量/统计数据的java库是什么?,java,Java,我有一个Java应用程序,它需要收集和报告关于各种实体的大量度量/操作度量/统计数据(不同的人使用不同的词-我只使用度量)。指标可以是以下指标之一: 在特定时间点测量的一些数值(当前登录到系统的用户数%,某些资源的利用率) 给定时间间隔内的一些测量数值(过去5分钟内传输的消息数) 特定时间点的某些枚举值(某些实体的运行状况为联机/警告/失败/脱机) “实体”可以是物理设备(计算机、交换机、调制解调器),但通常是逻辑实体(通信信道4567、用户123456、服务a接口)。此外,这些逻辑实体中的一些
它是公认的的Java实现。它是为了在循环数据库(RRD)中随时间收集数据而构建的。旧数据通常归档在RRA归档中,在RRA归档中,时间尺度不太细粒度,从而实现更节省空间的存储
虽然我没有直接使用RRD4J的经验,但多年来,我们已经成功地将RRDTool和Cacti用于数据中心的健康监测。由于RRD是监控方面的行业标准,我绝对建议您看看RRD4J。另一个选项,尽管非常复杂,但它是OpenTSD:。我可以推荐Yammer提供的这个Java库: 它提供了一个很好的API,包含计数器、计时、直方图等。 它可以通过检测servlet和JVM(内存等)自动从servlet收集有趣的数据 我们将数据存储在Graphite中: Graphite将数据存储在与RRD类似的固定大小的数据库中,并可以生成图表和仪表板。您可以尝试Stagemonitor 它可以与elasticsearch/graphite/XDB配对用于timeseries数据存储
您可以使用Grafana可视化度量,它可以连接到许多不同的数据库,如elasticsearch、influxdb、prometheus、mysql。我知道这个问题已经问了很久了,但我认为保持答案最新不是一个坏主意
SpringBoot2现在使用-这应该是在Java应用程序中收集指标的一个很好的起点。它不负责存储或显示它们,但为框架提供了集成功能。我以前从未听说过RRD。这确实符合我想要做的事情;我现在正在看!我花了一些时间研究RRD4J。RRD和RRA正是我需要的那种存储机制。然而,RRD的性质不适合轻松处理动态指标。我必须在上面建一些东西。这个图表很方便,但是不适合我在客户端上进行实时更新,而不需要在每个更新间隔向客户端发送一个新的.png文件。我可以用JFreeChart或类似的软件做一些事情,但我还是希望能找到一些东西来为我做这些工作。我也一直在寻找一些东西。类似于AWS的CloudWatch。再一次,另一个我从未听说过的包。看起来确实有点复杂,但我肯定会仔细看看。标记功能可能非常有用。是另一个基于Java的开源时间序列数据库,它提供Java API来存储度量。这看起来非常有趣,感谢您的响应。尽管我在一年前问过这个问题,但碰巧我现在正在做一个不同的项目