1
0
Fork 1
mirror of https://github.com/thatmattlove/hyperglass.git synced 2026-04-27 18:26:21 +00:00
Commit graph

46 commits

Author SHA1 Message Date
Wilhelm Schonfeldt
9db9849a59
feat(structured): release structured feature set (squash merge)
Summary:
- Add structured traceroute support with comprehensive IP enrichment (ASN/org/RDNS).
- Improve MikroTik traceroute cleaning and aggregation; collapse repeated tables into a single representative table.
- Enhance traceroute logging for visibility and add traceroute-specific cleaning helpers.
- Add/adjust IP enrichment plugins and BGP/traceroute enrichment integrations.
- UI updates for traceroute output and path visualization; update docs and configuration for structured output.

This commit squashes changes from 'structured-dev' into a single release commit.
2025-09-30 16:46:01 +02:00
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
thatmattlove
bfcae89bf0 fix prepending of HYPERGLASS_APP_PATH to values; closes #253 2024-06-01 15:08:59 -04:00
thatmattlove
bccc07cc99 fix import formatting 2024-05-27 14:30:15 -04:00
thatmattlove
fedd0b4196 fix missing startup actions; closes #242 2024-04-02 10:10:03 -04:00
thatmattlove
d2f734ba1c logging overhaul 2024-04-01 23:42:07 -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
92bc28ac05 improve state handling & logging 2024-03-01 23:18:11 -05:00
thatmattlove
cd6bf7a162 tooling overhaul 2024-02-27 17:44:19 -05:00
thatmattlove
446853e4a9 countless updates I mostly don't remember. 2023-04-13 23:05:05 -04:00
thatmattlove
dfca1a5bc1 Move isort configuration to pyproject.toml 2021-12-22 22:22:01 -07:00
thatmattlove
8f0163c453 Fix import sorting 2021-12-17 11:25:04 -07:00
thatmattlove
ab2c7d4ced fix broken utility exports 2021-12-17 10:36:30 -07:00
thatmattlove
c049569cab Update black 2021-12-06 17:12:30 -07:00
thatmattlove
55a9918fd0 Minor improvements 2021-12-06 12:14:00 -07:00
thatmattlove
2589c5fa06 Migrate to typer for hyperglass CLI, implement new setup 2021-09-27 01:40:49 -07:00
thatmattlove
fbe778a605 Improve logging 2021-09-26 16:50:25 -07:00
thatmattlove
e73de24904 Implement input-plugin-based validation, implement common plugins 2021-09-26 11:39:46 -07:00
thatmattlove
cd87c254e4 Overhaul configuration initialization process, add missing device to directive association 2021-09-17 18:15:59 -07:00
thatmattlove
66e69db17d Add typing to custom WSGI app and initialize logging before startup 2021-09-17 12:08:38 -07:00
thatmattlove
7adb6ae0ec Add directives to global state 2021-09-17 09:04:59 -07:00
thatmattlove
c99f98a6f0 Complete global state implementation 2021-09-15 18:25:37 -07:00
thatmattlove
a2ee4b50fa Implement global state 2021-09-15 00:57:45 -07:00
thatmattlove
ac1e938bd3 Fix plugin registration for builtins 2021-09-13 14:10:50 -07:00
thatmattlove
74fcb5dba4 Continue output plugin implementation 2021-09-12 18:27:33 -07:00
thatmattlove
52ebf4663c Update code formatting - line length 2021-09-12 15:09:24 -07:00
thatmattlove
52b7cbdd3c Implement user API for plugins and fix plugin registration issues 2021-09-11 18:03:35 -07:00
thatmattlove
3c012f7ed1 Start output plugin feature 2021-09-11 00:47:01 -07:00
thatmattlove
99c7489441 Move UI Params into Pydantic model 2021-09-10 01:18:38 -07:00
thatmattlove
5ccfe50792 Complete directives implementation, refactor exceptions, deprecate VRFs, bump minimum Python version 2021-09-07 22:58:39 -07:00
thatmattlove
f235e29144 Improve system-info command output 2021-07-03 23:02:14 -07:00
checktheroads
81c65ce71e restructure util module 2021-01-28 23:02:25 -07:00
checktheroads
a3d9cf4e54 check the NodeJS version on startup, closes #105 2021-01-18 14:35:50 -07:00
checktheroads
fbf7ecccf1 remove rich for logging 2021-01-12 00:16:34 -07:00
checktheroads
95cd9424fd improve log handling 2020-10-11 15:39:15 -07:00
checktheroads
ba1a91c93f add redis password authentication support, closes #82 2020-10-10 21:13:28 -07:00
checktheroads
1128d1f902 update import syntax for new isort version 2020-09-28 14:55:09 -07:00
checktheroads
1cf082cc48 remove f-string logging 2020-09-28 12:37:44 -07:00
checktheroads
b5a67e7c0e Redis caching improvements 2020-07-13 01:54:38 -07:00
checktheroads
0d2deb49f9 fix redis preflight check 2020-06-02 01:43:29 -07:00
checktheroads
b35040c0a2 add outgoing http webhook for queries 2020-04-15 02:12:01 -07:00
checktheroads
5f3c516f86 revamp logging 2020-04-14 10:24:20 -07:00
checktheroads
1c9aee4608 bump version to beta-21 2020-04-13 02:26:12 -07:00
checktheroads
34fad3764d fix gunicorn startup issue 2020-04-13 02:04:35 -07:00
checktheroads
60abf2997f add gunicorn for process management 2020-04-13 01:06:03 -07:00