New Relic Go Agent middleware for negroni
New Relic has recently released a Go Agent in their APM module. Its currently in beta and in order to get started you can request for a beta token by filling the beta agreement form.
If you have microservice architecture using negroni and are looking for a middleware to attach new relic go agent to your existing stack of middlewares, then you can use negroni-newrelic-go-agent to achieve the same.
package main
import (
"fmt"
"net/http"
"os"
"github.com/codegangsta/negroni"
newrelic "github.com/yadvendar/negroni-newrelic-go-agent"
)
func main() {
r := http.NewServeMux()
r.HandleFunc(`/`, func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "success!\n")
})
n := negroni.New()
config := newrelic.NewConfig("APP_SERVER_NAME", "NEWRELIC_LICENSE_KEY")
config.BetaToken = "BETA_TOKEN" // this is valid only till go-agent is in beta
config.Enabled = true
newRelicMiddleware, err := newrelic.New(config)
if err != nil {
fmt.Println("Unable to initialize newrelic. Error=" + err.Error())
os.Exit(0)
}
n.Use(newRelicMiddleware)
n.UseHandler(r)
n.Run(":3000")
}
See a running example.
See LICENSE.txt