From 59d562ef20ba43fec84b33490d802e3e275142dc Mon Sep 17 00:00:00 2001 From: Savil Srivastava <676452+savil@users.noreply.github.com> Date: Mon, 11 Sep 2023 15:34:44 -0700 Subject: [PATCH] [telemetry] add nix.version to sentry and segment --- internal/boxcli/midcobra/telemetry.go | 2 +- internal/build/build.go | 10 ++++++++-- internal/telemetry/segment.go | 7 +++++++ internal/telemetry/telemetry.go | 9 +++++++++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/internal/boxcli/midcobra/telemetry.go b/internal/boxcli/midcobra/telemetry.go index 2002c6f6306..e1ea7043600 100644 --- a/internal/boxcli/midcobra/telemetry.go +++ b/internal/boxcli/midcobra/telemetry.go @@ -10,7 +10,6 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" - "go.jetpack.io/devbox" "go.jetpack.io/devbox/internal/boxcli/featureflag" "go.jetpack.io/devbox/internal/envir" @@ -54,6 +53,7 @@ func (m *telemetryMiddleware) postRun(cmd *cobra.Command, args []string, runErr } meta.Command = subcmd.CommandPath() meta.CommandFlags = flags + meta.Packages, meta.NixpkgsHash = getPackagesAndCommitHash(cmd) meta.InShell = envir.IsDevboxShellEnabled() meta.InBrowser = envir.IsInBrowser() diff --git a/internal/build/build.go b/internal/build/build.go index e49b8cf7b72..e322ec61bfe 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -17,8 +17,14 @@ var ( Commit = "none" CommitDate = "unknown" - SentryDSN = "" // Disabled by default - TelemetryKey = "" // Disabled by default + // SentryDSN is injected in the build from + // https://jetpack-io.sentry.io/settings/projects/devbox/keys/ + // It is disabled by default. + SentryDSN = "" + // TelemetryKey is the Segment Write Key + // https://segment.com/docs/connections/sources/catalog/libraries/server/go/quickstart/ + // It is disabled by default. + TelemetryKey = "" ) // User-presentable names of operating systems supported by Devbox. diff --git a/internal/telemetry/segment.go b/internal/telemetry/segment.go index 80c6a319517..b91c2c62d8e 100644 --- a/internal/telemetry/segment.go +++ b/internal/telemetry/segment.go @@ -11,6 +11,7 @@ import ( "time" segment "github.com/segmentio/analytics-go" + "go.jetpack.io/devbox/internal/nix" "go.jetpack.io/devbox/internal/build" "go.jetpack.io/devbox/internal/envir" @@ -32,6 +33,11 @@ func initSegmentClient() bool { } func newTrackMessage(name string, meta Metadata) *segment.Track { + nixVersion, err := nix.Version() + if err != nil { + nixVersion = "unknown" + } + dur := time.Since(procStartTime) if !meta.CommandStart.IsZero() { dur = time.Since(meta.CommandStart) @@ -63,6 +69,7 @@ func newTrackMessage(name string, meta Metadata) *segment.Track { "packages": meta.Packages, "shell": os.Getenv(envir.Shell), "shell_access": shellAccess(), + "nix_version": nixVersion, }, } } diff --git a/internal/telemetry/telemetry.go b/internal/telemetry/telemetry.go index 6ae57318af5..f2f1622ef3e 100644 --- a/internal/telemetry/telemetry.go +++ b/internal/telemetry/telemetry.go @@ -24,6 +24,7 @@ import ( "github.com/google/uuid" "github.com/pkg/errors" segment "github.com/segmentio/analytics-go" + "go.jetpack.io/devbox/internal/nix" "go.jetpack.io/devbox/internal/build" "go.jetpack.io/devbox/internal/envir" @@ -117,6 +118,11 @@ func Error(err error, meta Metadata) { return } + nixVersion, err := nix.Version() + if err != nil { + nixVersion = "unknown" + } + event := &sentry.Event{ EventID: sentry.EventID(ExecutionID), Level: sentry.LevelError, @@ -133,6 +139,9 @@ func Error(err error, meta Metadata) { "name": "Go", "version": strings.TrimPrefix(runtime.Version(), "go"), }, + "nix": { + "version": nixVersion, + }, }, } if meta.Command != "" {