Documentation ¶
Index ¶
- Variables
- func GenericStack(client RavenClientInterface) *raven.Stacktrace
- type AbstractStackBuilder
- func (a *AbstractStackBuilder) Build() StackBuilderInterface
- func (a *AbstractStackBuilder) FallbackToGeneric()
- func (a *AbstractStackBuilder) GetResult() (*raven.Stacktrace, error)
- func (a *AbstractStackBuilder) SetClient(client RavenClientInterface) StackBuilderInterface
- func (a *AbstractStackBuilder) SetError(err error) StackBuilderInterface
- type Frame
- type GenericStackBuilder
- type PkgErrorCauseable
- type PkgErrorTraceable
- type PkgErrorsBuilder
- type PkgErrorsStackTransformer
- type RavenClientInterface
- type RavenStackTransformer
- type RavenStacktraceBuilder
- type StackBuilderInterface
- type Stacktrace
- type UnwrapBuilder
- type Unwrappable
Constants ¶
This section is empty.
Variables ¶
var ErrUnfeasibleBuilder = errors.New("unfeasible builder for this error type")
ErrUnfeasibleBuilder will be returned if builder for stacktrace was chosen incorrectly.
Functions ¶
func GenericStack ¶
func GenericStack(client RavenClientInterface) *raven.Stacktrace
GenericStack returns generic stacktrace.
Types ¶
type AbstractStackBuilder ¶
type AbstractStackBuilder struct {
// contains filtered or unexported fields
}
AbstractStackBuilder contains methods, which would be implemented in every builder anyway.
func (*AbstractStackBuilder) Build ¶
func (a *AbstractStackBuilder) Build() StackBuilderInterface
Build stacktrace. Only implemented in the children.
func (*AbstractStackBuilder) FallbackToGeneric ¶
func (a *AbstractStackBuilder) FallbackToGeneric()
FallbackToGeneric fallbacks to GenericStackBuilder method.
func (*AbstractStackBuilder) GetResult ¶
func (a *AbstractStackBuilder) GetResult() (*raven.Stacktrace, error)
GetResult returns builder result.
func (*AbstractStackBuilder) SetClient ¶
func (a *AbstractStackBuilder) SetClient(client RavenClientInterface) StackBuilderInterface
SetClient sets *raven.Client into builder. RavenClientInterface is used, so, any client might be used via facade.
func (*AbstractStackBuilder) SetError ¶
func (a *AbstractStackBuilder) SetError(err error) StackBuilderInterface
SetError sets error in builder, which will be processed.
type GenericStackBuilder ¶
type GenericStackBuilder struct {
AbstractStackBuilder
}
GenericStackBuilder uses raven.NewStacktrace to build stacktrace. Only client is needed here.
func (*GenericStackBuilder) Build ¶
func (b *GenericStackBuilder) Build() StackBuilderInterface
Build returns generic stacktrace.
type PkgErrorCauseable ¶
type PkgErrorCauseable interface {
Cause() error
}
PkgErrorCauseable is an interface for checking Cause() method existence in the error.
type PkgErrorTraceable ¶
type PkgErrorTraceable interface {
StackTrace() pkgErrors.StackTrace
}
PkgErrorTraceable is an interface for checking StackTrace() method existence in the error.
type PkgErrorsBuilder ¶
type PkgErrorsBuilder struct {
AbstractStackBuilder
}
PkgErrorsBuilder builds stacktrace with data from github.com/pkg/errors error.
func (*PkgErrorsBuilder) Build ¶
func (b *PkgErrorsBuilder) Build() StackBuilderInterface
Build stacktrace.
type PkgErrorsStackTransformer ¶
type PkgErrorsStackTransformer struct {
// contains filtered or unexported fields
}
PkgErrorsStackTransformer transforms stack data from github.com/pkg/errors error to stacktrace.Stacktrace.
func NewPkgErrorsStackTransformer ¶
func NewPkgErrorsStackTransformer(stack pkgErrors.StackTrace) *PkgErrorsStackTransformer
NewPkgErrorsStackTransformer is a PkgErrorsStackTransformer constructor.
func (*PkgErrorsStackTransformer) Stack ¶
func (p *PkgErrorsStackTransformer) Stack() Stacktrace
Stack returns stacktrace (which is []uintptr internally, each uintptc is a pc).
type RavenClientInterface ¶
type RavenClientInterface interface { SetIgnoreErrors(errs []string) error SetDSN(dsn string) error SetRelease(release string) SetEnvironment(environment string) SetDefaultLoggerName(name string) SetSampleRate(rate float32) error Capture(packet *raven.Packet, captureTags map[string]string) (eventID string, ch chan error) CaptureMessage(message string, tags map[string]string, interfaces ...raven.Interface) string CaptureMessageAndWait(message string, tags map[string]string, interfaces ...raven.Interface) string CaptureError(err error, tags map[string]string, interfaces ...raven.Interface) string CaptureErrorAndWait(err error, tags map[string]string, interfaces ...raven.Interface) string CapturePanic(f func(), tags map[string]string, interfaces ...raven.Interface) (err interface{}, errorID string) CapturePanicAndWait(f func(), tags map[string]string, interfaces ...raven.Interface) (err interface{}, errorID string) Close() Wait() URL() string ProjectID() string Release() string IncludePaths() []string SetIncludePaths(p []string) SetUserContext(u *raven.User) SetHttpContext(h *raven.Http) SetTagsContext(t map[string]string) ClearContext() }
RavenClientInterface includes all necessary calls from *raven.Client. Therefore, it can be mocked or replaced.
type RavenStackTransformer ¶
type RavenStackTransformer interface {
Stack() Stacktrace
}
RavenStackTransformer is an interface for any component, which will transform some unknown stacktrace data to stacktrace.Stacktrace.
type RavenStacktraceBuilder ¶
type RavenStacktraceBuilder struct {
// contains filtered or unexported fields
}
RavenStacktraceBuilder builds *raven.Stacktrace for any generic stack data.
func NewRavenStacktraceBuilder ¶
func NewRavenStacktraceBuilder(p RavenStackTransformer) *RavenStacktraceBuilder
NewRavenStacktraceBuilder is a RavenStacktraceBuilder constructor.
func (*RavenStacktraceBuilder) Build ¶
func (b *RavenStacktraceBuilder) Build(context int, appPackagePrefixes []string) *raven.Stacktrace
Build converts generic stacktrace to to github.com/getsentry/raven-go.Stacktrace.
func (*RavenStacktraceBuilder) SetTransformer ¶
func (b *RavenStacktraceBuilder) SetTransformer(p RavenStackTransformer) *RavenStacktraceBuilder
SetTransformer sets stack transformer into stacktrace builder.
type StackBuilderInterface ¶
type StackBuilderInterface interface { SetClient(RavenClientInterface) StackBuilderInterface SetError(error) StackBuilderInterface Build() StackBuilderInterface GetResult() (*raven.Stacktrace, error) }
StackBuilderInterface is an interface for every stacktrace builder.
func GetStackBuilderByErrorType ¶
func GetStackBuilderByErrorType(err error) StackBuilderInterface
GetStackBuilderByErrorType tries to guess which stacktrace builder would be feasible for passed error. For example, errors from github.com/pkg/errors have StackTrace() method, and Go 1.13 errors can be unwrapped.
type UnwrapBuilder ¶
type UnwrapBuilder struct {
AbstractStackBuilder
}
UnwrapBuilder builds stacktrace from the chain of wrapped errors.
func (*UnwrapBuilder) Build ¶
func (b *UnwrapBuilder) Build() StackBuilderInterface
Build stacktrace.
type Unwrappable ¶
type Unwrappable interface {
Unwrap() error
}
Unwrappable is the interface for errors with Unwrap() method.