Still using Jaeger/Sentry? Uptrace is a distributed tracing tool that monitors performance, errors, and logs using OpenTelemetry.
Gin OpenTelemetry Instrumentation
Installation
To install Gin OpenTelemetry instrumentation:
go get go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin
Usage
You can instrument Gin router by installing OpenTelemetry middleware:
import (
"github.com/gin-gonic/gin"
"go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin"
)
router := gin.Default()
router.Use(otelgin.Middleware("service-name"))
Instrumenting templates rendering
To instrument templates rendering, use otelgin.HTML
helper:
import "go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin"
func exampleHandler(c *gin.Context) {
otelgin.HTML(c, http.StatusOK, indexTmpl, gin.H{
"foo": "bar",
})
}
What's next?
Next, instrument more operations, for example, database queries, errors, and logs. You can also learn about OpenTelemetry Go Tracing API to create your own instrumentations.
Popular instrumentations:
See also: