Aspectow v4.3.0 is a major feature and monitoring milestone that introduces the AppMon Cluster Group View for unified multi-node observability, Gateway Mode and a high-throughput lock-free Zero-Allocation cluster relayer, MetricsViewer component modularization with real-time rollup chart aggregations, Aspectran 9.8.1 integration with real-time session ID renewal (changeSessionId) tracking, enhanced console login security (open redirect prevention and safe referrer redirection), and advanced interactive physics mechanics in TrafficPainter (Kinetic Sliding Prism and Black Hole dynamics).
With the introduction of the Cluster Group View, operators can now monitor the real-time health, logs, and metrics of multiple nodes across a cluster in a single unified interface, dramatically improving observability for distributed architectures and microservices. Gateway Mode enables seamless proxying of multi-node WebSocket and long-polling relay subscriptions through a single entry point while eliminating GC pressure via zero-allocation message routing. Additionally, console wide mode toggles, enhanced contrast for metrics tooltips and session counts, and enriched physics animations in TrafficPainter deliver a sophisticated enterprise-grade monitoring experience.
🚀 New Features
- AppMon Cluster Group View for Unified Multi-Node Observability
- Introduced the Cluster Group View to provide real-time, consolidated observability across multiple nodes within an application cluster in a single screen.
- Standardized frontend message processing signatures with
nodeIdas the leading parameter, establishing a consistent multi-node message routing model. - Added support for loading initial log buffers across all cluster nodes upon group view initialization and decorated multi-node console logs with intuitive node badges to clearly identify message origins.
- Dynamic Node Session Filtering (
session-node-filter): Dynamically displays node filter buttons based on active session counts, allowing operators to filter active session cards by specific nodes. - Streamlined node indicator state management and sampling timers to ensure smooth and responsive real-time metrics rendering in multi-node topologies.
- Gateway Mode and High-Throughput Cluster Relayer Architecture
- Introduced Gateway Mode, enabling a single gateway node to efficiently proxy and multiplex monitoring subscriptions across distributed backend nodes.
- Supported multi-node subscriptions (
subscribeMultiNode) over WebSocket and HTTP long-polling relay sessions, drastically reducing redundant network connections and socket overhead. - Enhanced Cluster-Wide (
relayClusterWide) and Local (relayLocally) Message Relaying:- Implemented zero-allocation string prefix checking (
starts-with) to significantly reduce garbage collection (GC) overhead during high-volume message dissemination. - Introduced lazy evaluation logic and overloaded method variants to bypass redundant serialization and deserialization cycles during message routing.
- Implemented zero-allocation string prefix checking (
- Improved reconnection strategies in
WebSocketClientandPollingClientto ensure robust session recovery during transient network interruptions or when resuming from mobile browser background states. - Optimized session scavenging logic in
PollingSessionManagerfor efficient cleanup of expired polling sessions.
- Modularized MetricsViewer Component and Real-Time Rollup Chart Aggregations
- Extracted metric cards, inline sparklines, and popover detail charts from the monolithic dashboard viewer into an independent, modular
MetricsViewer(metrics-viewer.js) component. - Centralized time-series aggregation logic across activity and session statistics, enabling consistent multi-node real-time rollup chart updates in both single-node and cluster group views.
- Normalized metric persist scheduler timestamps to minute boundaries, guaranteeing consistent alignment for historical rollup metrics.
- Removed redundant label tracking logic to optimize chart rendering and DOM update performance.
- Extracted metric cards, inline sparklines, and popover detail charts from the monolithic dashboard viewer into an independent, modular
- Aspectran 9.8.1 Integration and Real-Time Session ID Renewal (
changeSessionId) Tracking- Integrated with Aspectran 9.8.1’s session fixation protection API by adding
sessionIdChangedevent handlers toSessionEventReaderandSessionEventReadingListener. - Propagated
changedSessionsmappings upon authentication or privilege changes, enabling the AppMon dashboard to seamlessly replace obsolete session cards with renewed session IDs in real time. - Added human-readable descriptions (
description) to monitoring advice actions inActivityEventCounterandActivityEventReader, achieving full alignment with Aspectran’s modernized AOP advice logging.
- Integrated with Aspectran 9.8.1’s session fixation protection API by adding
- Enhanced Console Login Security and Safe Referrer Redirection
- Implemented safe post-login redirection to return unauthenticated users directly to their originally requested page (
referrer) upon successful authentication. - Preserved original query parameters within the
referrerparameter inUserAuthAspect. - Added rigorous local URL validation (
isSafeLocalUrl) inLoginActivityto defend against Open Redirect and cross-site scripting (XSS) vectors, rejecting external domains, protocol-relative URLs (//), carriage returns/line feeds (CRLF), backslashes, and control characters. - Added a “Remember Username” feature to the console login form backed by browser
localStorage.
- Implemented safe post-login redirection to return unauthenticated users directly to their originally requested page (
- Advanced Interactive Physics in TrafficPainter (Kinetic Sliding Prism & Black Hole Mechanics)
- Enhanced Black Hole Mechanics: Implemented orbital rotation and ejection dispersion physics for captured request bullets, accompanied by dynamic scaling, velocity acceleration boosts, and glow effects proportional to trapped bullet counts.
- Kinetic Sliding Prism Mechanics: Introduced smooth easing-based prism movements that react dynamically to black hole activity, providing precise bullet dispersion animations as traffic passes through the prism gate.
- Added fade-out animations for prisms on narrow track layouts and refined black hole canvas positioning.
🚀 Improvements
- Comprehensive Dashboard UI/UX and Visual Contrast Enhancements
- Added a wide mode toggle (
wide mode toggle) for console boxes, allowing operators to expand log and session panels across ultra-wide monitors. - Enhanced tooltip background contrast and refined the color palette and active session background badges to ensure optimal legibility across both dark and light themes.
- Simplified event box and control bar structures while removing redundant title bars to maximize usable screen real estate.
- Polished login card padding, logo sizing, and responsive mobile viewport layouts.
- Added a wide mode toggle (
- Optimized TrafficPainter Canvas Resizing and Flexbox Layout
- Streamlined canvas resizing calculations by evaluating the
canvaselement directly rather than its parent container, eliminating obsoletefinishLineOffsetoffsets. - Applied flexbox styling across
.track-boxcontainers to achieve precise vertical and horizontal alignment between the traffic canvas and track stack.
- Streamlined canvas resizing calculations by evaluating the
- Graceful H2 Database Shutdown and Process Resilience
- Improved H2 database shutdown routines in Console by detecting server mode and refining exception handling, preventing database lock contention or file corruption on application termination.
- Added defensive guards to skip detached OS restart commands when the root runtime is not running as a
DaemonService.
- Modernized Static Asset Bundling Pipeline (AppMon v4.3)
- Updated asset bundle versioning and cache-busting identifiers to the
v4.3release specification. - Included
metrics-viewer.jsin the build-time bundling manifest to accelerate browser asset delivery.
- Updated asset bundle versioning and cache-busting identifiers to the
- Dedicated macOS ARM64 (Apple Silicon) Profile
- Added a dedicated Maven profile in
appmon-demoandconsole-demoto importnetty-resolver-dns-native-macos(osx-aarch_64), accelerating startup times and enhancing DNS resolution stability on Apple Silicon hardware.
- Added a dedicated Maven profile in
🐛 Bug Fixes
- Fixed Premature Exporter Termination on Multi-Session Unsubscribe
- Fixed a concurrency issue where unsubscribing a single session prematurely halted the metric exporter while other sessions remained actively subscribed to the same application.
- Guarded Against Redundant Chart Data Queries on Command History Traversal
- Prevented unnecessary chart data reloading when navigating previous console commands, eliminating interface lag and chart data distortion.
🛠️ Dependency Upgrades
- Frameworks & Core Components
- Aspectran: 9.8.0 → 9.8.1
- Netty: 4.2.18.Final → 4.2.19.Final
- Lettuce Core: 7.8.0.RELEASE → 7.9.0.RELEASE
- Build & Plugins
- Central Publishing Maven Plugin: 0.11.0 → 0.12.0
- Apache Maven (Wrapper): 3.9.16 → 3.10.0
- AppMon Static Assets: Bundling pipeline upgraded to v4.3
Juho Jeong NEWS
Release