aprs.me/lib/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
is clean up warnings 2025-07-16 08:55:46 -05:00
packets fix weather 2025-07-12 10:53:11 -05:00
performance Fix packet buffer overflow and system load adjustment issues 2025-07-15 08:16:11 -05:00
workers performance improvements 2025-07-14 16:35:58 -05:00
accounts.ex add callsign to users 2025-07-10 16:07:05 -05:00
application.ex Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
aprs_is_connection.ex performance improvements 2025-07-08 10:03:52 -05:00
archiver.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
bad_packet.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
broadcast_task_supervisor.ex Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
cached_queries.ex performance improvements 2025-07-14 16:35:58 -05:00
callsign.ex more permissive callsign parsing 2025-07-12 09:10:49 -05:00
circuit_breaker.ex clean up warnings 2025-07-16 08:55:46 -05:00
convert.ex more i18n 2025-07-06 10:28:27 -05:00
data_extended.ex update deps 2025-07-16 08:20:20 -05:00
db_optimizer.ex postgres optimization 2025-07-15 09:06:40 -05:00
device_cache.ex improvements 2025-07-14 17:06:39 -05:00
device_identification.ex performance improvements 2025-07-08 10:03:52 -05:00
device_parser.ex Fix Access behavior error in DeviceParser 2025-07-15 11:10:50 -05:00
devices.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
devices_seeder.ex parsing improvements 2025-06-28 15:53:27 -05:00
encoding_utils.ex format 2025-07-18 13:59:03 -05:00
error_handler.ex clean up warnings 2025-07-16 08:55:46 -05:00
geo_utils.ex account for gps drift 2025-07-12 09:40:28 -05:00
log_sanitizer.ex performance improvements 2025-07-08 10:03:52 -05:00
mailer.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
packet.ex add PHG parsing 2025-07-12 10:22:43 -05:00
packet_consumer.ex Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
packet_counter.ex performance improvements 2025-07-14 16:35:58 -05:00
packet_pipeline_setup.ex add packet batcher 2025-06-24 15:06:09 -05:00
packet_pipeline_supervisor.ex add packet batcher 2025-06-24 15:06:09 -05:00
packet_producer.ex Revert all packet processing optimizations to fix buffer overflow 2025-07-15 08:44:26 -05:00
packet_replay.ex clean up warnings 2025-07-16 08:55:46 -05:00
packet_replay_behaviour.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
packets.ex clean up warnings 2025-07-16 08:55:46 -05:00
packets_behaviour.ex refactor and performance improvements 2025-07-10 10:53:34 -05:00
passcode.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
postgres_notifier.ex more live updates and chart version update 2025-07-04 12:15:38 -05:00
postgres_types.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
presence.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
rate_limiter.ex update deps 2025-07-16 08:20:20 -05:00
release.ex en español 2025-07-05 15:51:39 -05:00
repo.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
schema.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
sentry_filter.ex Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
spatial_pubsub.ex Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
streaming_packets_pubsub.ex Implement critical performance optimizations and error handling 2025-07-18 18:19:49 -05:00
system_monitor.ex Fix packet buffer overflow and system load adjustment issues 2025-07-15 08:16:11 -05:00