Skip to content

Commit 8b52f0b

Browse files
send sentry for log.Error (#295)
1 parent f648b90 commit 8b52f0b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+317
-91
lines changed

client/interceptor/retry.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"strings"
66

77
"github.com/cenkalti/backoff/v4"
8-
log "github.com/sirupsen/logrus"
8+
"github.com/projecteru2/core/log"
99

1010
"google.golang.org/grpc"
1111
)

client/resolver/eru/resolver.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"strings"
66

77
"github.com/projecteru2/core/client/servicediscovery"
8+
"github.com/projecteru2/core/log"
89
"github.com/projecteru2/core/types"
9-
log "github.com/sirupsen/logrus"
1010
"google.golang.org/grpc/resolver"
1111
)
1212

client/servicediscovery/eru_service_discovery.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import (
88

99
"github.com/projecteru2/core/auth"
1010
"github.com/projecteru2/core/client/interceptor"
11+
"github.com/projecteru2/core/log"
1112
pb "github.com/projecteru2/core/rpc/gen"
1213
"github.com/projecteru2/core/types"
13-
log "github.com/sirupsen/logrus"
1414
"google.golang.org/grpc"
1515
)
1616

client/servicediscovery/resolver.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package servicediscovery
22

33
import (
4-
log "github.com/sirupsen/logrus"
4+
"github.com/projecteru2/core/log"
55

66
"google.golang.org/grpc/resolver"
77
)

cluster/calcium/build.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import (
1111
"time"
1212

1313
enginetypes "github.com/projecteru2/core/engine/types"
14+
"github.com/projecteru2/core/log"
1415
"github.com/projecteru2/core/types"
15-
log "github.com/sirupsen/logrus"
1616
)
1717

1818
// BuildImage will build image

cluster/calcium/calcium.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/projecteru2/core/cluster"
77
"github.com/projecteru2/core/discovery"
88
"github.com/projecteru2/core/discovery/helium"
9+
"github.com/projecteru2/core/log"
910
"github.com/projecteru2/core/scheduler"
1011
complexscheduler "github.com/projecteru2/core/scheduler/complex"
1112
"github.com/projecteru2/core/source"
@@ -14,7 +15,6 @@ import (
1415
"github.com/projecteru2/core/store"
1516
"github.com/projecteru2/core/store/etcdv3"
1617
"github.com/projecteru2/core/types"
17-
log "github.com/sirupsen/logrus"
1818
)
1919

2020
// Calcium implement the cluster

cluster/calcium/capacity.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import (
44
"context"
55

66
"github.com/pkg/errors"
7+
"github.com/projecteru2/core/log"
78
"github.com/projecteru2/core/resources"
89
resourcetypes "github.com/projecteru2/core/resources/types"
910
"github.com/projecteru2/core/strategy"
1011
"github.com/projecteru2/core/types"
11-
log "github.com/sirupsen/logrus"
1212
)
1313

1414
// CalculateCapacity calculates capacity

cluster/calcium/control.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"sync"
77

88
"github.com/projecteru2/core/cluster"
9+
"github.com/projecteru2/core/log"
910
"github.com/projecteru2/core/types"
1011
"github.com/projecteru2/core/utils"
11-
log "github.com/sirupsen/logrus"
1212
)
1313

1414
// ControlWorkload control workloads status

cluster/calcium/copy.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"context"
55
"sync"
66

7+
"github.com/projecteru2/core/log"
78
"github.com/projecteru2/core/types"
8-
log "github.com/sirupsen/logrus"
99
)
1010

1111
// Copy uses VirtualizationCopyFrom cp to copy specified things and send to remote

cluster/calcium/create.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import (
1212
"github.com/projecteru2/core/metrics"
1313
resourcetypes "github.com/projecteru2/core/resources/types"
1414

15+
"github.com/projecteru2/core/log"
1516
"github.com/projecteru2/core/types"
1617
"github.com/projecteru2/core/utils"
1718
"github.com/sanity-io/litter"
18-
log "github.com/sirupsen/logrus"
1919
)
2020

2121
// CreateWorkload use options to create workloads
@@ -116,7 +116,7 @@ func (c *Calcium) doCreateWorkloads(ctx context.Context, opts *types.DeployOptio
116116
}
117117
}()
118118

119-
return ch, err
119+
return ch, errors.WithStack(err)
120120
}
121121

122122
func (c *Calcium) doDeployWorkloads(ctx context.Context, ch chan *types.CreateWorkloadMessage, opts *types.DeployOptions, plans []resourcetypes.ResourcePlans, deployMap map[string]int) (_ map[string][]int, err error) {

cluster/calcium/dissociate.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package calcium
33
import (
44
"context"
55

6+
"github.com/projecteru2/core/log"
67
"github.com/projecteru2/core/store"
78
"github.com/projecteru2/core/types"
89
"github.com/projecteru2/core/utils"
9-
log "github.com/sirupsen/logrus"
1010
)
1111

1212
// DissociateWorkload dissociate workload from eru, return it resource but not modity it

cluster/calcium/execute.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"strconv"
66

77
enginetypes "github.com/projecteru2/core/engine/types"
8+
"github.com/projecteru2/core/log"
89
"github.com/projecteru2/core/types"
9-
log "github.com/sirupsen/logrus"
1010
)
1111

1212
// ExecuteWorkload executes commands in running workloads

cluster/calcium/helper.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import (
99

1010
"github.com/projecteru2/core/engine"
1111
enginetypes "github.com/projecteru2/core/engine/types"
12+
"github.com/projecteru2/core/log"
1213
"github.com/projecteru2/core/types"
1314
"github.com/projecteru2/core/utils"
14-
log "github.com/sirupsen/logrus"
1515
"golang.org/x/net/context"
1616
)
1717

cluster/calcium/image.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"fmt"
66
"sync"
77

8+
"github.com/projecteru2/core/log"
89
"github.com/projecteru2/core/types"
9-
log "github.com/sirupsen/logrus"
1010
)
1111

1212
// RemoveImage remove images

cluster/calcium/lambda.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import (
77
"sync"
88

99
enginetypes "github.com/projecteru2/core/engine/types"
10+
"github.com/projecteru2/core/log"
1011
"github.com/projecteru2/core/strategy"
1112
"github.com/projecteru2/core/types"
1213
"github.com/projecteru2/core/utils"
13-
log "github.com/sirupsen/logrus"
1414
)
1515

1616
const exitDataPrefix = "[exitcode] "

cluster/calcium/lock.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77

88
"github.com/projecteru2/core/cluster"
99
"github.com/projecteru2/core/lock"
10+
"github.com/projecteru2/core/log"
1011
"github.com/projecteru2/core/types"
11-
log "github.com/sirupsen/logrus"
1212
)
1313

1414
func (c *Calcium) doLock(ctx context.Context, name string, timeout time.Duration) (lock.DistributedLock, error) {

cluster/calcium/node.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package calcium
33
import (
44
"context"
55

6+
"github.com/projecteru2/core/log"
67
"github.com/projecteru2/core/types"
78
"github.com/sanity-io/litter"
8-
log "github.com/sirupsen/logrus"
99
)
1010

1111
// AddNode adds a node

cluster/calcium/remove.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import (
88
"github.com/projecteru2/core/store"
99
"github.com/projecteru2/core/utils"
1010

11+
"github.com/projecteru2/core/log"
1112
"github.com/projecteru2/core/types"
12-
log "github.com/sirupsen/logrus"
1313
)
1414

1515
// RemoveWorkload remove workloads

cluster/calcium/replace.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import (
88
"sync"
99

1010
enginetypes "github.com/projecteru2/core/engine/types"
11+
"github.com/projecteru2/core/log"
1112
"github.com/projecteru2/core/types"
1213
"github.com/projecteru2/core/utils"
13-
log "github.com/sirupsen/logrus"
1414
)
1515

1616
// ReplaceWorkload replace workloads with same resource

cluster/calcium/resource.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66

77
"github.com/pkg/errors"
8-
log "github.com/sirupsen/logrus"
8+
"github.com/projecteru2/core/log"
99

1010
resourcetypes "github.com/projecteru2/core/resources/types"
1111
"github.com/projecteru2/core/strategy"

cluster/calcium/send.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"sync"
88

99
"github.com/projecteru2/core/engine"
10+
"github.com/projecteru2/core/log"
1011
"github.com/projecteru2/core/types"
11-
log "github.com/sirupsen/logrus"
1212
)
1313

1414
// Send send files to workload

cluster/calcium/service.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import (
55
"sync"
66
"time"
77

8+
"github.com/projecteru2/core/log"
89
"github.com/projecteru2/core/types"
910
"github.com/projecteru2/core/utils"
10-
log "github.com/sirupsen/logrus"
1111
)
1212

1313
// WatchServiceStatus returns chan of available service address

core.go

+23-13
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@ import (
66
"net/http"
77
_ "net/http/pprof" // nolint
88
"os"
9+
"time"
910

11+
"github.com/getsentry/sentry-go"
1012
"github.com/projecteru2/core/auth"
1113
"github.com/projecteru2/core/cluster/calcium"
14+
"github.com/projecteru2/core/log"
1215
"github.com/projecteru2/core/metrics"
1316
"github.com/projecteru2/core/rpc"
1417
pb "github.com/projecteru2/core/rpc/gen"
1518
"github.com/projecteru2/core/utils"
1619
"github.com/projecteru2/core/version"
1720
"github.com/prometheus/client_golang/prometheus/promhttp"
1821
"github.com/sethvargo/go-signalcontext"
19-
log "github.com/sirupsen/logrus"
2022
cli "github.com/urfave/cli/v2"
2123
"google.golang.org/grpc"
2224

@@ -28,20 +30,22 @@ var (
2830
embeddedStorage bool
2931
)
3032

31-
func setupLog(l string) error {
32-
level, err := log.ParseLevel(l)
33-
if err != nil {
34-
return err
33+
func setupSentry(dsn string) (func(), error) {
34+
if dsn == "" {
35+
return nil, nil
3536
}
36-
log.SetLevel(level)
3737

38-
formatter := &log.TextFormatter{
39-
TimestampFormat: "2006-01-02 15:04:05",
40-
FullTimestamp: true,
38+
sentryDefer := func() {
39+
defer sentry.Flush(2 * time.Second)
40+
err := recover()
41+
if err != nil {
42+
sentry.CaptureMessage(fmt.Sprintf("%+v", err))
43+
panic(err)
44+
}
4145
}
42-
log.SetFormatter(formatter)
43-
log.SetOutput(os.Stdout)
44-
return nil
46+
return sentryDefer, sentry.Init(sentry.ClientOptions{
47+
Dsn: dsn,
48+
})
4549
}
4650

4751
func serve(c *cli.Context) error {
@@ -50,10 +54,16 @@ func serve(c *cli.Context) error {
5054
log.Fatalf("[main] %v", err)
5155
}
5256

53-
if err := setupLog(config.LogLevel); err != nil {
57+
if err := log.SetupLog(config.LogLevel); err != nil {
5458
log.Fatalf("[main] %v", err)
5559
}
5660

61+
if sentryDefer, err := setupSentry(config.SentryDSN); err != nil {
62+
log.Warnf("[main] sentry %v", err)
63+
} else if sentryDefer != nil {
64+
defer sentryDefer()
65+
}
66+
5767
if err := metrics.InitMetrics(config); err != nil {
5868
log.Fatalf("[main] %v", err)
5969
}

core.yaml.sample

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ profile: ":12346"
55
global_timeout: 300s
66
lock_timeout: 30s
77
cert_path: "/etc/eru/tls"
8+
sentry_dsn: "https://examplePublicKey@o0.ingest.sentry.io/0"
89

910
auth:
1011
username: admin

discovery/helium/helium.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"time"
77

88
"github.com/google/uuid"
9+
"github.com/projecteru2/core/log"
910
"github.com/projecteru2/core/store"
1011
"github.com/projecteru2/core/types"
11-
log "github.com/sirupsen/logrus"
1212
)
1313

1414
// Helium .

engine/docker/build.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import (
1111

1212
"github.com/projecteru2/core/engine/types"
1313
enginetypes "github.com/projecteru2/core/engine/types"
14+
"github.com/projecteru2/core/log"
1415
coresource "github.com/projecteru2/core/source"
1516
coretypes "github.com/projecteru2/core/types"
1617
"github.com/projecteru2/core/utils"
17-
log "github.com/sirupsen/logrus"
1818
)
1919

2020
const (

engine/docker/container.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
"github.com/docker/go-units"
1717
"github.com/pkg/errors"
1818

19-
log "github.com/sirupsen/logrus"
19+
"github.com/projecteru2/core/log"
2020

2121
dockertypes "github.com/docker/docker/api/types"
2222
dockercontainer "github.com/docker/docker/api/types/container"

engine/docker/docker.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import (
1111
"github.com/docker/go-connections/tlsconfig"
1212
"github.com/projecteru2/core/engine"
1313
enginetypes "github.com/projecteru2/core/engine/types"
14+
"github.com/projecteru2/core/log"
1415
coretypes "github.com/projecteru2/core/types"
15-
log "github.com/sirupsen/logrus"
1616
)
1717

1818
const (

engine/docker/helper.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ import (
1919
corecluster "github.com/projecteru2/core/cluster"
2020
"github.com/projecteru2/core/engine"
2121
enginetypes "github.com/projecteru2/core/engine/types"
22+
"github.com/projecteru2/core/log"
2223
"github.com/projecteru2/core/types"
2324
coretypes "github.com/projecteru2/core/types"
24-
log "github.com/sirupsen/logrus"
2525

2626
"github.com/docker/distribution/reference"
2727
dockertypes "github.com/docker/docker/api/types"

engine/docker/tarfile.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"os"
88
"path/filepath"
99

10-
log "github.com/sirupsen/logrus"
10+
"github.com/projecteru2/core/log"
1111
)
1212

1313
func withTarfileDump(target string, content io.Reader, f func(target, tarfile string) error) error {

engine/systemd/systemd.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
coretypes "github.com/projecteru2/core/types"
1616
"golang.org/x/crypto/ssh"
1717

18-
log "github.com/sirupsen/logrus"
18+
"github.com/projecteru2/core/log"
1919
)
2020

2121
const (

0 commit comments

Comments
 (0)