Skip to content

Commit

Permalink
analytics: tag running w/ subcommand (#3560)
Browse files Browse the repository at this point in the history
  • Loading branch information
landism committed Jul 7, 2020
1 parent d61e754 commit 63e1d0c
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 38 deletions.
3 changes: 1 addition & 2 deletions internal/cli/down.go
Expand Up @@ -12,15 +12,14 @@ import (
"github.com/tilt-dev/tilt/internal/analytics"
"github.com/tilt-dev/tilt/internal/engine"
"github.com/tilt-dev/tilt/internal/k8s"
"github.com/tilt-dev/tilt/internal/tiltfile/config"
"github.com/tilt-dev/tilt/pkg/logger"
"github.com/tilt-dev/tilt/pkg/model"
)

type downCmd struct {
fileName string
deleteNamespaces bool
downDepsProvider func(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand config.TiltSubcommand) (DownDeps, error)
downDepsProvider func(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (DownDeps, error)
}

func newDownCmd() *downCmd {
Expand Down
4 changes: 1 addition & 3 deletions internal/cli/down_test.go
Expand Up @@ -5,8 +5,6 @@ import (
"fmt"
"testing"

"github.com/tilt-dev/tilt/internal/tiltfile/config"

"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
Expand Down Expand Up @@ -143,7 +141,7 @@ func newDownFixture(t *testing.T) downFixture {
dcc := dockercompose.NewFakeDockerComposeClient(t, ctx)
kCli := k8s.NewFakeK8sClient()
downDeps := DownDeps{tfl, dcc, kCli}
cmd := &downCmd{downDepsProvider: func(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand config.TiltSubcommand) (deps DownDeps, err error) {
cmd := &downCmd{downDepsProvider: func(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (deps DownDeps, err error) {
return downDeps, nil
}}
return downFixture{
Expand Down
12 changes: 5 additions & 7 deletions internal/cli/wire.go
Expand Up @@ -7,8 +7,6 @@ import (
"context"
"time"

"github.com/tilt-dev/tilt/internal/tiltfile/config"

"github.com/google/wire"
"github.com/jonboulle/clockwork"
"github.com/tilt-dev/wmclient/pkg/dirs"
Expand Down Expand Up @@ -136,17 +134,17 @@ var BaseWireSet = wire.NewSet(
wire.Value(feature.MainDefaults),
)

func wireTiltfileResult(ctx context.Context, analytics *analytics.TiltAnalytics, subcommand config.TiltSubcommand) (cmdTiltfileResultDeps, error) {
func wireTiltfileResult(ctx context.Context, analytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (cmdTiltfileResultDeps, error) {
wire.Build(BaseWireSet, newTiltfileResultDeps)
return cmdTiltfileResultDeps{}, nil
}

func wireDockerPrune(ctx context.Context, analytics *analytics.TiltAnalytics, subcommand config.TiltSubcommand) (dpDeps, error) {
func wireDockerPrune(ctx context.Context, analytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (dpDeps, error) {
wire.Build(BaseWireSet, newDPDeps)
return dpDeps{}, nil
}

func wireCmdUp(ctx context.Context, analytics *analytics.TiltAnalytics, cmdTags engineanalytics.CmdTags, subcommand config.TiltSubcommand) (CmdUpDeps, error) {
func wireCmdUp(ctx context.Context, analytics *analytics.TiltAnalytics, cmdTags engineanalytics.CmdTags, subcommand model.TiltSubcommand) (CmdUpDeps, error) {
wire.Build(BaseWireSet,
build.ProvideClock,
wire.Struct(new(CmdUpDeps), "*"))
Expand All @@ -162,7 +160,7 @@ type CmdUpDeps struct {
Prompt *prompt.TerminalPrompt
}

func wireCmdCI(ctx context.Context, analytics *analytics.TiltAnalytics, subcommand config.TiltSubcommand) (CmdCIDeps, error) {
func wireCmdCI(ctx context.Context, analytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (CmdCIDeps, error) {
wire.Build(BaseWireSet,
build.ProvideClock,
wire.Value(engineanalytics.CmdTags(map[string]string{})),
Expand Down Expand Up @@ -237,7 +235,7 @@ func wireDockerLocalClient(ctx context.Context) (docker.LocalClient, error) {
return nil, nil
}

func wireDownDeps(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand config.TiltSubcommand) (DownDeps, error) {
func wireDownDeps(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (DownDeps, error) {
wire.Build(BaseWireSet, ProvideDownDeps)
return DownDeps{}, nil
}
Expand Down
14 changes: 7 additions & 7 deletions internal/cli/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 21 additions & 11 deletions internal/engine/analytics/analytics_reporter.go
Expand Up @@ -8,17 +8,19 @@ import (
"github.com/tilt-dev/tilt/internal/analytics"
"github.com/tilt-dev/tilt/internal/k8s"
"github.com/tilt-dev/tilt/internal/store"
"github.com/tilt-dev/tilt/pkg/model"
)

// How often to periodically report data for analytics while Tilt is running
const analyticsReportingInterval = time.Minute * 15

type AnalyticsReporter struct {
a *analytics.TiltAnalytics
store store.RStore
kClient k8s.Client
env k8s.Env
started bool
a *analytics.TiltAnalytics
subcommand model.TiltSubcommand
store store.RStore
kClient k8s.Client
env k8s.Env
started bool
}

func (ar *AnalyticsReporter) OnChange(ctx context.Context, st store.RStore) {
Expand Down Expand Up @@ -55,13 +57,19 @@ func (ar *AnalyticsReporter) OnChange(ctx context.Context, st store.RStore) {

var _ store.Subscriber = &AnalyticsReporter{}

func ProvideAnalyticsReporter(a *analytics.TiltAnalytics, st store.RStore, kClient k8s.Client, env k8s.Env) *AnalyticsReporter {
func ProvideAnalyticsReporter(
a *analytics.TiltAnalytics,
st store.RStore,
kClient k8s.Client,
env k8s.Env,
subcommand model.TiltSubcommand) *AnalyticsReporter {
return &AnalyticsReporter{
a: a,
store: st,
kClient: kClient,
env: env,
started: false,
a: a,
subcommand: subcommand,
store: st,
kClient: kClient,
env: env,
started: false,
}
}

Expand Down Expand Up @@ -112,6 +120,8 @@ func (ar *AnalyticsReporter) report(ctx context.Context) {
"env": string(ar.env),

"term_mode": strconv.Itoa(int(st.TerminalMode)),

"subcommand": ar.subcommand.String(),
}

if k8sCount > 1 {
Expand Down
4 changes: 3 additions & 1 deletion internal/engine/analytics/analytics_reporter_test.go
Expand Up @@ -81,6 +81,7 @@ func TestAnalyticsReporter_Everything(t *testing.T) {
"k8s.runtime": "docker",
"k8s.registry.host": "1",
"k8s.registry.hostFromCluster": "1",
"subcommand": "up",
}

tf.assertStats(t, expectedTags)
Expand Down Expand Up @@ -162,6 +163,7 @@ func TestAnalyticsReporter_TiltfileError(t *testing.T) {
"env": string(k8s.EnvDockerDesktop),
"term_mode": "0",
"k8s.runtime": "docker",
"subcommand": "up",
}

tf.assertStats(t, expectedTags)
Expand All @@ -180,7 +182,7 @@ func newAnalyticsReporterTestFixture() *analyticsReporterTestFixture {
opter := tiltanalytics.NewFakeOpter(analytics.OptIn)
ma, a := tiltanalytics.NewMemoryTiltAnalyticsForTest(opter)
kClient := k8s.NewFakeK8sClient()
ar := ProvideAnalyticsReporter(a, st, kClient, k8s.EnvDockerDesktop)
ar := ProvideAnalyticsReporter(a, st, kClient, k8s.EnvDockerDesktop, "up")
return &analyticsReporterTestFixture{
manifestCount: 0,
ar: ar,
Expand Down
2 changes: 1 addition & 1 deletion internal/engine/upper_test.go
Expand Up @@ -3587,7 +3587,7 @@ func newTestFixture(t *testing.T) *testFixture {
fwm := fswatch.NewWatchManager(watcher.NewSub, timerMaker.Maker())
pfc := portforward.NewController(kCli)
au := engineanalytics.NewAnalyticsUpdater(ta, engineanalytics.CmdTags{})
ar := engineanalytics.ProvideAnalyticsReporter(ta, st, kCli, env)
ar := engineanalytics.ProvideAnalyticsReporter(ta, st, kCli, env, "up")
fakeDcc := dockercompose.NewFakeDockerComposeClient(t, ctx)
k8sContextExt := k8scontext.NewExtension("fake-context", env)
versionExt := version.NewExtension(model.TiltBuild{Version: "0.5.0"})
Expand Down
7 changes: 2 additions & 5 deletions internal/tiltfile/config/config.go
Expand Up @@ -25,15 +25,12 @@ type Settings struct {
seenWorkingDirectory string
}

// e.g., "up", "down", "ci"
type TiltSubcommand string

type Extension struct {
UserConfigState model.UserConfigState
TiltSubcommand TiltSubcommand
TiltSubcommand model.TiltSubcommand
}

func NewExtension(tiltSubcommand TiltSubcommand) *Extension {
func NewExtension(tiltSubcommand model.TiltSubcommand) *Extension {
return &Extension{TiltSubcommand: tiltSubcommand}
}

Expand Down
2 changes: 1 addition & 1 deletion internal/tiltfile/config/config_test.go
Expand Up @@ -459,7 +459,7 @@ print(config.tilt_subcommand)
require.Equal(t, "foo\n", f.PrintOutput())
}

func NewFixture(tb testing.TB, userConfigState model.UserConfigState, tiltSubcommand TiltSubcommand) *starkit.Fixture {
func NewFixture(tb testing.TB, userConfigState model.UserConfigState, tiltSubcommand model.TiltSubcommand) *starkit.Fixture {
ext := NewExtension(tiltSubcommand)
ext.UserConfigState = userConfigState
ret := starkit.NewFixture(tb, ext, io.NewExtension(), include.IncludeFn{})
Expand Down
8 changes: 8 additions & 0 deletions pkg/model/tilt_subcommand.go.go
@@ -0,0 +1,8 @@
package model

// e.g., "up", "down", "ci"
type TiltSubcommand string

func (t TiltSubcommand) String() string {
return string(t)
}

0 comments on commit 63e1d0c

Please sign in to comment.