我在Mesos和Marathon上运行java应用程序。如何监控java进程的堆统计信息?我试过jstat抱怨“pid not found”,但过程正在运行,我可以通过'ps auwx'检查它。这是因为java进程在cgroup中运行吗?如果是这种情况,我们如何监控基于mesos的应用程序。
答案 0 :(得分:1)
监控应用程序的最佳选择是从自身发布它的指标。有很多方法可以从apprietarty(例如NewRelic或DataDog)到开源Prometheus向您的应用程序添加监控。
如果您需要通过JMX进行访问,可以使用以下配置公开此端口:
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.port=$PORT1 \
-Djava.rmi.server.hostname=$MESOS_HOSTNAME
以上配置假设您有两个端口,第二个专用于JMX