Skip to content
This repository has been archived by the owner on Dec 16, 2023. It is now read-only.

go-kratos/sentry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sentry middleware for Kratos

Quick Start

You could check the full demo in example folder.

// Step 1: 
// init sentry in the entry of your application
import "github.com/getsentry/sentry-go"

sentry.Init(sentry.ClientOptions{
		Dsn: "<your dsn>",
		AttachStacktrace: true, // recommended
})


// Step 2: 
// set middleware
import 	sentrykratos "github.com/go-kratos/sentry"

// for HTTP server, new HTTP server with sentry middleware options
var opts = []http.ServerOption{
	http.Middleware(
		recovery.Recovery(), 
		sentrykratos.Server(), // must after Recovery middleware, because of the exiting order will be reversed
		tracing.Server(),
		logging.Server(logger), 
	),
}

// for gRPC server, new gRPC server with sentry middleware options
var opts = []grpc.ServerOption{
     grpc.Middleware(
		recovery.Recovery(),
		sentrykratos.Server(), // must after Recovery middleware, because of the exiting order will be reversed
		tracing.Server(),
		logging.Server(logger),
     ),
 }


// Then, the framework will report events to Sentry when your trigger panics.
// Or your can push events to Sentry manually

Reference