Skip to content

Commit

Permalink
adds errortracking package
Browse files Browse the repository at this point in the history
  • Loading branch information
Seklfreak committed Feb 24, 2019
1 parent acfd93a commit 7a5fe76
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 5 deletions.
25 changes: 25 additions & 0 deletions errortracking/raven.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package errortracking

import (
raven "github.com/getsentry/raven-go"
)

type Config struct {
Version string `envconfig:"VERSION"`
Environment string `envconfig:"ENVIRONMENT"`
RavenDSN string `envconfig:"RAVEN_DSN"`
}

func Init(cfg *Config) error {
if cfg.RavenDSN == "" {
return nil
}

err := raven.SetDSN(cfg.RavenDSN)
if err != nil {
return err
}
raven.SetEnvironment(cfg.Environment)
raven.SetRelease(cfg.Version)
return nil
}
1 change: 1 addition & 0 deletions events/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ type Event struct {
ReceivedAt time.Time
BotUserID string
GuildID string `json:",omitempty"`
UserID string `json:",omitempty"`

// discordgo event data
ChannelCreate *discordgo.ChannelCreate `json:",omitempty"`
Expand Down
34 changes: 33 additions & 1 deletion events/event_except.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package events

import (
"github.com/bwmarrin/discordgo"
raven "github.com/getsentry/raven-go"
"gitlab.com/Cacophony/go-kit/state"
"go.uber.org/zap"
)
Expand Down Expand Up @@ -55,12 +56,43 @@ func (e *Event) Except(err error) {

if doLog {
e.Logger().Error("error occurred while executing event", zap.Error(err))
// TODO: send to sentry…

if raven.DefaultClient != nil {
raven.CaptureError(
err,
map[string]string{
"event_id": e.ID,
"event_type:": string(e.Type),
"bot_id": e.BotUserID,
"guild_id": e.GuildID,
"silent": "false",
},
&raven.User{
ID: e.UserID,
},
)
}
}
}

func (e *Event) ExceptSilent(err error) {
if e.logger != nil {
e.Logger().Error("silent occurred error while executing event", zap.Error(err))
}

if raven.DefaultClient != nil {
raven.CaptureError(
err,
map[string]string{
"event_id": e.ID,
"event_type:": string(e.Type),
"bot_id": e.BotUserID,
"guild_id": e.GuildID,
"silent": "true",
},
&raven.User{
ID: e.UserID,
},
)
}
}
14 changes: 14 additions & 0 deletions events/generating.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = GuildMemberAddType
event.GuildMemberAdd = t
event.GuildID = t.GuildID
event.UserID = t.User.ID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -67,6 +68,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = GuildMemberUpdateType
event.GuildMemberUpdate = t
event.GuildID = t.GuildID
event.UserID = t.User.ID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -75,6 +77,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = GuildMemberRemoveType
event.GuildMemberRemove = t
event.GuildID = t.GuildID
event.UserID = t.User.ID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand Down Expand Up @@ -147,6 +150,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = MessageCreateType
event.MessageCreate = t
event.GuildID = t.GuildID
event.UserID = t.Author.ID
event.ID, err = hash(t.ID)
if err != nil {
return nil, err
Expand All @@ -155,6 +159,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = MessageUpdateType
event.MessageUpdate = t
event.GuildID = t.GuildID
event.UserID = t.Author.ID
event.ID, err = hash(t.ID + t.Content)
if err != nil {
return nil, err
Expand All @@ -163,6 +168,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = MessageDeleteType
event.MessageDelete = t
event.GuildID = t.GuildID
event.UserID = t.Author.ID
event.ID, err = hash(t.ID)
if err != nil {
return nil, err
Expand All @@ -179,6 +185,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = GuildBanAddType
event.GuildBanAdd = t
event.GuildID = t.GuildID
event.UserID = t.User.ID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -187,6 +194,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = GuildBanRemoveType
event.GuildBanRemove = t
event.GuildID = t.GuildID
event.UserID = t.User.ID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -195,6 +203,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = MessageReactionAddType
event.MessageReactionAdd = t
event.GuildID = t.GuildID
event.UserID = t.UserID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -203,6 +212,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = MessageReactionRemoveType
event.MessageReactionRemove = t
event.GuildID = t.GuildID
event.UserID = t.UserID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -211,6 +221,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = MessageReactionRemoveAllType
event.MessageReactionRemoveAll = t
event.GuildID = t.GuildID
event.UserID = t.UserID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -227,6 +238,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = PresenceUpdateType
event.PresenceUpdate = t
event.GuildID = t.GuildID
event.UserID = t.User.ID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -242,6 +254,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
case *discordgo.UserUpdate:
event.Type = UserUpdateType
event.UserUpdate = t
event.UserID = t.User.ID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand All @@ -250,6 +263,7 @@ func GenerateEventFromDiscordgoEvent(botUserID string, eventItem interface{}) (*
event.Type = VoiceStateUpdateType
event.VoiceStateUpdate = t
event.GuildID = t.GuildID
event.UserID = t.UserID
event.ID, err = hash(t)
if err != nil {
return nil, err
Expand Down
8 changes: 4 additions & 4 deletions featureflag/featureflag.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (
unleash "github.com/Unleash/unleash-client-go"
)

// FeatureFlaggerConfig represents a Feature Flagger Configuration
type FeatureFlaggerConfig struct {
// Config represents a Feature Flagger Configuration
type Config struct {
Environment string `envconfig:"ENVIRONMENT"`

UnleashURL string `envconfig:"UNLEASH_URL"`
Expand All @@ -20,8 +20,8 @@ type FeatureFlagger struct {
unleashClient *unleash.Client
}

// NewFeatureFlagger creates a new FeatureFlagger
func NewFeatureFlagger(config *FeatureFlaggerConfig) (*FeatureFlagger, error) {
// New creates a new FeatureFlagger
func New(config *Config) (*FeatureFlagger, error) {
if config.Environment == "development" {
return &FeatureFlagger{}, nil
}
Expand Down
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ require (
github.com/BurntSushi/toml v0.3.1 // indirect
github.com/Unleash/unleash-client-go v0.0.0-20181121205122-ae068e0ad68c
github.com/bwmarrin/discordgo v0.19.0
github.com/certifi/gocertifi v0.0.0-20190105021004-abcd57078448 // indirect
github.com/dustin/go-humanize v1.0.0
github.com/getsentry/raven-go v0.2.0
github.com/go-chi/chi v4.0.1+incompatible
github.com/go-redis/redis v6.15.1+incompatible
github.com/json-iterator/go v1.1.5
Expand Down
4 changes: 4 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ github.com/Unleash/unleash-client-go v0.0.0-20181121205122-ae068e0ad68c h1:Q9cN+
github.com/Unleash/unleash-client-go v0.0.0-20181121205122-ae068e0ad68c/go.mod h1:89lPmFeGRU6Xv5kYZnN1ByXulB4vHW+UepUYSm8s8ws=
github.com/bwmarrin/discordgo v0.19.0 h1:kMED/DB0NR1QhRcalb85w0Cu3Ep2OrGAqZH1R5awQiY=
github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q=
github.com/certifi/gocertifi v0.0.0-20190105021004-abcd57078448 h1:8tNk6SPXzLDnATTrWoI5Bgw9s/x4uf0kmBpk21NZgI4=
github.com/certifi/gocertifi v0.0.0-20190105021004-abcd57078448/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
Expand All @@ -12,6 +14,8 @@ github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
github.com/go-chi/chi v4.0.1+incompatible h1:RSRC5qmFPtO90t7pTL0DBMNpZFsb/sHF3RXVlDgFisA=
github.com/go-chi/chi v4.0.1+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=
github.com/go-redis/redis v6.15.1+incompatible h1:BZ9s4/vHrIqwOb0OPtTQ5uABxETJ3NRuUNoSUurnkew=
Expand Down

0 comments on commit 7a5fe76

Please sign in to comment.