feat: expose mysql transaction retry metrics
This commit is contained in:
@@ -102,6 +102,9 @@ func (r *Registry) RecordBatch(component string, started time.Time, err error) {
|
||||
|
||||
// RecordDatabase reads the local connection-pool snapshot; it issues no SQL.
|
||||
func (r *Registry) RecordDatabase(s sql.DBStats) {
|
||||
if r == nil {
|
||||
return
|
||||
}
|
||||
r.SetGauge("orbit_db_connections_open", float64(s.OpenConnections), nil)
|
||||
r.SetGauge("orbit_db_connections_in_use", float64(s.InUse), nil)
|
||||
r.SetGauge("orbit_db_connections_idle", float64(s.Idle), nil)
|
||||
@@ -109,3 +112,18 @@ func (r *Registry) RecordDatabase(s sql.DBStats) {
|
||||
r.SetCounter("orbit_db_wait_count_total", float64(s.WaitCount), nil)
|
||||
r.SetCounter("orbit_db_wait_duration_seconds_total", s.WaitDuration.Seconds(), nil)
|
||||
}
|
||||
|
||||
// TransactionStats 是本进程提交前事务重试的累计观测值。
|
||||
type TransactionStats struct {
|
||||
Retries uint64 // 已实际执行的重试次数。
|
||||
Exhausted uint64 // 达到重试上限的事务次数。
|
||||
}
|
||||
|
||||
// RecordTransactionStats records bounded database transaction retry counters.
|
||||
func (r *Registry) RecordTransactionStats(stats TransactionStats) {
|
||||
if r == nil {
|
||||
return
|
||||
}
|
||||
r.SetCounter("orbit_db_transaction_retries_total", float64(stats.Retries), nil)
|
||||
r.SetCounter("orbit_db_transaction_retry_exhausted_total", float64(stats.Exhausted), nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user