fix(go.d/mysql): handle Cpu_time in microseconds in v10.11.11+ (#19683)
Ilya Mashchenko committed
Feb 20, 2025 at 13:47 UTC
4046b357d9d590da5375ff2eaf0034f3bc87788f
1 file changed
+8
-3
src/go/plugin/go.d/collector/mysql/collect_user_statistics.go
+8
-3
@@ -27,13 +27,18 @@ func (c *Collector) collectUserStatistics(mx map[string]int64) error {
27
c.addUserStatisticsCharts(user)
28
}
29
case "Cpu_time":
30
- if c.isMariaDB && c.version.GTE(semver.Version{Major: 11, Minor: 4, Patch: 5}) {
30
+ needsDivision := c.isMariaDB &&
31
+ ((c.version.Major == 10 && c.version.GTE(semver.Version{Major: 10, Minor: 11, Patch: 11})) ||
32
+ c.version.GTE(semver.Version{Major: 11, Minor: 4, Patch: 5}))
33
+
34
+ key := strings.ToLower(prefix + column)
35
+ if needsDivision {
36
// TODO: theoretically should divide by 1e6 to convert to seconds,
37
// but empirically need 1e7 to match pre-11.4.5 values.
38
// Needs investigation - possible unit reporting inconsistency in MariaDB
34
- mx[strings.ToLower(prefix+column)] = int64(parseFloat(value) / 1e7 * 1000)
39
+ mx[key] = int64(parseFloat(value) / 1e7 * 1000)
40
} else {
36
- mx[strings.ToLower(prefix+column)] = int64(parseFloat(value) * 1000)
41
+ mx[key] = int64(parseFloat(value) * 1000)
42
}
43
case
44
"Total_connections",