chore(go.d/mysql): InnodbOSLogIO in MariaDB >= 10.8 (#19687)
Petr Vaněk committed
Feb 21, 2025 at 10:37 UTC
3115229fe80c5c31af80c6a521340b80e3758598
2 files changed
+15
src/go/plugin/go.d/collector/mysql/charts.go
+6
@@ -1202,6 +1202,12 @@ func (c *Collector) addInnoDBOSLogCharts() {
1202
}
1203
}
1204
1205
+func (c *Collector) addInnoDBOSLogIOChart() {
1206
+ if err := c.Charts().Add(chartInnoDBOSLogIO.Copy()); err != nil {
1207
+ c.Warning(err)
1208
+ }
1209
+}
1210
+
1211
func (c *Collector) addMyISAMCharts() {
1212
if err := c.Charts().Add(*chartsMyISAM.Copy()...); err != nil {
1213
c.Warning(err)
src/go/plugin/go.d/collector/mysql/collect.go
+9
@@ -38,6 +38,10 @@ func (c *Collector) collect() (map[string]int64, error) {
38
39
if hasInnodbOSLog(mx) {
40
c.addInnoDBOSLogOnce.Do(c.addInnoDBOSLogCharts)
41
+ } else if hasInnodbOSLogIO(mx) {
42
+ // most of Innodb_os_log_* status variables was removed in MariaDB 10.8
43
+ // but InnoDB_os_log_written was preserved
44
+ c.addInnoDBOSLogOnce.Do(c.addInnoDBOSLogIOChart)
45
}
46
if hasInnodbDeadlocks(mx) {
47
c.addInnodbDeadlocksOnce.Do(c.addInnodbDeadlocksChart)
@@ -127,6 +131,11 @@ func hasInnodbOSLog(collected map[string]int64) bool {
131
return ok
132
}
133
134
+func hasInnodbOSLogIO(collected map[string]int64) bool {
135
+ _, ok := collected["innodb_os_log_written"]
136
+ return ok
137
+}
138
+
139
func hasInnodbDeadlocks(collected map[string]int64) bool {
140
_, ok := collected["innodb_deadlocks"]
141
return ok