@@ -15,6 +15,7 @@ import (
1515
1616 "github.com/briandowns/spinner"
1717 "github.com/devops-works/slowql"
18+ "github.com/devops-works/slowql/cmd/slowql-replayer/pprof"
1819 "github.com/olekukonko/tablewriter"
1920 "github.com/sirupsen/logrus"
2021 "golang.org/x/crypto/ssh/terminal"
@@ -30,6 +31,7 @@ type options struct {
3031 kind string
3132 database string
3233 loglvl string
34+ pprof string
3335 workers int
3436 usePass bool
3537 dryRun bool
@@ -61,6 +63,7 @@ func main() {
6163 flag .StringVar (& opt .kind , "k" , "" , "Kind of the database (mysql, mariadb...)" )
6264 flag .StringVar (& opt .database , "db" , "" , "Name of the database to use" )
6365 flag .StringVar (& opt .loglvl , "l" , "info" , "Logging level" )
66+ flag .StringVar (& opt .pprof , "pprof" , "" , "pprof server address" )
6467 flag .IntVar (& opt .workers , "w" , 100 , "Number of maximum simultaneous connections to database" )
6568 flag .BoolVar (& opt .usePass , "p" , false , "Use a password to connect to database" )
6669 flag .BoolVar (& opt .dryRun , "dry" , false , "Replay the requests but don't write in the database" )
@@ -84,6 +87,15 @@ func main() {
8487 }
8588 db .logger .Debugf ("file %s successfully opened" , opt .file )
8689
90+ if opt .pprof != "" {
91+ pprofServer , err := pprof .New (opt .pprof )
92+ if err != nil {
93+ db .logger .Fatalf ("unable to create pprof server: %s" , err )
94+ }
95+ go pprofServer .Run ()
96+ db .logger .Infof ("pprof started on 'http://%s'" , pprofServer .Addr )
97+ }
98+
8799 r , err := db .replay (f )
88100 if err != nil {
89101 logrus .Fatalf ("cannot replay %s: %s" , opt .kind , err )
0 commit comments