Documentation
¶
Overview ¶
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 ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Middleware ¶
func Middleware(app *newrelic.Application, opts ...MiddlewareOption) gin.HandlerFunc
Middleware creates a Gin middleware that instruments requests with optional configurations.
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 ¶
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 ¶
func Transaction(c Context) *newrelic.Transaction
Transaction returns the transaction stored inside the context, or nil if not found.
func WrapRouter ¶ added in v1.3.0
WrapRouter extracts API endpoints from the router instance passed to it which is used to detect application URL mapping(api-endpoints) for provable security. In this version of the integration, this wrapper is only necessary if you are using the New Relic security agent integration [https://github.com/newrelic/go-agent/tree/master/v3/integrations/nrsecurityagent], but it may be enhanced to provide additional functionality in future releases.
router := gin.Default() .... .... .... nrgin.WrapRouter(router)
Types ¶
type Context ¶
type Context interface {
Value(key interface{}) interface{}
}
Context avoids making this package 1.7+ specific.
type MiddlewareOption ¶ added in v1.4.0
type MiddlewareOption func(*middlewareConfig)
MiddlewareOption defines a functional option for configuring the Middleware.
func WithFilter ¶ added in v1.4.0
func WithFilter(filter func(*gin.Context) bool) MiddlewareOption
WithFilter allows users to provide a custom filter function to determine whether a request should be monitored.