1
0
Fork 1
mirror of https://github.com/thatmattlove/hyperglass.git synced 2026-05-01 04:06:23 +00:00
Commit graph

37 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
Wilhelm Schonfeldt
ae6a1a0bb8 Refactor code for improved readability and consistency across multiple files using black 2025-09-26 09:43:06 +02:00
Wilhelm Schonfeldt
8131853daa Added broader support for external RPKI validation.
Expanded params config for rpki server URL and backend type for query switching and lookup handling.
Initial support for routinator server API endpoint.
2025-09-25 20:35:47 +02:00
Jason Hall
cf137bd7e8
format and lint 2025-06-14 21:44:20 -04:00
thatmattlove
e0751311ba remove unnecessary logging 2024-06-30 23:54:37 -04:00
thatmattlove
d2f734ba1c logging overhaul 2024-04-01 23:42:07 -04:00
thatmattlove
446853e4a9 countless updates I mostly don't remember. 2023-04-13 23:05:05 -04:00
thatmattlove
9c9a8469a4 replace flake8 with ruff for linting, refactor issues 2022-12-24 17:53:05 -05:00
thatmattlove
4dfe5749ae fix import sorting 2022-12-19 16:58:12 -05:00
thatmattlove
f37eb9abf7 add v2 docs, minor refactoring 2022-12-19 14:57:20 -05:00
thatmattlove
b7b681f3d3 Restructure utilities, add tests 2021-12-15 00:50:20 -07:00
thatmattlove
f8a4cad5de Improve external http client typing and add tests 2021-12-14 22:59:05 -07:00
thatmattlove
a902dc720d remove legacy ripestat api 2021-12-14 21:52:04 -07:00
thatmattlove
c049569cab Update black 2021-12-06 17:12:30 -07:00
thatmattlove
446534d839 Improve bgp.tools data handling/validation 2021-09-16 16:46:56 -07:00
thatmattlove
725631568e Fix call to deprecated httpx.StatusCodes 2021-09-16 15:56:28 -07:00
thatmattlove
e06ea5ecb9 Add separate hooks for major state objects, add tests 2021-09-16 13:46:50 -07:00
thatmattlove
c99f98a6f0 Complete global state implementation 2021-09-15 18:25:37 -07:00
thatmattlove
52ebf4663c Update code formatting - line length 2021-09-12 15:09:24 -07:00
thatmattlove
5ccfe50792 Complete directives implementation, refactor exceptions, deprecate VRFs, bump minimum Python version 2021-09-07 22:58:39 -07:00
checktheroads
aca3457011 update python dependencies 2021-04-24 10:44:40 -07:00
checktheroads
6b188e446c import formatting imporvements 2020-10-11 13:14:57 -07:00
checktheroads
69cb304b6d restructure location of models for cleaner importing/exporting 2020-10-05 12:09:17 -07:00
checktheroads
1128d1f902 update import syntax for new isort version 2020-09-28 14:55:09 -07:00
checktheroads
6dd8cfc9ff cache RPKI responses 2020-07-13 01:55:42 -07:00
checktheroads
1e4a2b1512 switch bgp.tools to bulk API with caching 2020-07-13 01:55:09 -07:00
checktheroads
ab309bd418 fix webhook construction errors, swap ripestat for bgp.tools 2020-06-27 12:20:00 -07:00
checktheroads
2af58d092c Add Microsoft Teams webhook support 2020-06-26 12:23:11 -07:00
checktheroads
04ff7568eb fix issue with webhooks causing queries to fail 2020-06-26 10:10:43 -07:00
checktheroads
e50cd05fa3 docs restructure 2020-06-21 14:12:08 -07:00
checktheroads
ba809631f0 improve http client 2020-06-06 01:24:53 -07:00
checktheroads
4b92b670c9 add structured data configuration options & external RPKI validation 2020-06-06 01:22:14 -07:00
checktheroads
f443afa138 fix http logging issue 2020-04-21 03:29:42 -07:00
checktheroads
4cd1edd599 cleanup 2020-04-19 00:23:56 -07:00
checktheroads
ffbbfffe33 add sync api to external handler 2020-04-19 00:22:01 -07:00
checktheroads
945059a0ed improve external data handling 2020-04-18 23:18:50 -07:00