MCPcopy Index your code
hub / github.com/jetify-com/devbox / Error

Function Error

internal/telemetry/telemetry.go:141–198  ·  view source on GitHub ↗

Error reports an error to the telemetry server.

(err error, meta Metadata)

Source from the content-addressed store, hash-verified

139
140// Error reports an error to the telemetry server.
141func Error(err error, meta Metadata) {
142 errToLog := err // use errToLog to avoid shadowing err later. Use err to keep API clean.
143
144 if !started || !usererr.ShouldLogError(errToLog) {
145 return
146 }
147
148 nixVersion := cmp.Or(nix.Version(), "unknown")
149
150 event := &sentry.Event{
151 EventID: sentry.EventID(ExecutionID),
152 Level: sentry.LevelError,
153 User: sentry.User{ID: deviceID},
154 Exception: newSentryException(redact.Error(errToLog)),
155 Contexts: map[string]map[string]any{
156 "os": {
157 "name": build.OS(),
158 },
159 "device": {
160 "arch": runtime.GOARCH,
161 },
162 "runtime": {
163 "name": "Go",
164 "version": strings.TrimPrefix(runtime.Version(), "go"),
165 },
166 "nix": {
167 "version": nixVersion,
168 },
169 },
170 }
171 if meta.Command != "" {
172 event.Tags = map[string]string{"command": meta.Command}
173 }
174 if sentryCtx := meta.cmdContext(); len(sentryCtx) > 0 {
175 event.Contexts["Command"] = sentryCtx
176 }
177 if sentryCtx := meta.envContext(); len(sentryCtx) > 0 {
178 event.Contexts["Devbox Environment"] = sentryCtx
179 }
180 if sentryCtx := meta.featureContext(); len(sentryCtx) > 0 {
181 event.Contexts["Feature Flags"] = sentryCtx
182 }
183 if sentryCtx := meta.pkgContext(); len(sentryCtx) > 0 {
184 event.Contexts["Devbox Packages"] = sentryCtx
185 }
186
187 // Prefer using the user ID instead of the device ID when it's
188 // available.
189 if uid := userID(); uid != "" {
190 event.User.ID = uid
191 }
192 bufferSentryEvent(event)
193
194 msgID, msg := commandEvent(meta)
195 msg.Properties["failed"] = true
196 msg.Properties["sentry_event_id"] = event.EventID
197 bufferSegmentMessage(msgID, msg)
198}

Callers 2

postRunMethod · 0.92
TestErrorBasicFunction · 0.70

Calls 13

ShouldLogErrorFunction · 0.92
VersionFunction · 0.92
ErrorFunction · 0.92
newSentryExceptionFunction · 0.85
userIDFunction · 0.85
bufferSentryEventFunction · 0.85
commandEventFunction · 0.85
bufferSegmentMessageFunction · 0.85
VersionMethod · 0.80
cmdContextMethod · 0.80
envContextMethod · 0.80
featureContextMethod · 0.80

Tested by 1

TestErrorBasicFunction · 0.56