Opentelemetry for gorm
- support tracing gorm by Hook
CreateQueryDeleteUpdateRowRaw
- Collect DB Status
- Use logrus replace gorm default logger
- Use hook to report span message
- Out-of-the-box default opentelemetry provider
- Support setting via environment variables
package main import( "gorm.io/gorm/logger" "gorm.io/plugin/opentelemetry/logging/logrus" ) func init(){ logger := logger.New( logrus.NewWriter(), logger.Config{ SlowThreshold: time.Millisecond, LogLevel: logger.Warn, Colorful: false, }, ) db, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"),&gorm.Config{Logger: logger}) }package main import( "gorm.io/plugin/opentelemetry/tracing" ) func init(){ db, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"), &gorm.Config{}) if err != nil { panic(err) } if err := db.Use(tracing.NewPlugin()); err != nil { panic(err) } }package main import( "gorm.io/plugin/opentelemetry/tracing" ) func init(){ db, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"), &gorm.Config{}) if err != nil { panic(err) } if err := db.Use(tracing.NewPlugin(tracing.WithoutMetrics())); err != nil { panic(err) } }See examples