statsviz
Statsviz is a Go library that provides real-time visualization of Go runtime metrics (heap, GC, goroutines, CPU) via a web dashboard. It integrates directly into your Go application with minimal code and serves metrics over WebSocket.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | arl/statsviz |
| Owner | arl |
| Primary language | Go |
| License | MIT — OSI-approved |
| Stars | 3.6k |
| Forks | 124 |
| Open issues | 11 |
| Latest release | Unknown |
| Last updated | 2026-07-04 |
| Source | https://github.com/arl/statsviz |
What statsviz is
Statsviz exposes Go's runtime/metrics package through HTTP handlers and a WebSocket endpoint, pushing data points to a browser-based UI at 1Hz. It provides pre-built plots for garbage collection, memory allocation, scheduler behavior, and custom user-defined metrics.
Get the statsviz source
Clone the repository and explore it locally.
git clone https://github.com/arl/statsviz.gitcd statsviz# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Requires modification of application startup to register HTTP handlers; two lines of code for basic setup, but custom routing requires NewServer() pattern.
- Metrics collection runs in a separate goroutine; verify impact on GC and scheduler behavior in memory-constrained environments.
- UI is served from embedded assets; no CDN or external dependencies, simplifying deployment but limiting customization.
- Data retention is in-memory and unbounded by default; no sampling or ring-buffer limiting; monitor memory usage if dashboard is left open indefinitely.
- WebSocket connection is unidirectional (server→client); no client-side commands or pause/resume state persistence.
When to avoid it — and what to weigh
- Production High-Availability Requirements — Statsviz is a development/debugging tool; it does not provide persistent metrics storage, alerting, SLO tracking, or multi-node aggregation needed for production observability.
- Multi-Tenant or Secure Environments — No built-in authentication, authorization, or encryption described. Dashboard and WebSocket are exposed via HTTP; requires external middleware for security.
- Enterprise Monitoring Integration — Does not export metrics to Prometheus, Datadog, New Relic, or other observability platforms; no APIs for metric export or webhooks.
- Zero-Overhead Metrics Collection — WebSocket updates run at 1Hz and the HTTP handler adds goroutine overhead; unsuitable for latency-critical or resource-constrained deployments.
License & commercial use
MIT License—permissive, allowing modification and commercial use with minimal restrictions.
MIT License permits commercial use. However, use as a production observability tool requires evaluation of operational requirements (persistence, multi-node support, alerting) typically handled by dedicated APM platforms. Suitable for internal development and staging tools.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Strong |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Good |
| Assessment confidence | High |
Dashboard and WebSocket endpoints expose runtime metrics (memory, goroutines, CPU, GC behavior) with no built-in authentication or encryption. Endpoints accessible to any client able to reach the HTTP server. Requires external middleware (auth, TLS, network isolation) for secure deployments. Do not expose publicly without protection.
Alternatives to consider
pprof (net/http/pprof)
Go standard library profiling; heavier (supports sampling, heap dumps, CPU profiling) but lower-level; no real-time dashboard visualization.
Prometheus + Go client library
Standard observability stack; persistent metrics, alerting, multi-node aggregation, but requires external infrastructure and more setup complexity.
expvar (runtime/expvar)
Go standard library metrics; lightweight JSON export; integrates with custom dashboards but no built-in UI or real-time visualization.
Build on statsviz with DEV.co software developers
Statsviz excels for development debugging. For production monitoring, multi-node setups, and alerting, explore Devco's custom software and DevOps services to design an observability architecture that scales.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
statsviz FAQ
Can I use Statsviz in production?
What is the performance overhead?
Can I export metrics to external systems?
Is authentication required to access the dashboard?
Software development & web development with DEV.co
Need help beyond evaluating statsviz? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source observability integrations — and maintain them long-term.
Need Production Observability for Go?
Statsviz excels for development debugging. For production monitoring, multi-node setups, and alerting, explore Devco's custom software and DevOps services to design an observability architecture that scales.