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