Простой сервер, контролирующий с [закрытым] Java

Да, можно использовать определить ключевое слово для объявления многострочной переменной, как это:

define ANNOUNCE_BODY
Version $(VERSION) of $(PACKAGE_NAME) has been released.

It can be downloaded from $(DOWNLOAD_URL).

etc, etc.
endef

хитрая часть вытаскивает Вашу многострочную переменную назад из make-файла. Если Вы просто сделаете очевидную вещь использования "$ эха (ANNOUNCE_BODY)", то Вы будете видеть результат, который другие отправили здесь - оболочка пытается обработать вторые и последующие строки переменной как сами команды.

Однако можно экспортировать значение переменной как есть в оболочку как переменная среды и затем сослаться на него от оболочки как переменная среды (НЕ сделать переменная). Например:

export ANNOUNCE_BODY
all:
    @echo "$ANNOUNCE_BODY"

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

, Конечно, этот конкретный прием может быть платформой и чувствительной оболочкой. Я протестировал его на Ubuntu, который Linux с GNU колотит 3.2.13; YMMV.

11
задан MSR 10 September 2009 в 15:47
поделиться

3 ответа

Вы можете делегировать мониторинг с помощью специального инструмента, такого как Cacti , Centreon или Zenoss , но это может быть немного излишним для одного приложения.

Для простого решения JMX действительно может быть лучшим решением. В качестве отправной точки я предлагаю прочитать следующую статью: Мониторинг локальных и удаленных приложений с помощью JMX 1.2 и JConsole . Затем ознакомьтесь с Использование JConsole для мониторинга приложений , очень подробной статьей, в которой показано, как использовать JConsole для доступа к нескольким основным элементам мониторинга и функции управления, предоставляемые платформой Java, в том числе:

  • Обнаружение нехватки памяти
  • Включение или отключение подробной трассировки GC и загрузки классов
  • Обнаружение взаимоблокировок
  • Управление уровнем журнала любых регистраторов в приложении
  • Доступ к ОС ресурсы - расширение платформы Sun
  • Управление управляемыми компонентами приложения (MBeans)

Но, AFAIK, JMX не предоставит вам доступа к сетевому вводу-выводу, поэтому вам может потребоваться комбинация этих инструментов. К счастью, многие инструменты (например, Cacti, SmokePing ) используют формат RDD, которым вы можете легко управлять с помощью Java API, например JRobin или rdd4j .

3
ответ дан 3 December 2019 в 11:21
поделиться

Вы можете изучить инструмент мониторинга Ganglia .

1
ответ дан 3 December 2019 в 11:21
поделиться

Лучше всего заглянуть в / proc, чтобы узнать об использовании всех ресурсов вашей системы / proc / cpuinfo и / proc / net / - хорошее место для начала.

0
ответ дан 3 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: