0

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

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

另一方面,我一直在我的 heroku 应用程序中检查新的 relic 插件,它工作正常,但我需要连接到 heroku 仪表板来检查它,所以我想避免这种行为并制作我自己的仪表板要了解 heroku 的内部进程(我有几个 dyno 网络和 dyno 工作人员)之间的处理器使用百分比、内存、http 请求(即使将来可能会使用像alertra o nagios 这样的工具)。

我希望你能理解我的目标,我一直在寻找很多关于它的东西,但我很不幸。

干杯

4

1 回答 1

1

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

您是正确的,Heroku 上的每个 Java 应用程序都有自己的 JVM,而内省它的最简单方法是向您的应用程序添加Java 代理。这是有效的,因为它在您的应用程序旁边的测功机内运行。这是 New Relic 的代理所做的,信息被收集并发送给他们的服务,但如果您有兴趣自己制作,这完全有可能(但可能需要一些工作)。

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

于 2013-03-22T06:12:28.757 回答