Есть ли в Java эквивалент страусиной библиотеки Twitter? - PullRequest
9 голосов
/ 30 декабря 2011

Похоже, что страусиный проект из Твиттера хорошо подходит для моего случая использования, где я хотел бы отслеживать большую часть статистики на основе JVM плюс некоторую пользовательскую статистику.

https://github.com/twitter/ostrich/

Однако моя кодовая база - чистая Java + Spring 3.0, а не Scala, так что я могу использовать Ostrich для своего случая?

Ответы [ 4 ]

14 голосов
/ 08 января 2012

Я использовал Метрики . Он очень похож на страуса с поддержкой датчиков, счетчиков, счетчиков, гистограмм и таймеров; А также механизм контроля за состоянием здоровья ваших служб.

Вы можете получить отчет через JMX или HTTP, а также отчетные бэкэнды, такие как Ganglia и Graphite.

6 голосов
/ 06 января 2012

Комбинация MBeans, JMX и приложения JConsole обеспечивает это как для локальных, так и для удаленных JVM.

Расширения пакета javax.management (http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html) поддерживают это: http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html.

Парадигма мониторинга JMX + JConsole встроена в вашу JVM и все более проста для реализации в java SE 1.6.

Виртуальная машина Java (Java VM) имеет встроенные инструменты, которые позволяет контролировать и управлять им с помощью Java Management Технология расширений (JMX). От http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdevs

Детали

Стандартный способ мониторинга любой JVM (клиентской, серверной, локальной или удаленной) использует JConsole: http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html. Вы можете одновременно открыть несколько клиентов JConsole, отслеживая различные экземпляры.

1) Сначала вы запускаете службы JVM с этим аргументом:

com.sun.management.jmxremote.port=portNum

2) Затем, на вашем удаленном клиенте (тот, который вы хотите сделать мониторинг), вы можете начать мониторинг этой JVM

jconsole hostName:portNum

Для интеграции JVM Analytics на разных серверах

1) Попробуйте приложение Clearstone: я не использовал его, но, похоже, что скриншоты поддерживают тип распределенной среды:

http://www.evidentsoftware.com/products/clearstone-for-java/

ClearStone для Java включает в себя готовый коллектор, который доставляет метрики через JMX. Сервер ClearStone может собирать и сопоставлять информацию из любого Java MBean.

** Наконец, для еще одного сравнения страуса и jconsole: **

Удаленное тестирование приложения Scala / Java во время выполнения

3 голосов
/ 09 января 2012

Вы можете использовать Ostrich, интегрированный с Heapster .

Heapster

Heapster предоставляет библиотеку агентов для профилирования кучи для JVMпроцессы с выводом, совместимым с Google perftools.Цель Heapster - иметь возможность выполнять осмысленное (выборочное) профилирование кучи в производственных условиях.

Интеграция со страусами

Если вы используете страус и запускаете программус помощью heapster вы можете сгенерировать профили кучи во время выполнения, например:

$ curl 'localhost: 9990 / pprof / heap? pause = 10 & sample_period = 1024'> / tmp / prof. Это позволит собирать данные о росте кучи в течение 10 секунд спериод выборки 1 кБ.

0 голосов
/ 30 июля 2012

Вы можете взглянуть на http://code.google.com/p/javamelody/, который запускает сервлет с графиками многих распространенных метрик Java (и JDBC). Это LGPL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...