go-agent: github.com/newrelic/go-agent/v3/integrations/nrgin Index | Files | Directories

package nrgin

import "github.com/newrelic/go-agent/v3/integrations/nrgin"

Package nrgin instruments https://github.com/gin-gonic/gin applications.

Use this package to instrument inbound requests handled by a gin.Engine. Call nrgin.Middleware to get a gin.HandlerFunc which can be added to your application as a middleware:

router := gin.Default()
// Add the nrgin middleware before other middlewares or routes:
router.Use(nrgin.Middleware(app))

Example: https://github.com/newrelic/go-agent/tree/master/v3/integrations/nrgin/example/main.go

Index

Package Files

nrgin.go

func Middleware Uses

func Middleware(app *newrelic.Application) gin.HandlerFunc

Middleware creates a Gin middleware that instruments requests.

router := gin.Default()
// Add the nrgin middleware before other middlewares or routes:
router.Use(nrgin.Middleware(app))

Gin v1.5.0 introduced the gin.Context.FullPath method which allows for much improved transaction naming. This Middleware will use that gin.Context.FullPath if available and fall back to the original gin.Context.HandlerName if not. If you are using Gin v1.5.0 and wish to continue using the old transaction names, use nrgin.MiddlewareHandlerTxnNames.

func MiddlewareHandlerTxnNames Uses

func MiddlewareHandlerTxnNames(app *newrelic.Application) gin.HandlerFunc

MiddlewareHandlerTxnNames creates a Gin middleware that instruments requests.

router := gin.Default()
// Add the nrgin middleware before other middlewares or routes:
router.Use(nrgin.MiddlewareHandlerTxnNames(app))

The use of gin.Context.HandlerName for naming transactions will be removed in a future release. Available in Gin v1.5.0 and newer is the gin.Context.FullPath method which allows for much improved transaction names. Use nrgin.Middleware to take full advantage of this new naming!

func Transaction Uses

func Transaction(c Context) *newrelic.Transaction

Transaction returns the transaction stored inside the context, or nil if not found.

type Context Uses

type Context interface {
    Value(key interface{}) interface{}
}

Context avoids making this package 1.7+ specific.

Directories

PathSynopsis
example

Package nrgin imports 4 packages (graph) and is imported by 2 packages. Updated 2020-07-01. Refresh now. Tools for package owners.