Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

analytics: tag tilt.up.running w/ subcommand #3560

Merged
merged 1 commit into from
Jul 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 1 addition & 2 deletions internal/cli/down.go
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
Expand Up @@ -3564,7 +3564,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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package model

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

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