github.com/orteth01/up@v0.2.0/internal/cli/metrics/metrics.go (about) 1 package metrics 2 3 import ( 4 "time" 5 6 "github.com/pkg/errors" 7 "github.com/tj/kingpin" 8 9 "github.com/apex/up/internal/cli/root" 10 "github.com/apex/up/internal/stats" 11 ) 12 13 func init() { 14 cmd := root.Command("metrics", "Show project metrics.") 15 cmd.Example(`up metrics`, "Show metrics for development stage.") 16 cmd.Example(`up metrics production`, "Show metrics for production stage.") 17 18 stage := cmd.Arg("stage", "Name of the stage.").Default("development").String() 19 since := cmd.Flag("since", "Show logs since duration (30s, 5m, 2h, 1h30m).").Short('s').Default("24h").Duration() 20 21 cmd.Action(func(_ *kingpin.ParseContext) error { 22 c, p, err := root.Init() 23 if err != nil { 24 return errors.Wrap(err, "initializing") 25 } 26 27 region := c.Regions[0] 28 29 stats.Track("Metrics", map[string]interface{}{ 30 "stage": *stage, 31 "since": since.Round(time.Second), 32 }) 33 34 start := time.Now().UTC().Add(-*since) 35 return p.ShowMetrics(region, *stage, start) 36 }) 37 }