aprs.me/test/aprsme
Graham McIntire 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
..
accounts add callsign to users 2025-07-10 16:07:05 -05:00
packets clean up warnings 2025-07-16 08:55:46 -05:00
workers performance improvements 2025-07-14 16:35:58 -05:00
archiver_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
bad_packet_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
broadcast_task_supervisor_test.exs Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
callsign_test.exs more permissive callsign parsing 2025-07-12 09:10:49 -05:00
connection_prevention_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
convert_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
data_extended_test.exs fix messaging name 2025-06-24 14:29:47 -05:00
device_identification_test.exs update deps 2025-07-16 08:20:20 -05:00
encoding_utils_test.exs update deps 2025-07-16 08:20:20 -05:00
geo_utils_test.exs clean up warnings 2025-07-16 08:55:46 -05:00
geometry_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
is_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
packet_consumer_test.exs Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
packet_parsing_test.exs Fix failing tests and improve movement tracking 2025-07-14 10:03:04 -05:00
packet_pipeline_integration_test.exs clean up warnings 2025-07-16 08:55:46 -05:00
packet_replay_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
packet_test.exs fix geolocation hopefully 2025-07-10 17:12:49 -05:00
packet_weather_extraction_test.exs integrate /:call to main page 2025-07-13 10:36:58 -05:00
packets_encoding_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
packets_mic_e_test.exs add packet batcher 2025-06-24 15:06:09 -05:00
packets_oldest_test.exs clean up status page 2025-07-15 13:56:01 -05:00
packets_weather_test.exs fix geolocation hopefully 2025-07-10 17:12:49 -05:00
passcode_test.exs refactor to use external parser 2025-06-24 14:22:09 -05:00
streaming_packets_pubsub_test.exs Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00