Skip to content

Treblle with Go standard library

Introduction

Trebble middleware for Go works with applications based on net/http.

Installation

Trebble uses Go Modules to manage dependencies.

Terminal window
go get github.com/treblle/treblle-go

Basic configuration

Configure Treblle at the start of your main() function:

import "github.com/treblle/treblle-go"
func main() {
treblle.Configure(treblle.Configuration{
APIKey: "YOUR API KEY HERE",
ProjectID: "YOUR PROJECT ID HERE",
AdditionalFieldsToMask: []string{"password", "card_number"}, // optional, specify additional fields to mask
}
// rest of your program.
}

After that, just use the middleware with any of your handlers:

mux := http.NewServeMux()
mux.Handle("/", treblle.Middleware(http.HandlerFunc(yourHandler)))

gorilla/mux

To setup the treblle.Middleware in gorilla/mux, you can use it as a global middleware:

r := mux.NewRouter()
r.Use(treblle.Middleware)

per-route

You can also use treblle.Middleware as a per-route middleware just like you will use it with net/http:

r := mux.NewRouter()
r.Handle("/", treblle.Middleware(http.HandlerFunc(yourHandler)))

Subroutes

You can also use treblle.Middleware on gorilla/mux subroutes:

r := mux.NewRouter()
apiRouter := r.PathPrefix("/api").Subrouter()
apiRouter.Use(treblle.Middleware) // Set as a middleware for this subroute
apiRouter.HandleFunc("/users", yourHandler)