middleware

package
v0.7.4 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2025 License: Apache-2.0 Imports: 7 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          `json:"enabled"                   yaml:"enabled"`
	CollectConnectionStats  bool          `json:"collect_connection_stats"  yaml:"collect_connection_stats"`
	CollectQueryStats       bool          `json:"collect_query_stats"       yaml:"collect_query_stats"`
	CollectTransactionStats bool          `json:"collect_transaction_stats" yaml:"collect_transaction_stats"`
	CollectMigrationStats   bool          `json:"collect_migration_stats"   yaml:"collect_migration_stats"`
	CollectSlowQueries      bool          `json:"collect_slow_queries"      yaml:"collect_slow_queries"`
	SlowQueryThreshold      time.Duration `json:"slow_query_threshold"      yaml:"slow_query_threshold"`
	GroupByTable            bool          `json:"group_by_table"            yaml:"group_by_table"`
	GroupByOperation        bool          `json:"group_by_operation"        yaml:"group_by_operation"`
	MaxTableNames           int           `json:"max_table_names"           yaml:"max_table_names"`
	NormalizeQueries        bool          `json:"normalize_queries"         yaml:"normalize_queries"`
	LogSlowQueries          bool          `json:"log_slow_queries"          yaml:"log_slow_queries"`
	StatsInterval           time.Duration `json:"stats_interval"            yaml:"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 ...any) (sql.Result, error)

Exec executes a query with metrics collection.

func (*MetricsDB) Query

func (db *MetricsDB) Query(query string, args ...any) (*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