Documentation ¶
Overview ¶
Package otelgin instruments the github.com/gin-gonic/gin package.
Currently there are two ways the code can be instrumented. One is instrumenting the routing of a received message (the Middleware function) and instrumenting the response generation through template evaluation (the HTML function).
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
Option is used to configure the client.
func WithAlwaysOmitVariables ¶
func WithAlwaysOmitVariables() Option
WithAlwaysOmitVariables makes the plugin always omit variable values from traces.
func WithDBName ¶
WithDBName specified the database name to be used in span names since its not possible to extract this information from gorm
func WithTracerProvider ¶
func WithTracerProvider(provider oteltrace.TracerProvider) Option
WithTracerProvider specifies a tracer provider to use for creating a tracer. If none is specified, the global provider is used.
type OtelPlugin ¶
type OtelPlugin struct {
// contains filtered or unexported fields
}
func NewPlugin ¶
func NewPlugin(opts ...Option) *OtelPlugin
NewPlugin initialize a new gorm.DB plugin that traces queries You may pass optional Options to the function
Example ¶
package main import ( "context" "gorm.io/driver/sqlite" "gorm.io/gorm" ) type Product struct { gorm.Model Code string Price uint } func main() { // Initialize db connection db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) if err != nil { panic("failed to connect database") } // Initialize otel plugin with options plugin := NewPlugin( // include any options here ) err = db.Use(plugin) if err != nil { panic("failed configuring plugin") } // Migrate the schema err = db.AutoMigrate(&Product{}) if err != nil { panic(err.Error()) } // Create db.Create(&Product{Code: "D42", Price: 100}) // Read var product Product db.First(&product, 1) // find product with integer primary key db.First(&product, "code = ?", "D42") // find product with code D42 db.WithContext(WithOmitVariablesFromTrace(context.Background())).First(&product, "code = ?", "foo") }
Output:
func (*OtelPlugin) Initialize ¶
func (op *OtelPlugin) Initialize(db *gorm.DB) error
func (*OtelPlugin) Name ¶
func (op *OtelPlugin) Name() string