Spannerz Save

Google Cloud Spanner Query Planner Visualizer

Project README

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))

Screenshot

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.

Open Source Agenda is not affiliated with "Spannerz" Project. README Source: rakyll/spannerz
Stars
58
Open Issues
3
Last Commit
3 years ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating