Argus
Building a lightweight logging service for my applications
Over the past two years, I’ve been iterating on different versions of a logging service. Today, I’m excited to share Argus, my latest take on solving the logging problem for modern applications. The goal was simple: create a logging solution that’s powerful enough for production use but doesn’t require the resource overhead of traditional observability stacks.
When deploying applications to non-managed services, developers often face a dilemma. They either need to set up resource-heavy tools like Loki, Grafana, or ELK stack, or rely on managed services like Sentry or New Relic. Both approaches have drawbacks - the former requires significant server resources, while the latter can be expensive and may include features you don’t need.
Argus fills this gap by providing a lightweight, managed logging service. It’s designed primarily for Go programs but we may expand to other languages in the future.
For the tech stack, I made deliberate choices after thorough research, I settled on:
- Go for the core backend service
- Go for the client library
- Next.js for the frontend interface
- Twirp for communication between frontend, client and core service
- Cassandra for log storage
- Kubernetes for deployment
We might need Minio object storage for log retention and backups, but that’s a future consideration.
The project is structured across multiple components:
- Core service that handles log ingestion and storage
- Web interface for log visualization and management
- Client library for easy integration
- Demo application showing real-world usage
While services like Sentry, New Relic, and Datadog offer comprehensive observability solutions, I believe there’s value in doing one thing well first. Argus focuses solely on logging for now, though the architecture allows for future expansion into areas like log traces, web analytics, and session replays.
This project is particularly meaningful to me as it represents years of learning and iteration. Each version has taught me valuable lessons about system design, performance optimization, and user experience. The current iteration of Argus is built with these lessons in mind, creating what I believe is a solid foundation for a production-ready logging service.
More updates coming soon as I continue to develop and refine the service. If you’re interested in simplified, efficient logging for your applications, stay tuned for updates.
Questions or comments? Send an email.