spannerz
spannerz copied to clipboard
Google Cloud Spanner Query Planner Visualizer
spannerz
spannerz adds an HTTP handler to your binary to report query plans from Google Cloud Spanner clients. You can use spannerz as a standalone binary too.
NOTE: You need Graphviz installed for visualization features.
Goals
- Allow users to investigate their client setup in production without having to redeploy new versions.
- Allow users to run a visualizer outside of Google Cloud Console.
Usage
Standalone binary:
$ go get -u github.com/rakyll/spannerz
$ spannerz -db projects/PROJECT/instances/SPANNER_INSTANCE/databases/SPANNER_DB
HTTP handler:
import (
"cloud.google.com/go/spanner"
"github.com/rakyll/spannerz/spannerz"
)
client, err := spanner.NewClient(ctx, "projects/PROJECT/instances/SPANNER_INSTANCE/databases/SPANNER_DB")
if err != nil {
log.Fatalf("Cannot create Spanner client: %v", err)
}
http.Handle("/spannerz", &spannerz.Handler{
Client: client,
})
log.Fatal(http.ListenAndServe(":9090", nil))

Roadmap
- Allow running only the query planner without executing the query.
- Support different optimizer versions.
- Support partition queries.
- Support read/write transactions, we currently support read-only ones.
Disclaimer
This is not an official Google product.