You've already forked golang-saas-starter-kit
mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-12-24 00:01:31 +02:00
update tracing, fixed docker-compose and removed vendor dir
This commit is contained in:
@@ -9,9 +9,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/dimfeld/httptreemux"
|
||||
"go.opencensus.io/plugin/ochttp"
|
||||
"go.opencensus.io/plugin/ochttp/propagation/tracecontext"
|
||||
"go.opencensus.io/trace"
|
||||
)
|
||||
|
||||
// ctxKey represents the type of value for the context key.
|
||||
@@ -22,7 +19,6 @@ const KeyValues ctxKey = 1
|
||||
|
||||
// Values represent state for each request.
|
||||
type Values struct {
|
||||
TraceID string
|
||||
Now time.Time
|
||||
StatusCode int
|
||||
}
|
||||
@@ -36,7 +32,6 @@ type Handler func(ctx context.Context, w http.ResponseWriter, r *http.Request, p
|
||||
// data/logic on this App struct
|
||||
type App struct {
|
||||
*httptreemux.TreeMux
|
||||
och *ochttp.Handler
|
||||
shutdown chan os.Signal
|
||||
log *log.Logger
|
||||
mw []Middleware
|
||||
@@ -51,17 +46,6 @@ func NewApp(shutdown chan os.Signal, log *log.Logger, mw ...Middleware) *App {
|
||||
mw: mw,
|
||||
}
|
||||
|
||||
// Create an OpenCensus HTTP Handler which wraps the router. This will start
|
||||
// the initial span and annotate it with information about the request/response.
|
||||
//
|
||||
// This is configured to use the W3C TraceContext standard to set the remote
|
||||
// parent if an client request includes the appropriate headers.
|
||||
// https://w3c.github.io/trace-context/
|
||||
app.och = &ochttp.Handler{
|
||||
Handler: app.TreeMux,
|
||||
Propagation: &tracecontext.HTTPFormat{},
|
||||
}
|
||||
|
||||
return &app
|
||||
}
|
||||
|
||||
@@ -84,16 +68,12 @@ func (a *App) Handle(verb, path string, handler Handler, mw ...Middleware) {
|
||||
|
||||
// The function to execute for each request.
|
||||
h := func(w http.ResponseWriter, r *http.Request, params map[string]string) {
|
||||
ctx, span := trace.StartSpan(r.Context(), "internal.platform.web")
|
||||
defer span.End()
|
||||
|
||||
// Set the context with the required values to
|
||||
// process the request.
|
||||
v := Values{
|
||||
TraceID: span.SpanContext().TraceID.String(),
|
||||
Now: time.Now(),
|
||||
}
|
||||
ctx = context.WithValue(ctx, KeyValues, &v)
|
||||
ctx := context.WithValue(r.Context(), KeyValues, &v)
|
||||
|
||||
// Call the wrapped handler functions.
|
||||
if err := handler(ctx, w, r, params); err != nil {
|
||||
@@ -106,10 +86,3 @@ func (a *App) Handle(verb, path string, handler Handler, mw ...Middleware) {
|
||||
// Add this handler for the specified verb and route.
|
||||
a.TreeMux.Handle(verb, path, h)
|
||||
}
|
||||
|
||||
// ServeHTTP implements the http.Handler interface. It overrides the ServeHTTP
|
||||
// of the embedded TreeMux by using the ochttp.Handler instead. That Handler
|
||||
// wraps the TreeMux handler so the routes are served.
|
||||
func (a *App) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
a.och.ServeHTTP(w, r)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user