
PerformanceAnalyzer
Monitor your server in real-time, find the source of lag spikes in seconds, and keep your players happy — all from a single, lightweight plugin.
Оцените первым
470
0
Список изменений
[3.0.0] - 2026-06-17
Changed
- BREAKING: AntiCheat split into a separate plugin (BSAntiCheat). PerformanceAnalyzer is now a focused performance-monitoring & lag-diagnosis plugin. All XRay and Movement detection — including the related commands, GUI, config, permissions and language strings — has been removed from this plugin and lives on in the standalone BSAntiCheat plugin. The performance GUI detects BSAntiCheat and links to it when installed.
- Performance drop detection now runs every second on its own scheduled task, decoupled from the database logging interval. Previously
checkForDrop()was only called once perlog_interval_seconds(60s by default), so short-lived TPS/MSPT spikes were missed.
Added
- REST API is now active. The
MetricsAPIserver is started on enable (was previously implemented but never wired up). Endpoints:/api/health,/api/metrics,/api/worlds,/api/trends, with API key authentication. Disabled by default. - Auto Entity Cleaner is now active.
AutoEntityCleaneris hooked into plugin enable/disable. Disabled by default withdry_run: true. - Developer API:
PerformanceAnalyzernow implements the publicPerformanceAPIinterface —getCurrentTPS(),getCurrentMSPT(),getHeapUsagePercent(),getTotalEntityCount(),getEntityCount(World),getVersion(). - Accurate low/high drop tracking: recorded performance drops now report the actual worst TPS / highest MSPT observed during the drop window instead of the value at the moment of recording.
- Documented config keys that were previously only added silently via migration:
database.fallback_file_logging,database.fallback_log_file,gui.auto_refresh, and the fullapi.*andentity_cleaner.*sections.
Fixed
- Duplicate logging task / task leak on
/perfreload:TickSampler.setDatabase()now cancels the previously scheduled logging task before scheduling a new one. Previously every reload added another logging task, causing duplicate database writes and duplicate alert/drop checks. - Verbose console output during lag events: the per-world / per-chunk diagnostic logging in the performance drop analyzer is now gated behind debug mode, so it no longer floods the console (and adds load) while the server is already struggling.
- Throttled deep analysis: the expensive server-state/chunk-snapshot analysis now runs at most once per 30 seconds during sustained drops, preventing it from piling up chunk snapshots on the main thread.
Removed
- AntiCheat classes:
XRayDetector,MovementChecker,ViolationTracker,XRayAlertManager,MovementAlertManager,AntiCheatGUI,LuckPermsHook - AntiCheat commands:
/xrayalerts,/movealerts,/xrayores,/acwhitelist - AntiCheat permissions:
performance.anticheat.manage,performance.anticheat.bypass - All
anticheat.*config keys,performance.anticheat_enabled,discord.alert_types.anticheat, and all AntiCheat/XRay/Movement language strings (EN & DE) XRAYandMOVEMENTsilent-mode categories — onlyALLandPERFORMANCEremain;/perfsilentnow acceptsall,performance,list,reset- Dead code: unused
ConfigMigratorclass (a duplicate migration system with a phantom "prometheus" feature), legacy synchronousanalyzeChunk(),DatabaseManager.deleteAntiCheatLogs(),isPlayerSuspicious()from the public API, and empty Javadoc stubs inConstants
Config
config_versionbumped to 6 — auto-migration adds the new fallback-logging keys to existing configs (existing settings are never overwritten)
Файлы
performance-analyzer-3.0.0.jar(13.18 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
3.0.0
Загрузчики
PaperPurpurSpigot
Версии игры
1.21–1.21.11
Загрузок
6
Дата публикации
17.06.2026
