From c3f93106e28a00048e3023660d764c3d2ee80cd2 Mon Sep 17 00:00:00 2001 From: taylanbakircioglu Date: Wed, 18 Feb 2026 21:09:55 +0300 Subject: [PATCH] docs: add Response Time Heatmap, IP Inventory screenshots and update README Co-authored-by: Cursor --- README.md | 33 +++++++++++++++++++++ docs/screenshots/ip-inventory.png | Bin 0 -> 59106 bytes docs/screenshots/response-time-heatmap.png | Bin 0 -> 33540 bytes 3 files changed, 33 insertions(+) create mode 100644 docs/screenshots/ip-inventory.png create mode 100644 docs/screenshots/response-time-heatmap.png diff --git a/README.md b/README.md index 8ee7186..51c3483 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Modern, web-based management interface for HAProxy load balancers with multi-clu - [Configuration Management](#configuration-management) - [Bulk Configuration Import](#bulk-configuration-import) - [Apply Management & Version Control](#apply-management--version-control) + - [IP Inventory - Cross-Cluster IP Search](#ip-inventory---cross-cluster-ip-search) - [Agent & Security Management](#agent--security-management) 3. [Key Capabilities](#key-capabilities) - [Configuration & Entity Management](#configuration--entity-management) @@ -33,6 +34,7 @@ Modern, web-based management interface for HAProxy load balancers with multi-clu - [Dashboard](#dashboard---main-overview--real-time-monitoring) - [Frontend Management](#frontend-management---virtual-host--routing-configuration) - [Backend Servers](#backend-servers---server-pool-management) + - [IP Inventory](#ip-inventory---cross-cluster-ip-search--discovery) - [SSL Certificates](#ssl-certificates---centralized-tlsssl-certificate-management) - [WAF Management](#waf-management---web-application-firewall) - [Configuration](#configuration---haproxy-config-file-management) @@ -95,6 +97,8 @@ This architecture provides better security (no inbound connections to HAProxy se ✅ **WAF Rules** - Web Application Firewall management and deployment ✅ **Agent Script Versioning** - Update agents via UI (Monaco editor) with auto-upgrade ✅ **Token-Based Agent Auth** - Secure token management with revoke/renew +✅ **IP Inventory** - Cross-cluster IP search to identify agents, VIPs, and backend servers by IP +✅ **Keepalived VRRP Detection** - Automatic MASTER/BACKUP state and VIP detection from keepalived ✅ **Role-Based User Management** - Admin and user roles with granular permissions and access control ✅ **User Activity Audit Logs** - Complete audit trail of all system events ✅ **REST API** - Full programmatic access for automation and CI/CD integration @@ -112,6 +116,9 @@ This architecture provides better security (no inbound connections to HAProxy se **Dashboard** - Health Matrix showing backend servers with detailed health check status and response times ![Dashboard - Health Matrix](docs/screenshots/health-matrix.png) +**Dashboard** - Response Time Heatmap (24h) with color-coded latency visualization per backend +![Dashboard - Response Time Heatmap](docs/screenshots/response-time-heatmap.png) + **Backend Management** - Backends & Servers tab with 165 servers across 56 backends, health status overview ![Backend Management - Backends & Servers](docs/screenshots/backends-servers.png) @@ -155,6 +162,11 @@ This architecture provides better security (no inbound connections to HAProxy se **Version History** - Complete version history with restore capabilities and deployment status ![Version History - Timeline](docs/screenshots/version-history.png) +### IP Inventory - Cross-Cluster IP Search + +**IP Inventory** - Unified view of all IPs across clusters with search capability to identify which cluster, agent, or backend server an IP belongs to +![IP Inventory](docs/screenshots/ip-inventory.png) + ### Agent & Security Management **Agent Management** - Agent setup wizard with platform selection (Linux/macOS) and architecture (x86_64/ARM64) @@ -619,6 +631,26 @@ The dashboard displays comprehensive real-time metrics collected by agents from - **Connection Limits**: Per-server connection and rate limiting - **Monitoring Dashboard**: Real-time server status and performance metrics +### 🔍 **IP Inventory** - *Cross-Cluster IP Search & Discovery* + +The IP Inventory page provides a unified view of all IP addresses across every cluster, independent of the global cluster selector. It enables quick identification of which cluster, agent, or backend server a given IP belongs to. + +**Key Features:** +- **Cross-Cluster Search**: Search any IP address across all clusters simultaneously +- **IP Type Identification**: Instantly determine if an IP is an agent server IP, a keepalived VIP, or a backend server address +- **Unified Results Card**: Search results show matched IP type (Server IP, VIP, Backend), agent/server name, cluster association, and status +- **Agent Tab**: Browse all agents with cluster name, hostname, agent IP, VIP (keepalive), VRRP state (MASTER/BACKUP), status, platform, and last seen time +- **Backend Servers Tab**: Browse all backend servers with cluster, backend name, server address, status, weight, and check status +- **Cluster Color Coding**: Each cluster is assigned a consistent color tag for quick visual identification +- **Auto-Refresh**: Data refreshes automatically every 30 seconds +- **Filters**: Filter by cluster and status within each tab + +**Use Cases:** +- Identify which HAProxy cluster an IP belongs to during incident response +- Find which agent is running as MASTER or BACKUP in a keepalived pair +- Locate a backend server IP across multiple clusters +- Audit all IP addresses managed by the platform + ### 🔒 **SSL Certificates** - *Centralized TLS/SSL Certificate Management* HAProxy OpenManager provides powerful centralized SSL/TLS certificate management with both global and cluster-specific scopes: @@ -1413,6 +1445,7 @@ haproxy-openmanager/ │ │ │ ├── ApplyManagement.js # Apply changes │ │ │ ├── Configuration.js # Config viewer │ │ │ ├── BulkConfigImport.js # Bulk import +│ │ │ ├── IPInventory.js # IP inventory & search │ │ │ ├── VersionHistory.js # Version history │ │ │ ├── UserManagement.js # User management │ │ │ ├── Security.js # Security & tokens diff --git a/docs/screenshots/ip-inventory.png b/docs/screenshots/ip-inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..5672c8e95d0301e5264cd9997f0f92906ee9d88c GIT binary patch literal 59106 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/response-time-heatmap.png b/docs/screenshots/response-time-heatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..1bd44f3098f60ce164270c72c46746e7897878b8 GIT binary patch literal 33540 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¬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 cfAN2MTm=i&|65$