Use sentry echo integration to send errors Only capture errors not already handled by echo Add sentry panic handler Add sentry library Add sentry init Add sentry config Co-authored-by: kolaente <k@knt.li> Reviewed-on: https://kolaente.dev/vikunja/api/pulls/591
9.3 KiB
Changelog
Unreleased
- "I am running away from my responsibilities. And it feels good." – Michael Scott, Season 4, "Money"
v0.6.1
- fix: Use NewEvent to init Event struct (#220)
NOTE: A change introduced in v0.6.0 with the intent of avoiding allocations made a pattern used in official examples break in certain circumstances (attempting to write to a nil map). This release reverts the change such that maps in the Event struct are always allocated.
v0.6.0
- feat: Read module dependencies from runtime/debug (#199)
- feat: Support chained errors using Unwrap (#206)
- feat: Report chain of errors when available (#185)
- [breaking] fix: Accept http.RoundTripper to customize transport (#205)
Before the SDK accepted a concrete value of type
*http.Transport
inClientOptions
, now it accepts any value implementing thehttp.RoundTripper
interface. Note that*http.Transport
implementshttp.RoundTripper
, so most code bases will continue to work unchanged.
Users of custom transport gain the ability to pass in other implementations ofhttp.RoundTripper
and may be able to simplify their code bases. - fix: Do not panic when scope event processor drops event (#192)
- [breaking] fix: Use time.Time for timestamps (#191)
Users of sentry-go typically do not need to manipulate timestamps manually. For those who do, the field type changed fromint64
totime.Time
, which should be more convenient to use. The recommended way to get the current time istime.Now().UTC()
. - fix: Report usage error including stack trace (#189)
- feat: Add Exception.ThreadID field (#183)
- ci: Test against Go 1.14, drop 1.11 (#170)
- feat: Limit reading bytes from request bodies (#168)
- [breaking] fix: Rename fasthttp integration package sentryhttp => sentryfasthttp
The current recommendation is to use a named import, in which case existing code should not require any change:package main import ( "fmt" "github.com/getsentry/sentry-go" sentryfasthttp "github.com/getsentry/sentry-go/fasthttp" "github.com/valyala/fasthttp" )
NOTE: This version includes some new features and a few breaking changes, none of which should pose troubles with upgrading. Most code bases should be able to upgrade without any changes.
v0.5.1
- fix: Ignore err.Cause() when it is nil (#160)
v0.5.0
- fix: Synchronize access to HTTPTransport.disabledUntil (#158)
- docs: Update Flush documentation (#153)
- fix: HTTPTransport.Flush panic and data race (#140)
NOTE:
This version changes the implementation of the default transport, modifying the
behavior of sentry.Flush
. The previous behavior was to wait until there were
no buffered events; new concurrent events kept Flush
from returning. The new
behavior is to wait until the last event prior to the call to Flush
has been
sent or the timeout; new concurrent events have no effect. The new behavior is
inline with the Unified API
Guidelines.
We have updated the documentation and examples to clarify that Flush
is meant
to be called typically only once before program termination, to wait for
in-flight events to be sent to Sentry. Calling Flush
after every event is not
recommended, as it introduces unnecessary latency to the surrounding function.
Please verify the usage of sentry.Flush
in your code base.
v0.4.0
- fix(stacktrace): Correctly report package names (#127)
- fix(stacktrace): Do not rely on AbsPath of files (#123)
- build: Require github.com/ugorji/go@v1.1.7 (#110)
- fix: Correctly store last event id (#99)
- fix: Include request body in event payload (#94)
- build: Reset go.mod version to 1.11 (#109)
- fix: Eliminate data race in modules integration (#105)
- feat: Add support for path prefixes in the DSN (#102)
- feat: Add HTTPClient option (#86)
- feat: Extract correct type and value from top-most error (#85)
- feat: Check for broken pipe errors in Gin integration (#82)
- fix: Client.CaptureMessage accept nil EventModifier (#72)
v0.3.1
- feat: Send extra information exposed by the Go runtime (#76)
- fix: Handle new lines in module integration (#65)
- fix: Make sure that cache is locked when updating for contextifyFramesIntegration
- ref: Update Iris integration and example to version 12
- misc: Remove indirect dependencies in order to move them to separate go.mod files
v0.3.0
- feat: Retry event marshalling without contextual data if the first pass fails
- fix: Include
url.Parse
error inDsnParseError
- fix: Make more
Scope
methods safe for concurrency - fix: Synchronize concurrent access to
Hub.client
- ref: Remove mutex from
Scope
exported API - ref: Remove mutex from
Hub
exported API - ref: Compile regexps for
filterFrames
only once - ref: Change
SampleRate
type tofloat64
- doc:
Scope.Clear
not safe for concurrent use - ci: Test sentry-go with
go1.13
, dropgo1.10
NOTE:
This version removes some of the internal APIs that landed publicly (namely Hub/Scope
mutex structs) and may require (but shouldn't) some changes to your code.
It's not done through major version update, as we are still in 0.x
stage.
v0.2.1
- fix: Run
Contextify
integration onThreads
as well
v0.2.0
- feat: Add
SetTransaction()
method on theScope
- feat:
fasthttp
framework support withsentryfasthttp
package - fix: Add
RWMutex
locks to internalHub
andScope
changes
v0.1.3
- feat: Move frames context reading into
contextifyFramesIntegration
(#28)
NOTE: In case of any performance issues due to source contexts IO, you can let us know and turn off the integration in the meantime with:
sentry.Init(sentry.ClientOptions{
Integrations: func(integrations []sentry.Integration) []sentry.Integration {
var filteredIntegrations []sentry.Integration
for _, integration := range integrations {
if integration.Name() == "ContextifyFrames" {
continue
}
filteredIntegrations = append(filteredIntegrations, integration)
}
return filteredIntegrations
},
})
v0.1.2
- feat: Better source code location resolution and more useful inapp frames (#26)
- feat: Use
noopTransport
when noDsn
provided (#27) - ref: Allow empty
Dsn
instead of returning an error (#22) - fix: Use
NewScope
instead of literal struct inside ascope.Clear
call (#24) - fix: Add to
WaitGroup
before the request is put inside a buffer (#25)
v0.1.1
- fix: Check for initialized
Client
inAddBreadcrumbs
(#20) - build: Bump version when releasing with Craft (#19)
v0.1.0
- First stable release! \o/
v0.0.1-beta.5
- feat: [breaking] Add
NewHTTPTransport
andNewHTTPSyncTransport
which accepts all transport options - feat: New
HTTPSyncTransport
that blocks after each call - feat: New
Echo
integration - ref: [breaking] Remove
BufferSize
option fromClientOptions
and move it toHTTPTransport
instead - ref: Export default
HTTPTransport
- ref: Export
net/http
integration handler - ref: Set
Request
instantly in the package handlers, not inrecoverWithSentry
so it can be accessed later on - ci: Add craft config
v0.0.1-beta.4
- feat:
IgnoreErrors
client option and corresponding integration - ref: Reworked
net/http
integration, wrote better example and complete readme - ref: Reworked
Gin
integration, wrote better example and complete readme - ref: Reworked
Iris
integration, wrote better example and complete readme - ref: Reworked
Negroni
integration, wrote better example and complete readme - ref: Reworked
Martini
integration, wrote better example and complete readme - ref: Remove
Handle()
from frameworks handlers and return it directly from New
v0.0.1-beta.3
- feat:
Iris
framework support withsentryiris
package - feat:
Gin
framework support withsentrygin
package - feat:
Martini
framework support withsentrymartini
package - feat:
Negroni
framework support withsentrynegroni
package - feat: Add
Hub.Clone()
for easier frameworks integration - feat: Return
EventID
fromRecovery
methods - feat: Add
NewScope
andNewEvent
functions and use them in the whole codebase - feat: Add
AddEventProcessor
to theClient
- fix: Operate on requests body copy instead of the original
- ref: Try to read source files from the root directory, based on the filename as well, to make it work on AWS Lambda
- ref: Remove
gocertifi
dependence and document how to provide your own certificates - ref: [breaking] Remove
Decorate
andDecorateFunc
methods in favor ofsentryhttp
package - ref: [breaking] Allow for integrations to live on the client, by passing client instance in
SetupOnce
method - ref: [breaking] Remove
GetIntegration
from theHub
- ref: [breaking] Remove
GlobalEventProcessors
getter from the public API
v0.0.1-beta.2
- feat: Add
AttachStacktrace
client option to include stacktrace for messages - feat: Add
BufferSize
client option to configure transport buffer size - feat: Add
SetRequest
method on aScope
to controlRequest
context data - feat: Add
FromHTTPRequest
forRequest
type for easier extraction - ref: Extract
Request
information more accurately - fix: Attach
ServerName
,Release
,Dist
,Environment
options to the event - fix: Don't log events dropped due to full transport buffer as sent
- fix: Don't panic and create an appropriate event when called
CaptureException
orRecover
withnil
value
v0.0.1-beta
- Initial release