
Joularjx является агентом на базе Java для мониторинга программного обеспечения на уровне исходного кода.
Подробная документация (включая пользовательские и справочные гиды) доступна по адресу: https://joular.github.io/joularjx/.
Чтобы построить Joularjx, вам нужны Java 11+ и Maven, затем просто постройте:
mvn clean install -DskipTests
В качестве альтернативы, вы можете использовать оболочку Maven, отправленную с командой:
Linux: ./mvnw clean install -DskipTests
Windows: ./mvnw.cmd clean install -DskipTests
Joularjx зависит от следующего программного обеспечения или пакетов, чтобы получить чтение питания:
config.properties .powermetrics , инструмент, связанный с macOS, который требует работы с доступом sudo . Рекомендуется авторизовать текущих пользователей запускать /usr/bin/powermetrics не требуя пароля, внесет надлежащий изменение в файле sudoers .Мы также поддерживаем Asus Tinker Board (ы).
Joularjx - это агент Java, где вы можете просто подключить его к виртуальной машине Java, когда вы начинаете основной класс вашей программы Java:
java -javaagent:joularjx-$version.jar YourProgramMainClass
Если ваша программа представляет собой файл JAR, то просто запустите ее, как обычно, добавляя Joularjx:
java -javaagent:joularjx-$version.jar -jar yourProgram.jar
Joularjx будет генерировать несколько файлов CSV в соответствии с настройками конфигурации (в config.properties ) и создаст эти файлы в папке joularjx-results .
Сгенерированные файлы доступны в рамках следующей структуры папок:
filter-method-names )) Joularjx можно настроить путем изменения файлов config.properties :
filter-method-names : список строк, которые будут использоваться для фильтрации контролируемых методов (см. Сгенерированные файлы ниже для объяснений).save-runtime-data : записи методы выполнения. Методы энергопотребления в файле CSV.overwrite-runtime-data : перезаписать файлы данных о питании времени выполнения или, если он установлен в FALSE, он будет писать новые файлы для каждого цикла мониторинга.logger-level : Установите уровень информации (Logger), указанный Joularjx в терминале (разрешенные значения: off, info, предупреждение, суровое).powermonitor-path : полный путь к монитору Power для программы Windows (только для Windows).track-consumption-evolution : генерируйте файлы CSV для каждого метода, содержащего подробности потребления метода в течение времени. Каждое значение потребления отображается с временной меткой UNIX.hide-agent-consumption : если установить на истину, энергопотребление потоков агента не будет сообщено.enable-call-trees-consumption . Файл CSV будет генерироваться в конце выполнения агента, связывая с каждым деревом вызовов общее потребление энергии.save-call-trees-runtime-data : записи во время выполнения. Для каждого цикла мониторинга (1 секунду) будет создан новый файл CSV, содержащий энергопотребление времени выполнения деревьев вызовов. Сгенерированные файлы будут включать метки времени в их именах.overwrite-call-trees-runtime-data : перезаписать файл питания данных о вызовах выполнения или, если он будет установлен в False, он будет писать новый файл для каждого цикла мониторинга.application-server : должным образом обрабатывает серверы приложений и рамки (Sprig Boot, Tomcat и т. Д.). Установите true при запуске на серверах приложений. Если false, цикл мониторинга проверит, будет ли уничтожен JVM, следовательно, закрыв Joularjx, когда приложение заканчивается (в обычном приложении Java). Если это правда, Joularjx будет продолжать правильно контролировать, поскольку JVM не разрушен на сервере приложений.vm-power-path : путь для энергопотребления виртуальной машины. Внутри виртуальной машины укажите файл, содержащий энергопотребление виртуальной машины (который обычно представляет собой файл на хосте, который совместно используется с гостем).vm-power-format : формат питания общего файла питания виртуальной машины. В настоящее время мы поддерживаем два формата: watts (файл, содержащий одно поплавковое значение, которое является энергопотреблением виртуальной машины) и powerjoular (файл CSV, генерируемый PowerJoular на хосте, содержащий 3 столбца: метка времени, использование ЦП и мощность VM и CPU). Вы можете установить пакет JAR (и PowerMonitor.exe в Windows), где бы вы ни захочется, и позвонить в javaagent с полным путем. Тем не менее, config.properties должен быть либо скопирован в ту же папку, что и там, где вы запускаете команду Java, или ее местоположение должно быть установлено с помощью свойства -Djoularjx.config=/path/to/config.properties при запуске вашей программы.
В виртуальных машинах Joularjx требуется два шага:
Для данных о мощности в реальном времени или общей энергии на выходе из программы Joularjx сгенерировал два файла CSV:
config.properties ). Эти данные представляют собой не просто подмножество первого файла данных, а скорее пересчет, сделанная Joularjx для предоставления точных данных: методы, начинающиеся с отфильтрованного ключевого слова, будут выделены мощность или энергия, потребляемая методами JDK, которые он вызывает. Например, если Package1.MethodA вызывает java.io.PrintStream.println для печати текста на терминал, тогда мы рассчитываем:
println отдельно от MethodA . Последнее энергопотребление не будет включать в себя тех, кто потребляется println .Package1 , то энергопотребление println будет добавлено в энергопотребление MethodA , а файл будет обеспечивать только мощность или энергию методов Package1 .Нам удается сделать это, проанализируя Stacktrace всех запущенных потоков в среде выполнения.
Joularjx Reader - это графический интерфейс для обработки, анализа и визуализации сгенерированных энергетических файлов Joularjx. Он доступен в своем собственном репозитории здесь.
Чтобы привести нашу работу в исследовательской статье, пожалуйста, процитируйте нашу статью на 18 -й Международной конференции по интеллектуальной среде (IE2022).
@inproceedings{noureddine-ie-2022,
title = {PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools},
author = {Noureddine, Adel},
booktitle = {18th International Conference on Intelligent Environments (IE2022)},
address = {Biarritz, France},
year = {2022},
month = {Jun},
keywords = {Power Monitoring; Measurement; Power Consumption; Energy Analysis}
}
Joularjx имеет лицензию только в рамках лицензии GNU GPL 3 (только GPL-3.0).
Copyright (C) 2021-2024, Adel Nuddine, Université de Pau et des Pays de l'Adour. Все права защищены. Эта программа и сопровождающие материалы предоставляются только в соответствии с условиями только общей публичной лицензии GNU v3.0 (gpl-3.0), которые сопровождают это распределение, и доступно по адресу: https://www.gnu.org/licenses/gpl-3.0.en.html
Автор: Адель Нилдин