我的应用程序对其内部流程进行了大量测量。例如,我对某些方法进行计时,对外部 Web 服务调用进行计时,并且还有具有变化值的变量以及具有“状态”(例如暂停、等待等)的进程。
该应用程序使用 100 到 200 个线程,每一位数据都与一个特定的线程相关联。
我正在寻找一些软件,我可以将所有这些信息导入该软件,以生成有用的指标和数据图表(最好是实时或接近实时),让我设置阈值来触发警告,允许我按线程或线程组等过滤数据。
应用程序正在执行时间关键的任务,因此软件/API 需要非常快且永不阻塞。
应用程序是用 java 编写的,理想情况下软件/api 也应该是用 java 编写的。我认为我正在寻找的是事件流处理,但我真的不确定该用什么语言来描述它。
到目前为止我发现的只有 Esper 和 ERMA。有人可以给我推荐吗?我是唯一一个从事这个项目的人,所以我希望有一个非常容易设置和使用的东西,并且有一个可行的前端。
最佳答案
最后我发现了 Graphite,它非常接近我想要的。然而,这并不是最简单的设置和配置,但我最终让它工作了。
就我而言,我将数据直接从我的应用程序发送到 Statsd(通过 UDP),Statsd 收集数据并在数据最终到达耳语后端之前进行一些预处理,这里有一个 java 接口(interface)的简单示例 https://github.com/etsy/statsd/commit/2253223f3c19d2149d65ec5bc802198ff93da4cb
或者,您可以将数据直接发送到 Graphite,例如此处 http://neopatel.blogspot.co.uk/2011/04/logging-to-graphite-monitoring-tool.html
关于具有前端的 Java 简单分析/事件流处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317662/