Repolode
alibaba

alibaba/jvm-sandbox

Контейнер-песочница для JVM, который добавляет работающим Java-приложениям ненавязчивый AOP во время выполнения без перезапуска.

Звёзды
6,952
Форки
1,586
Открытые issues
49
Последний коммит
2 месяца назад

Что это?

JVM-SANDBOX — это контейнер AOP-фреймворка для Java, который подключается к работающей JVM и модифицирует целевые методы во время выполнения. Перезапускать или изменять целевые приложения не требуется, а модули можно загружать и выгружать на лету, не оставляя следов в приложении.

Система разделяет каждый вызов метода на этапы BEFORE, RETURN и THROWS. Модули-плагины могут читать или изменять аргументы, возвращаемые значения и исключения, а также прерывать выполнение метода. Песочница и модули работают под собственными загрузчиками классов, поэтому не конфликтуют с классами приложения. Проект основан на Instrumentation и поддерживает JDK 6–11.

Типичные сценарии использования: диагностика сбоев в работающей системе, динамическое логирование, инъекция ошибок, запись и воспроизведение запросов, управление трафиком, мониторинг и маскирование конфиденциальных данных.

Ключевые возможности

  • 01Подключается к работающей JVM без перезапуска или изменения целевого приложения.
  • 02Позволяет модулям читать и изменять аргументы методов, возвращаемые значения и исключения.
  • 03Изолирует песочницу и модули от классов приложения с помощью собственных загрузчиков классов.
  • 04Модули можно загружать и выгружать на лету без побочных следов.
  • 05Поддерживает несколько арендаторов, каждый со своей независимо управляемой песочницей.
  • 06Работает с JDK 6–11.

Сценарии использования

  • Диагностика проблем в production: динамическое добавление логов в методы без повторного развёртывания приложения.
  • Инъекция ошибок в методы, чтобы проверить, как система обрабатывает сбои.
  • Запись вызовов методов и воспроизведение их результатов для тестирования.
  • Мониторинг или маскирование конфиденциальных данных, проходящих через методы приложения.

Быстрый старт

  1. 1

    Скачайте zip-архив последнего релиза (в README указано, что эта OSS-ссылка может перестать работать).

    wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip
  2. 2

    Или соберите дистрибутив самостоятельно с помощью JDK 1.8 в Linux или macOS.

    cd bin && ./sandbox-package.sh
  3. 3

    Подключите sandbox к работающему процессу Java (замените 33342 на идентификатор вашего процесса).

    ./sandbox.sh -p 33342

Что важно знать

  • Согласно README, поддерживаются только версии JDK с 6 по 11.
  • Для сборки из исходного кода требуются JDK 1.8 и Linux, macOS или Unix; Windows для сборки не поддерживается.
  • Лицензировано по LGPL-3.0 — лицензии с авторским левом.

В подборках

Темы

#java#jvm#aop#instrumentation#runtime-instrumentation#fault-injection#observability#bytecode

Частые вопросы

Что такое jvm-sandbox?
Контейнер-песочница для JVM, который добавляет работающим Java-приложениям ненавязчивый AOP во время выполнения без перезапуска. JVM-SANDBOX — это контейнер AOP-фреймворка для Java, который подключается к работающей JVM и модифицирует целевые методы во время выполнения. Перезапускать или изменять целевые приложения не требуется, а модули можно загружать и выгружать на лету, не оставляя следов в приложении.
jvm-sandbox можно использовать бесплатно? Какая у него лицензия?
jvm-sandbox распространяется с открытым исходным кодом под лицензией LGPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
jvm-sandbox всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в jvm-sandbox — 9 сент. 2026 г..
Для чего можно использовать jvm-sandbox?
Диагностика проблем в production: динамическое добавление логов в методы без повторного развёртывания приложения. Инъекция ошибок в методы, чтобы проверить, как система обрабатывает сбои. Запись вызовов методов и воспроизведение их результатов для тестирования. Мониторинг или маскирование конфиденциальных данных, проходящих через методы приложения.
Как установить jvm-sandbox?
Скачайте zip-архив последнего релиза (в README указано, что эта OSS-ссылка может перестать работать).: wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip Или соберите дистрибутив самостоятельно с помощью JDK 1.8 в Linux или macOS.: cd bin && ./sandbox-package.sh Подключите sandbox к работающему процессу Java (замените 33342 на идентификатор вашего процесса).: ./sandbox.sh -p 33342
Где скачать jvm-sandbox?
Исходный код и инструкции по установке — на GitHub: https://github.com/alibaba/jvm-sandbox

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Инструмент компиляционной OpenTelemetry-инструментации для Go: добавляет трассировки и метрики через команду `otel go build`, не требуя менять код приложения.

907131GoApache-2.0Активно поддерживаетсяОбновлён 18 дней назад

Python-фреймворк для проектирования, разработки и оценки автономных AIOps-агентов в симулируемых облачных средах с микросервисами и инъекцией сбоев.

1 тыс.+2 за неделю180PythonMITАктивно поддерживаетсяОбновлён 6 дней назад