Skip to content

Commit fc99ab2

Browse files
authored
[logging] Fix segment logging (#2322)
## Summary Fixes bug introduced in #2305 ## How was it tested?
1 parent d4cf421 commit fc99ab2

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

internal/boxcli/midcobra/telemetry.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ import (
88
"runtime/trace"
99
"sort"
1010

11-
"github.com/pkg/errors"
1211
"github.com/spf13/cobra"
1312
"github.com/spf13/pflag"
1413
"go.jetpack.io/devbox/internal/boxcli/featureflag"
15-
"go.jetpack.io/devbox/internal/boxcli/usererr"
1614
"go.jetpack.io/devbox/internal/devbox"
1715
"go.jetpack.io/devbox/internal/devbox/devopt"
1816
"go.jetpack.io/devbox/internal/envir"
@@ -42,11 +40,6 @@ func (m *telemetryMiddleware) postRun(cmd *cobra.Command, args []string, runErr
4240
defer trace.StartRegion(cmd.Context(), "telemetryPostRun").End()
4341
defer telemetry.Stop()
4442

45-
var userExecErr *usererr.ExitError
46-
if errors.As(runErr, &userExecErr) || !usererr.ShouldLogError(runErr) {
47-
return
48-
}
49-
5043
meta := telemetry.Metadata{
5144
FeatureFlags: featureflag.All(),
5245
CloudRegion: os.Getenv(envir.DevboxRegion),
@@ -68,6 +61,7 @@ func (m *telemetryMiddleware) postRun(cmd *cobra.Command, args []string, runErr
6861

6962
if runErr != nil {
7063
telemetry.Error(runErr, meta)
64+
// TODO: This is skipping event logging of calls that end in error. We probably want to log them.
7165
return
7266
}
7367
telemetry.Event(telemetry.EventCommandSuccess, meta)

internal/boxcli/usererr/usererr.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,16 @@ func Extract(err error) (error, bool) { // nolint: revive
8383
return nil, false
8484
}
8585

86-
// ShouldLogError returns true if the it's a logged user error or is a non-user error
86+
// ShouldLogError returns true if the it's a combined error specifically marked to be logged
87+
// or if it's not an ExitError.
8788
func ShouldLogError(err error) bool {
8889
if err == nil {
8990
return false
9091
}
92+
var userExecErr *ExitError
93+
if errors.As(err, &userExecErr) {
94+
return false
95+
}
9196
c := &combined{}
9297
if errors.As(err, &c) {
9398
return c.logged

internal/telemetry/telemetry.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/google/uuid"
2525
"github.com/pkg/errors"
2626
segment "github.com/segmentio/analytics-go"
27+
"go.jetpack.io/devbox/internal/boxcli/usererr"
2728
"go.jetpack.io/devbox/internal/devbox/providers/identity"
2829
"go.jetpack.io/devbox/internal/nix"
2930

@@ -138,7 +139,8 @@ func commandEvent(meta Metadata) (id string, msg *segment.Track) {
138139
// Error reports an error to the telemetry server.
139140
func Error(err error, meta Metadata) {
140141
errToLog := err // use errToLog to avoid shadowing err later. Use err to keep API clean.
141-
if !started || errToLog == nil {
142+
143+
if !started || !usererr.ShouldLogError(errToLog) {
142144
return
143145
}
144146

0 commit comments

Comments
 (0)