Browse Source

set up sentry with tags and env

Alexander Belanger 4 năm trước cách đây
mục cha
commit
fda149439d

+ 6 - 2
api/server/shared/apierrors/alerter/sentry.go

@@ -2,6 +2,7 @@ package alerter
 
 import (
 	"context"
+	"fmt"
 
 	"github.com/getsentry/sentry-go"
 )
@@ -14,11 +15,12 @@ func noIntegrations(ints []sentry.Integration) []sentry.Integration {
 	return []sentry.Integration{}
 }
 
-func NewSentryAlerter(sentryDSN string) (*SentryAlerter, error) {
+func NewSentryAlerter(sentryDSN, sentryEnv string) (*SentryAlerter, error) {
 	sentryClient, err := sentry.NewClient(sentry.ClientOptions{
 		Dsn:              sentryDSN,
 		AttachStacktrace: true,
 		Integrations:     noIntegrations,
+		Environment:      sentryEnv,
 	})
 
 	if err != nil {
@@ -33,7 +35,9 @@ func NewSentryAlerter(sentryDSN string) (*SentryAlerter, error) {
 func (s *SentryAlerter) SendAlert(ctx context.Context, err error, data map[string]interface{}) {
 	scope := sentry.NewScope()
 
-	scope.SetExtras(data)
+	for key, val := range data {
+		scope.SetTag(key, fmt.Sprintf("%v", val))
+	}
 
 	s.client.CaptureException(
 		err,

+ 1 - 0
api/server/shared/config/env/envconfs.go

@@ -56,6 +56,7 @@ type ServerConf struct {
 	SegmentClientKey           string `env:"SEGMENT_CLIENT_KEY"`
 
 	SentryDSN string `env:"SENTRY_DSN"`
+	SentryEnv string `env:"SENTRY_ENV,default=dev"`
 
 	ProvisionerCluster string `env:"PROVISIONER_CLUSTER"`
 	IngressCluster     string `env:"INGRESS_CLUSTER"`

+ 1 - 1
api/server/shared/config/loader/loader.go

@@ -102,7 +102,7 @@ func (e *EnvConfigLoader) LoadConfig() (res *config.Config, err error) {
 	res.Alerter = alerter.NoOpAlerter{}
 
 	if envConf.ServerConf.SentryDSN != "" {
-		res.Alerter, err = alerter.NewSentryAlerter(envConf.ServerConf.SentryDSN)
+		res.Alerter, err = alerter.NewSentryAlerter(envConf.ServerConf.SentryDSN, envConf.ServerConf.SentryEnv)
 	}
 
 	if sc.DOClientID != "" && sc.DOClientSecret != "" {