2011-12-29 2 views
9

Страусиный проект из Twitter, похоже, подходит для моего случая использования, когда я хотел бы отслеживать множество статистических данных на основе JVM плюс некоторые пользовательские статистические данные.Есть ли Java-эквивалент библиотеки Ostrich Twitter?

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

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

ответ

14

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

Вы можете получить отчет по JMX или HTTP, а также отчеты, такие как Ganglia и Graphite.

+0

Благодарим за указание этой библиотеки. Это очень полезно. – Shamik

6

Комбинация 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 on.

Виртуальная машина Java (Java VM) имеет встроенный инструментовки, что позволяет контролировать и управлять ею с помощью технологии управления Java Extensions (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) Затем, на удаленном клиенте (тот, который вы хотите сделать мониторинг), вы можете начать мониторинг этой виртуальной машины Java

jconsole hostName:portNum 

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

1) Try приложение Clearstone: Я не использовал я т, но скриншоты, по всей видимости поддерживает тип распределенной envirnoment, что вы, кажется, есть:

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

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

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

Remote Probing of Scala/Java Application in Runtime

3

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

Heapster

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

Страус интеграция

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

$ завиток «локальный: 9990/pprof/кучного пауза = 10 & sample_period = 1024 '> /tmp/prof Это будет собирать рост кучи в течение 10 секунд с периодом выборки 1kB.

0

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