Мониторинг памяти Java-приложений внутри Cloud Foundry

У меня есть приложение Java, которое я развертываю в среде Cloud Foundry. Я хочу контролировать использование памяти приложением. Cloud Foundry предоставляет cf app Команда, которая выводит информацию о каждом экземпляре указанного приложения. Здесь вы можете увидеть информацию о конкретном приложении с двумя запущенными экземплярами (исключено):

$ cf app myapp
Showing health and status for app myapp in org myorg / space myspace as admin...
OK

requested state: started
instances: 2/2
usage: 1G x 2 instances
urls: myapp.example.com
last uploaded: Wed Jan 27 09:00:53 UTC 2016
stack: mylinuxstack
buildpack: myjavabuildpack

     state     since                    cpu    memory         disk      details
#0   running   2016-01-27 09:01:31 AM   0.4%   689.8M of 1G   0 of 1G
#1   running   2016-02-03 05:35:03 PM   0.0%   624.2M of 1G   0 of 1G

Однако метрики памяти, по-видимому, просто сообщают об объеме памяти, используемой процессами, запущенными внутри контейнера Cloud Foundry. Если вы имели дело с мониторингом Java-приложений, вы знаете, что в конечном итоге JVM, возможно, потребят столько памяти, сколько вы им сказали, что они могут иметь, даже если приложение Java не использует ее. (Другими словами, это делает свое собственное управление памятью.) Это означает, что фактическое java процесс может потреблять всю 1 ГБ памяти, но это не значит, что ему не хватит памяти.

По моему опыту, полезный мониторинг использования памяти Java-приложения зависит от получения данных от самой JVM, через что-то вроде JMX (например, через jconsole). Однако Cloud Foundry, похоже, не предоставляет информацию о том, где на самом деле работает приложение. (На самом деле я обнаружил, что некоторые люди утверждают, что Cloud Foundry явно не сообщит вам эту информацию.) И это означает, что мне некуда подключить клиент JMX.

Если я хочу отслеживать использование памяти моих приложений Java внутри Cloud Foundry, как мне это сделать? Не стесняйтесь опровергать любые мои претензии, если вы знаете лучше.

1 ответ

Решение

Мне удалось найти прямые связи с экземплярами, обратившись к роутеру Cloud Foundry (Go) /routes URL

Другие вопросы по тегам