Documentation ¶
Overview ¶
Package gin provides functions to trace the gin-gonic/gin package (https://github.com/gin-gonic/gin).
Example ¶
To start tracing requests, add the trace middleware to your Gin router.
package main import ( gintrace "git.proto.group/protoobp/pobp-trace-go/contrib/gin-gonic/gin" "git.proto.group/protoobp/pobp-trace-go/pobptrace/tracer" "github.com/gin-gonic/gin" ) func main() { tracer.Start() defer tracer.Stop() // Create a gin.Engine r := gin.New() // Use the tracer middleware with your desired service name. r.Use(gintrace.Middleware("my-web-app")) // Set up some endpoints. r.GET("/hello", func(c *gin.Context) { c.String(200, "hello world!") }) // And start gathering request traces. r.Run(":8080") }
Output:
Example (SpanFromContext) ¶
package main import ( gintrace "git.proto.group/protoobp/pobp-trace-go/contrib/gin-gonic/gin" "git.proto.group/protoobp/pobp-trace-go/pobptrace/tracer" "github.com/gin-gonic/gin" ) func main() { tracer.Start() defer tracer.Stop() r := gin.Default() r.Use(gintrace.Middleware("image-encoder")) r.GET("/image/encode", func(c *gin.Context) { ctx := c.Request.Context() // create a child span to track operation timing. encodeSpan, _ := tracer.StartSpanFromContext(ctx, "image.encode") // encode a image encodeSpan.Finish() c.String(200, "ok!") }) }
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HTML ¶
HTML will trace the rendering of the template as a child of the span in the given context.
Example ¶
package main import ( gintrace "git.proto.group/protoobp/pobp-trace-go/contrib/gin-gonic/gin" "git.proto.group/protoobp/pobp-trace-go/pobptrace/tracer" "github.com/gin-gonic/gin" ) func main() { tracer.Start() defer tracer.Stop() r := gin.Default() r.Use(gintrace.Middleware("my-web-app")) r.LoadHTMLGlob("templates/*") r.GET("/index", func(c *gin.Context) { // render the html and trace the execution time. gintrace.HTML(c, 200, "index.tmpl", gin.H{ "title": "Main website", }) }) }
Output:
func Middleware ¶
func Middleware(service string, opts ...Option) gin.HandlerFunc
Middleware returns middleware that will trace incoming requests. If service is empty then the default service name will be used.
Types ¶
type Option ¶
type Option func(*config)
Option specifies instrumentation configuration options.
func WithAnalytics ¶
WithAnalytics enables Trace Analytics for all started spans.
func WithAnalyticsRate ¶
WithAnalyticsRate sets the sampling rate for Trace Analytics events correlated to started spans.
func WithIgnoreRequest ¶
WithIgnoreRequest specifies a function to use for determining if the incoming HTTP request tracing should be skipped.