Commit Graph

17 Commits

Author SHA1 Message Date
Daniel Pupius
f580249162 Another checkpoint moving to proto defined packets 2025-04-21 18:27:55 -07:00
Daniel Pupius
86380cccf9 Refactor protos 2025-04-21 15:40:10 -07:00
Daniel Pupius
41ee61b59a Updated logging configuration for dev and json for prod 2025-04-21 14:16:35 -07:00
Daniel Pupius
0f151c31b9 Improve structured logging for better log aggregation
- Add message type prefix in brief mode for quick identification
- Include GatewayID in brief mode summary
- Remove formatted output from structured fields
- Use proper structured fields for each message type
- Add common fields like hopLimit and ID for all messages
- Extract specific data for position, telemetry, and text messages
- Format structured data for better log aggregation compatibility
2025-04-21 11:52:40 -07:00
Daniel Pupius
56a14fff61 Simplify MessageLogger to use structured logging only
- Remove file-based logging completely
- Add brief mode for concise log output
- Add full mode with complete message details
- Use structured logging fields for all information
- Keep console output option for readability
- Add intelligent summary handling for different message types
2025-04-21 11:19:53 -07:00
Daniel Pupius
3fe611e094 Update tests to inject loggers
- Add logger injection in client_test.go
- Add logger injection in broker_test.go
- Add test logger with appropriate test namespace
- Fix all tests to work with updated constructor signatures
2025-04-21 11:13:08 -07:00
Daniel Pupius
c6d94b10d1 Inject loggers from main.go instead of creating them locally
- Update all components to accept a logger parameter
- Add default fallbacks when logger is not provided
- Ensure consistent logger naming with parent.Named() pattern
- Create a proper logger hierarchy originating from main.go
- Update MessageLogger to pass logger to BaseSubscriber
2025-04-21 11:09:27 -07:00
Daniel Pupius
b7cec0feff Update MessageStats to use structured logging
- Replace fmt.Println with structured logging
- Use structured fields for better filtering and analysis
- Group related data into logical clusters
- Improve readability of statistics in logs
- Keep consistent style with rest of the application
2025-04-21 11:05:01 -07:00
Daniel Pupius
9447f44139 Update logging to use prefab/logging package
- Replace standard log package with prefab/logging
- Add context-aware logging in HTTP handlers
- Add structured logging with fields and levels
- Improve logging hierarchy and namespaces
- Implement named loggers for components
2025-04-21 11:01:45 -07:00
Daniel Pupius
7c311b3386 Remove unnecessary Close() overrides from subscribers 2025-04-21 09:18:16 -07:00
Daniel Pupius
b52834dd8a Add BaseSubscriber to reduce duplication between subscribers 2025-04-21 09:17:05 -07:00
Daniel Pupius
ef660b2025 Consolidate display and logging functionality in MessageLogger 2025-04-21 08:52:15 -07:00
Daniel Pupius
c129be3be6 Update MessageLogger to log all packet types 2025-04-20 20:13:04 -07:00
Daniel Pupius
a4be4caa55 "Add message broker for distributing packets to multiple consumers 2025-04-20 20:08:19 -07:00
Daniel Pupius
8c52664cc5 Refactor message handling to use switch statement
- Replace if-else chain with cleaner switch statement
- Add support for "c" format messages
- Improve code structure and readability

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-20 19:09:37 -07:00
Daniel Pupius
4eb98b7455 Simplify MQTT package API by embedding TopicInfo
- Created Packet to combine DecodedPacket and TopicInfo
- Updated MQTT client to return Packet instead of wrapper type
- Modified main.go to use the simplified structure
- Updated tests to use the new Packet type

This change simplifies the API and reduces the cognitive load
for consumers of the MQTT package.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-20 19:08:01 -07:00
Daniel Pupius
879877fa53 Refactor MQTT handling into separate package
- Created new mqtt package with simple client interface
- Implemented buffered channel for decoded messages
- Updated main.go to use the new MQTT client
- Added tests for the MQTT client
- Simplified message handling to focus on 'e' and 'map' formats
- Added TODO for handling JSON format messages

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-20 18:11:15 -07:00