1
0
Fork 1
mirror of https://github.com/thatmattlove/hyperglass.git synced 2026-04-19 14:28:28 +00:00
Commit graph

28 commits

Author SHA1 Message Date
Wilhelm Schonfeldt
0398966062
feat: Add structured traceroute support with comprehensive IP enrichment
MAJOR NEW ARCHITECTURE - STRUCTURED TRACEROUTE:
- Complete rewrite of traceroute data processing with structured output
- Dedicated TracerouteResult and TracerouteHop data models
- Platform-specific parsers with unified output format
- Rich metadata including ASN, organization, country, and prefix information
- AS path visualization with organization names in React Flow charts

SUPPORTED PLATFORMS:
- TraceroutePluginMikrotik: Handles MikroTik's complex multi-table format
  * Progressive statistics parsing with deduplication
  * Timeout hop handling and continuation line processing
  * Loss percentage and RTT statistics extraction
- TraceroutePluginHuawei: Unix-style traceroute format parser
  * Standard hop_number ip_address rtt format support
  * Timeout hop detection with * notation
  * Automatic cleanup of excessive trailing timeouts

COMPREHENSIVE IP ENRICHMENT SYSTEM:
- Offline enrichment using BGP.tools bulk data (1.3M+ CIDR entries)
- PeeringDB integration for IXP detection and ASN organization data
- Ultra-fast pickle cache system with combined data files
- Integer-based bitwise IP matching for maximum performance
- Bulk ASN organization lookup capabilities
- Private/reserved IP handling with AS0 fallbacks
- Country code mapping from ASN database
- Graceful fallbacks for missing enrichment data

FRONTEND ENHANCEMENTS:
- New traceroute table components with consistent formatting
- Enhanced AS path visualization with organization names
- Improved copy-to-clipboard functionality with structured data
- Unified table styling across BGP and traceroute results
- Better error handling and loading states

CONCURRENT PROCESSING INFRASTRUCTURE:
- Thread executor implementation for blocking I/O operations
- Query deduplication system to prevent resource conflicts
- Non-blocking Redis cache operations using asyncio executors
- Event coordination for waiting requests
- Background cleanup for completed operations
- Prevents website hangs during long-running queries

PLUGIN ARCHITECTURE IMPROVEMENTS:
- Platform-aware plugin system with proper execution restrictions
- Enhanced MikroTik garbage output cleaning
- IP enrichment plugins for both BGP routes and traceroute
- Conditional plugin execution based on platform detection
- Proper async/sync plugin method handling

CRITICAL BUG FIXES:
- Fixed double AS prefix bug (ASAS123456 → AS123456)
- Resolved TracerouteHop avg_rtt field/property conflicts
- Corrected Huawei traceroute source field validation
- Fixed plugin platform restriction enforcement
- Eliminated blocking I/O causing UI freezes
- Proper timeout and empty response caching prevention
- Enhanced private IP range detection and handling

PERFORMANCE OPTIMIZATIONS:
- Pickle cache system reduces startup time from seconds to milliseconds
- Bulk processing for ASN organization lookups
- Simplified IXP detection using single PeeringDB API call
- Efficient CIDR network sorting and integer-based lookups
- Reduced external API calls by 90%+
- Optimized memory usage for large datasets

API & ROUTING ENHANCEMENTS:
- Enhanced API routes with proper error handling
- Improved middleware for concurrent request processing
- Better state management and event handling
- Enhanced task processing with thread pool execution

This represents a complete transformation of hyperglass traceroute capabilities,
moving from basic text output to rich, structured data with comprehensive
network intelligence and concurrent processing support.
2025-09-28 13:48:04 +02:00
Wilhelm Schonfeldt
ae6a1a0bb8 Refactor code for improved readability and consistency across multiple files using black 2025-09-26 09:43:06 +02:00
Carlos Santos
63da21b504
Update mikrotik.py 2025-09-13 15:53:27 -03:00
Carlos Santos
0b5bcc37c1
Update huawei.py 2025-09-13 03:10:38 -03:00
Carlos Santos
cc4a54a487
Update huawei.py 2025-09-13 02:38:20 -03:00
Carlos Santos
d2e83c41f3
Update mikrotik.py 2025-09-13 02:37:53 -03:00
Carlos Santos
16af5ce591
Update mikrotik.py 2025-09-13 02:37:11 -03:00
Carlos Santos
840e916216
Update huawei.py 2025-09-13 02:35:17 -03:00
Carlos Santos
7e66bbdf20
Update mikrotik.py 2025-09-13 00:13:24 -03:00
Carlos Santos
c2cf9e28c6
Update huawei.py 2025-09-13 00:12:34 -03:00
Carlos Santos
62a93c0e5f
Update mikrotik.py 2025-09-13 00:09:46 -03:00
Carlos Santos
ab514629f7
Update mikrotik.py 2025-09-13 00:09:06 -03:00
Jelson Stoelben Rodrigues
44f8faa1e5 fix: timeout when fetching bgp routes
Huawei has pagination by default and when the output exceeds 24 lines it expects the user to keep scrooling to display the output. This makes the netmiko time out. By passing "| no-more" the pagination will be disabled for the command
2025-06-09 21:37:14 -04:00
Chris Wiggins
51c7f9eef6 feat: Add FRR structured output for BGP Routes 2025-06-09 21:12:18 -04:00
GrandArcher
e6e11ee058
Update mikrotik.py (#292)
Fixed Mikrotik_BGPRoute to print all routes that contain {target} instead of having to be an exact match to {target}.
2025-06-06 05:36:54 -04:00
KyleM
2ba8b2c67c
Fix VyOS Directives. (#284)
* Fixed vyos directives syntax

* Trying raw output

* Switched from MTR to traceroute as hyperglass cannot handle the encoding of MTR output.
2025-06-06 05:25:42 -04:00
Renato Ornelas
e8997b981c Fix for IPv6 traceroute for juniper devices 2024-06-19 15:11:22 -03:00
thatmattlove
8a3d704eca fix broken license link 2024-06-01 14:50:00 -04:00
thatmattlove
847e55098b update docs & examples 2024-03-20 00:57:11 -04:00
thatmattlove
a8476f2ea9 fix import sorting 2024-03-17 16:04:41 -04:00
thatmattlove
77c0a31256 upgrade major dependencies 2024-03-16 23:17:54 -04:00
thatmattlove
6fcf8ca837 Add OpenBGPD support, closes #206 2022-12-26 16:24:24 -05:00
thatmattlove
c8c13eea27 migrate legacy builtin commands to directives 2022-12-26 10:57:30 -05:00
thatmattlove
c8892f43ea Implement Arista table output plugin and default directive 2021-12-08 17:13:56 -07:00
thatmattlove
7d5d64c0e2 Plugin/directive fixes 2021-09-21 07:54:16 -07:00
thatmattlove
cd87c254e4 Overhaul configuration initialization process, add missing device to directive association 2021-09-17 18:15:59 -07:00
thatmattlove
7adb6ae0ec Add directives to global state 2021-09-17 09:04:59 -07:00
thatmattlove
37a8e40bfe Move defaults into dedicated module 2021-09-16 17:13:15 -07:00