diff options
author | Kassio Borges <kborges@gitlab.com> | 2022-03-11 08:08:48 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2022-03-11 08:08:48 +0300 |
commit | 21ca388dd09d8306268f717c0d2c28196b085d6a (patch) | |
tree | bd4e1dcc74e312863f5356e8ec3d4fc09a60c76e /internal/errortracking | |
parent | 3ce95814cd7ef50bfba7454299a685cfe74a05ae (diff) |
Add correlation_id to all exception captures
Diffstat (limited to 'internal/errortracking')
-rw-r--r-- | internal/errortracking/errortracking.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/internal/errortracking/errortracking.go b/internal/errortracking/errortracking.go new file mode 100644 index 00000000..d82674cc --- /dev/null +++ b/internal/errortracking/errortracking.go @@ -0,0 +1,27 @@ +package errortracking + +import ( + "net/http" + + "gitlab.com/gitlab-org/labkit/errortracking" +) + +// CaptureOption alias to avoid importing labkit/errortracking in internal packages +type CaptureOption = errortracking.CaptureOption + +// WithField alias to avoid importing labkit/errortracking in internal packages +func WithField(key, value string) CaptureOption { + return errortracking.WithField(key, value) +} + +// CaptureErrWithReqAndStackTrace calls labkit's errortracking function and attaches the request, stack trace and any additional fields +func CaptureErrWithReqAndStackTrace(err error, r *http.Request, fields ...errortracking.CaptureOption) { + opts := append( + fields, + errortracking.WithContext(r.Context()), + errortracking.WithRequest(r), + errortracking.WithStackTrace(), + ) + + errortracking.Capture(err, opts...) +} |