Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有前端的Java简单分析/事件流处理_Java_Logging_Analytics_Esper_Graphite - Fatal编程技术网

带有前端的Java简单分析/事件流处理

带有前端的Java简单分析/事件流处理,java,logging,analytics,esper,graphite,Java,Logging,Analytics,Esper,Graphite,我的应用程序对其内部流程进行了大量测量。例如,我为某些方法计时,我为外部webservice调用计时,我还有具有变化值的变量,以及具有“状态”(例如暂停、等待等)的进程 应用程序使用100到200个线程,每一位数据都与一个特定的线程相关联 我正在寻找一些软件,我可以将所有这些信息导入其中,生成有用的度量和数据图(理想情况下是实时或接近实时),让我设置触发警告的阈值,允许我按线程或线程组过滤数据,等等 应用程序正在执行时间关键型任务,因此软件/api需要非常快,并且永远不会阻塞 应用程序是用jav

我的应用程序对其内部流程进行了大量测量。例如,我为某些方法计时,我为外部webservice调用计时,我还有具有变化值的变量,以及具有“状态”(例如暂停、等待等)的进程

应用程序使用100到200个线程,每一位数据都与一个特定的线程相关联

我正在寻找一些软件,我可以将所有这些信息导入其中,生成有用的度量和数据图(理想情况下是实时或接近实时),让我设置触发警告的阈值,允许我按线程或线程组过滤数据,等等

应用程序正在执行时间关键型任务,因此软件/api需要非常快,并且永远不会阻塞

应用程序是用java编写的,理想情况下,软件/api也是用java编写的。我想我要找的是所谓的事件流处理,但我真的不确定用什么语言来描述它


到目前为止,我只找到了埃斯珀和厄玛。谁能给我推荐一下吗?我是唯一一个在这个项目上工作的人,所以我希望有一个非常容易设置和使用的东西,并且有一个可行的前端

最后我找到了石墨,它几乎就是我想要的。虽然这不是最简单的设置和配置,但我最终还是让它工作了

在我的例子中,我直接将数据从应用程序发送到Statsd(通过UDP),Statsd收集数据并在数据到达whisper后端之前进行一些预处理,这里有一个简单的java接口示例


或者,您可以直接将数据发送到graphite,例如,最后我发现graphite非常接近我想要的。虽然这不是最简单的设置和配置,但我最终还是让它工作了

在我的例子中,我直接将数据从应用程序发送到Statsd(通过UDP),Statsd收集数据并在数据到达whisper后端之前进行一些预处理,这里有一个简单的java接口示例


或者,您可以直接将数据发送到graphite,例如,如果您有100到200个线程同时处理所有数据,并且您将数据存储在任何东西(包括内存)中,那么在代码的“保存”期间将有一些阻塞i/o。有趣的是,我以前没有考虑过内存IO阻塞。事实上,只有10-30个线程在同时处理数据,其余的线程都在休眠。事实上,这比这个要少。如果您有一台四核机器(I5),一次只能运行4个线程。如果您使用的是四核多线程(I7),一次最多可以运行8个线程。也不要忘记操作系统服务(即使在经过微调的系统上)可以运行大约30个线程。因此,如果您试图在I7(8个线程)上运行100个线程,那么实际处理时间是100/130*8(平均只有6个线程在处理)。从这里开始,您仍然需要添加阻塞I/O以获得真正的时间。如果您有100到200个线程同时处理所有数据,并且您正在将其存储在任何东西(包括内存)中,那么在代码的“保存”期间将有一些阻塞I/O。有趣的是,我以前没有考虑过内存IO阻塞。事实上,只有10-30个线程在同时处理数据,其余的线程都在休眠。事实上,这比这个要少。如果您有一台四核机器(I5),一次只能运行4个线程。如果您使用的是四核多线程(I7),一次最多可以运行8个线程。也不要忘记操作系统服务(即使在经过微调的系统上)可以运行大约30个线程。因此,如果您试图在I7(8个线程)上运行100个线程,那么实际处理时间是100/130*8(平均只有6个线程在处理)。从这里开始,您仍然需要添加阻塞I/O以获得真实的时间。