Documentation
¶
Index ¶
- type DatabaseMetricsConfig
- type DatabaseMetricsMiddleware
- func CreateDatabaseMetricsMiddleware(collector shared.Metrics) *DatabaseMetricsMiddleware
- func CreateDatabaseMetricsMiddlewareWithConfig(collector shared.Metrics, config *DatabaseMetricsConfig) *DatabaseMetricsMiddleware
- func NewDatabaseMetricsMiddleware(collector shared.Metrics) *DatabaseMetricsMiddleware
- func NewDatabaseMetricsMiddlewareWithConfig(collector shared.Metrics, config *DatabaseMetricsConfig) *DatabaseMetricsMiddleware
- func (m *DatabaseMetricsMiddleware) Dependencies() []string
- func (m *DatabaseMetricsMiddleware) Name() string
- func (m *DatabaseMetricsMiddleware) OnHealthCheck(ctx context.Context) error
- func (m *DatabaseMetricsMiddleware) RecordConnection(dbName string, stats sql.DBStats)
- func (m *DatabaseMetricsMiddleware) RecordConnectionError(dbName string, err error)
- func (m *DatabaseMetricsMiddleware) RecordMigration(migration MigrationInfo)
- func (m *DatabaseMetricsMiddleware) RecordQuery(query QueryInfo)
- func (m *DatabaseMetricsMiddleware) RecordTransaction(tx TransactionInfo)
- func (m *DatabaseMetricsMiddleware) SetLogger(logger logger.Logger)
- func (m *DatabaseMetricsMiddleware) Start(ctx context.Context) error
- func (m *DatabaseMetricsMiddleware) Stop(ctx context.Context) error
- type MetricsDB
- type MetricsTx
- type MigrationInfo
- type QueryInfo
- type TransactionInfo
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 ¶
func (m *DatabaseMetricsMiddleware) Name() string
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
type MetricsDB ¶
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
type MetricsTx ¶
MetricsTx wraps a database 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