diendv96 / statsviz

:rocket: Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.) in the browser

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go.dev reference Test Actions Status Go Report Card codecov

Statsviz

Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.).

  • Import import "github.com/arl/statsviz"
  • Register statsviz HTTP handlers
  • Start your program
  • Open your browser at http://host:port/debug/statsviz
  • Enjoy...

Usage

go get -u github.com/arl/statsviz

Either Register statsviz HTTP handlers with the http.ServeMux you're using (preferred method):

mux := http.NewServeMux()
statsviz.Register(mux)

Or register them with the http.DefaultServeMux:

statsviz.RegisterDefault()

If your application is not already running an HTTP server, you need to start one. Add "net/http" and "log" to your imports and the following code to your main function:

go func() {
    log.Println(http.ListenAndServe("localhost:6060", nil))
}()

By default the handled path is /debug/statsviz/.

Then open your browser at http://localhost:6060/debug/statsviz/

Examples

Using http.DefaultServeMux:

Using your own http.ServeMux:

Using gorilla/mux Router:

Plots

On the plots where it matters, garbage collections are shown as vertical lines.

Heap

Heap plot image

MSpans / MCaches

MSpan/MCache plot image

Size classes heatmap

Size classes heatmap image

Objects

Objects plot image

Goroutines

Goroutines plot image

GC/CPU fraction

GC/CPU fraction plot image

Contributing

Pull-requests are welcome! More details in CONTRIBUTING.md

Roadmap

  • add stop-the-world duration heatmap
  • increase data retention
  • light/dark mode selector
  • plot image export

Changelog

  • v0.1.1 / 2020-10-12

    • Bugfix: do not leak timer in sendStats
  • v0.1.0 / 2020-10-10

    • First released version

License

About

:rocket: Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.) in the browser

License:MIT License


Languages

Language:Go 87.4%Language:JavaScript 10.6%Language:HTML 1.7%Language:Shell 0.2%Language:CSS 0.1%