middleware

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DatabaseMetricsConfig

type DatabaseMetricsConfig struct {
	Enabled                 bool          `yaml:"enabled" json:"enabled"`
	CollectConnectionStats  bool          `yaml:"collect_connection_stats" json:"collect_connection_stats"`
	CollectQueryStats       bool          `yaml:"collect_query_stats" json:"collect_query_stats"`
	CollectTransactionStats bool          `yaml:"collect_transaction_stats" json:"collect_transaction_stats"`
	CollectMigrationStats   bool          `yaml:"collect_migration_stats" json:"collect_migration_stats"`
	CollectSlowQueries      bool          `yaml:"collect_slow_queries" json:"collect_slow_queries"`
	SlowQueryThreshold      time.Duration `yaml:"slow_query_threshold" json:"slow_query_threshold"`
	GroupByTable            bool          `yaml:"group_by_table" json:"group_by_table"`
	GroupByOperation        bool          `yaml:"group_by_operation" json:"group_by_operation"`
	MaxTableNames           int           `yaml:"max_table_names" json:"max_table_names"`
	NormalizeQueries        bool          `yaml:"normalize_queries" json:"normalize_queries"`
	LogSlowQueries          bool          `yaml:"log_slow_queries" json:"log_slow_queries"`
	StatsInterval           time.Duration `yaml:"stats_interval" json:"stats_interval"`
}

DatabaseMetricsConfig contains configuration for database metrics middleware

func DefaultDatabaseMetricsConfig

func DefaultDatabaseMetricsConfig() *DatabaseMetricsConfig

DefaultDatabaseMetricsConfig returns default configuration

type DatabaseMetricsMiddleware

type DatabaseMetricsMiddleware struct {
	// contains filtered or unexported fields
}

DatabaseMetricsMiddleware provides automatic database metrics collection

func CreateDatabaseMetricsMiddleware

func CreateDatabaseMetricsMiddleware(collector shared.Metrics) *DatabaseMetricsMiddleware

CreateDatabaseMetricsMiddleware creates database metrics middleware

func CreateDatabaseMetricsMiddlewareWithConfig

func CreateDatabaseMetricsMiddlewareWithConfig(collector shared.Metrics, config *DatabaseMetricsConfig) *DatabaseMetricsMiddleware

CreateDatabaseMetricsMiddlewareWithConfig creates database metrics middleware with custom config

func NewDatabaseMetricsMiddleware

func NewDatabaseMetricsMiddleware(collector shared.Metrics) *DatabaseMetricsMiddleware

NewDatabaseMetricsMiddleware creates a new database metrics middleware

func NewDatabaseMetricsMiddlewareWithConfig

func NewDatabaseMetricsMiddlewareWithConfig(collector shared.Metrics, config *DatabaseMetricsConfig) *DatabaseMetricsMiddleware

NewDatabaseMetricsMiddlewareWithConfig creates a new database metrics middleware with configuration

func (*DatabaseMetricsMiddleware) Dependencies

func (m *DatabaseMetricsMiddleware) Dependencies() []string

Dependencies returns the middleware dependencies

func (*DatabaseMetricsMiddleware) Name

Name returns the middleware name

func (*DatabaseMetricsMiddleware) OnHealthCheck

func (m *DatabaseMetricsMiddleware) OnHealthCheck(ctx context.Context) error

OnHealthCheck is called to check middleware health

func (*DatabaseMetricsMiddleware) RecordConnection

func (m *DatabaseMetricsMiddleware) RecordConnection(dbName string, stats sql.DBStats)

RecordConnection records connection metrics

func (*DatabaseMetricsMiddleware) RecordConnectionError

func (m *DatabaseMetricsMiddleware) RecordConnectionError(dbName string, err error)

RecordConnectionError records a connection error

func (*DatabaseMetricsMiddleware) RecordMigration

func (m *DatabaseMetricsMiddleware) RecordMigration(migration MigrationInfo)

RecordMigration records migration metrics

func (*DatabaseMetricsMiddleware) RecordQuery

func (m *DatabaseMetricsMiddleware) RecordQuery(query QueryInfo)

RecordQuery records query metrics

func (*DatabaseMetricsMiddleware) RecordTransaction

func (m *DatabaseMetricsMiddleware) RecordTransaction(tx TransactionInfo)

RecordTransaction records transaction metrics

func (*DatabaseMetricsMiddleware) SetLogger

func (m *DatabaseMetricsMiddleware) SetLogger(logger logger.Logger)

SetLogger sets the logger

func (*DatabaseMetricsMiddleware) Start

OnStart is called when the middleware starts

func (*DatabaseMetricsMiddleware) Stop

OnStop is called when the middleware stops

type MetricsDB

type MetricsDB struct {
	*sql.DB
	// contains filtered or unexported fields
}

MetricsDB wraps a database connection with metrics collection

func NewMetricsDB

func NewMetricsDB(db *sql.DB, middleware *DatabaseMetricsMiddleware, dbName string) *MetricsDB

NewMetricsDB creates a new metrics-enabled database wrapper

func (*MetricsDB) Begin

func (db *MetricsDB) Begin() (*MetricsTx, error)

Begin starts a transaction with metrics collection

func (*MetricsDB) Exec

func (db *MetricsDB) Exec(query string, args ...interface{}) (sql.Result, error)

Exec executes a query with metrics collection

func (*MetricsDB) Query

func (db *MetricsDB) Query(query string, args ...interface{}) (*sql.Rows, error)

Query executes a query with metrics collection

func (*MetricsDB) Stats

func (db *MetricsDB) Stats() sql.DBStats

Stats returns database statistics and records metrics

type MetricsTx

type MetricsTx struct {
	*sql.Tx
	// contains filtered or unexported fields
}

MetricsTx wraps a database transaction with metrics collection

func (*MetricsTx) Commit

func (tx *MetricsTx) Commit() error

Commit commits the transaction with metrics collection

func (*MetricsTx) Rollback

func (tx *MetricsTx) Rollback() error

Rollback rolls back the transaction with metrics collection

type MigrationInfo

type MigrationInfo struct {
	Database  string
	Name      string
	Direction string // "up" or "down"
	Duration  time.Duration
	Error     error
}

MigrationInfo contains information about a database migration

type QueryInfo

type QueryInfo struct {
	Database     string
	Table        string
	Operation    string
	Query        string
	Duration     time.Duration
	RowsAffected int64
	RowsReturned int64
	Error        error
}

QueryInfo contains information about a database query

type TransactionInfo

type TransactionInfo struct {
	Database string
	Duration time.Duration
	Rollback bool
	Error    error
}

TransactionInfo contains information about a database transaction

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL