Commit graph

24 commits

Author SHA1 Message Date
234fc2010f
Implement critical performance optimizations and error handling
This commit introduces several major performance improvements and adds
robust error handling for malformed HTTP requests:

Performance Optimizations:
- Add database migration with BRIN indexes for time-series data and partial
  indexes for recent queries, significantly improving query performance
- Create global StreamingPacketsPubSub system for real-time packet distribution
  with geographic bounds filtering using ETS for fast lookups
- Refactor PacketConsumer to use Stream module for memory-efficient processing,
  preventing memory accumulation during batch operations
- Implement dedicated BroadcastTaskSupervisor pool for async broadcast operations,
  preventing GenServer blocking on I/O
- Increase database connection pool from 25 to 45 (production) and 15 to 30 (dev)
  for better concurrency support

Error Handling:
- Add SentryFilter to prevent Bandit.HTTPError from missing Host headers from
  cluttering Sentry (common with bots/scanners)
- Configure custom 400 Bad Request error handling
- Filter out common bot/scanner paths from error reporting

All changes include comprehensive test coverage following TDD practices.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 18:19:49 -05:00
566198afa7
clean up warnings 2025-07-16 08:55:46 -05:00
46340e008a
update deps 2025-07-16 08:20:20 -05:00
534bd8df8a
clean up status page 2025-07-15 13:56:01 -05:00
8811298eed
Fix packet buffer overflow and system load adjustment issues
- Fixed InsertOptimizer returning map instead of keyword list for Ecto
- Increased batch size ranges to handle high load (100-800 packets)
- Improved consumer responsiveness:
  - Reduced batch timeout from 1000ms to 500ms
  - Process batches at 80% capacity for better throughput
  - Reduced adjustment interval from 10s to 5s
- Added comprehensive logging for debugging buffer status
- Created integration tests for packet pipeline
- Coordinated batch sizing between SystemMonitor and InsertOptimizer

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 08:16:11 -05:00
3730b8c848
performance improvements 2025-07-14 16:35:58 -05:00
389ce8edeb
cleanup worker tweaks 2025-07-14 12:31:47 -05:00
6026c0f888
Fix failing tests and improve movement tracking
- Fixed PHG parsing test to match actual parser behavior
- Fixed movement test to properly handle batch loading behavior
- Movement test now sets bounds and uses higher zoom level
- Added helper function to flush events during test setup
- All tests now passing with clean compilation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-14 10:03:04 -05:00
532a81c0b4
integrate /:call to main page 2025-07-13 10:36:58 -05:00
4348d34f62
fix weather 2025-07-12 10:53:11 -05:00
c09f9175f4
add PHG parsing 2025-07-12 10:22:43 -05:00
ad88e34ab6
account for gps drift 2025-07-12 09:40:28 -05:00
15c8aa1d25
more permissive callsign parsing 2025-07-12 09:10:49 -05:00
f5e0f33ac2
fix geolocation hopefully 2025-07-10 17:12:49 -05:00
7da91f5ccb
fix some accidental weather decoded packets 2025-07-10 16:30:48 -05:00
38920e9f3d
add callsign to users 2025-07-10 16:07:05 -05:00
aaf92d9045
add heatmap on zoom out 2025-07-10 14:26:01 -05:00
d45aed256d
fix historical packet loading 2025-07-10 13:15:16 -05:00
5ad101a69e
passing tests 2025-07-07 16:29:38 -05:00
d15821e72e
more detail fixing 2025-07-04 10:23:37 -05:00
f08330b46c
weather fixing 2025-06-25 11:40:04 -05:00
0beb278371
add packet batcher 2025-06-24 15:06:09 -05:00
229c8f8305
fix messaging name 2025-06-24 14:29:47 -05:00
ce7c50caa1
refactor to use external parser 2025-06-24 14:22:09 -05:00