A lightweight, embeddable observability library for Go services offering real-time metrics, function tracing, and a built-in dashboard.
MoniGo is a lightweight, embeddable observability library for Go applications that collects runtime metrics like CPU, memory, and goroutines, traces function execution with pprof profiling, and serves a real-time dashboard. It solves the problem of gaining deep performance insights into Go services without requiring complex external monitoring setups.
Go developers and engineering teams building microservices or backend applications who need integrated, real-time performance monitoring and debugging capabilities.
Developers choose MoniGo for its simplicity—getting a dashboard running in seconds with a single `go get`—and its comprehensive feature set including function-level tracing, multiple storage backends, and seamless integration with popular Go HTTP routers, all without external dependencies.
MoniGo is a performance monitoring library for Go apps, offering real-time insights into service-level and function-level metrics. With an intuitive UI, it enables developers to track and optimize performance. Get your Go app's dashboard up in just 10 seconds!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
MoniGo can be added with a single `go get` and runs embedded in your application, eliminating the need for external sidecars or agents, as emphasized in the project's philosophy.
It uses pprof for CPU and memory profiling with adaptive sampling to minimize overhead, and captures function arguments via reflection for detailed performance insights, as shown in the tracing examples.
The embedded web UI provides immediate access to system metrics, health scores, and goroutine stacks with downloadable reports, offering a comprehensive view without external tools.
Seamlessly integrates with popular Go HTTP routers like Gin, Echo, and Chi, demonstrated in extensive example directories, making it easy to add to existing projects.
Only supports in-memory or disk-based storage via tstorage, lacking built-in connectors to distributed databases or cloud storage, which may not suffice for scalable, production-grade deployments.
Requires Go 1.22 or newer, excluding legacy projects stuck on older versions due to compatibility constraints, as noted in the installation requirements.
The reflection-based argument capture in function tracing can introduce latency in performance-critical paths, despite adaptive sampling, which might affect high-throughput applications.