用java制作一个英雄分析工具



我想知道如何开发一个适当的分析来检查heroku平台上的几个东西。在检查了heroku的网站,具体链接如:https://devcenter.heroku.com/articles/java-memory-issues后,我猜真的很难开发自己的监视器,因为他们说不可能使用visualvm,jmap,jstats等工具。由于进程隔离,这是不可能的,但这意味着什么?如果我没记错的话,每个dyno都有自己的jvm,所以我们可以访问它,对吧?

如果有人能告诉我一些关于它的事情,我会很感激,因为我真的很困惑,而且周围也没有太多的信息。

在另一方面我已经检查我heroku的new relic的附加应用程序的正常工作,但我需要连接到heroku仪表盘检查所以我想避免这种行为,使自己的仪表板了解比例正在使用的处理器,内存,http请求(即使alertra o nagios等工具在未来可能使用)之间的内部过程在heroku(我有几个绝妙的网和绝妙的工人)。

我希望你能理解我的目标,我已经搜索了很多关于它,但我是不幸的。

欢呼

不可能使用visualvmjmapjstat等工具的原因是它们需要连接到JVM上的TCP端口,但是dynos只允许在指定的$PORT环境变量中指定的单个分配的HTTP端口上进行传入连接。

你是正确的,在Heroku上的每个Java应用程序都有自己的JVM,最简单的方法是通过在你的应用程序中添加一个Java代理来反省它。这是有效的,因为它是在你的应用程序旁边的动态中运行的。这就是New Relic的代理所做的,信息被收集并发送到他们的服务,但如果你有兴趣制作自己的,这是完全可能的(但可能有点工作)。

首先,您可能想看看heroku-javaagent,这是一个非常简单的Java代理,它定期将JVM的重要统计信息(例如线程、内存等)打印到日志流中。这对你来说可能已经足够了,但你可以根据你想要收集的信息来调整它。此外,您可以让它直接将信息发送到您的仪表板,或者您可以使用日志流。要开始使用它,请查看Java应用程序中的内存问题故障排除文章中的内存日志代理部分。

相关内容

最新更新