github.com/netdata/go.d.plugin@v0.58.1/modules/mysql/collect_user_statistics.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package mysql 4 5 import ( 6 "strings" 7 ) 8 9 const queryShowUserStatistics = "SHOW USER_STATISTICS;" 10 11 func (m *MySQL) collectUserStatistics(mx map[string]int64) error { 12 // https://mariadb.com/kb/en/user-statistics/ 13 // https://mariadb.com/kb/en/information-schema-user_statistics-table/ 14 q := queryShowUserStatistics 15 m.Debugf("executing query: '%s'", q) 16 17 var user, prefix string 18 _, err := m.collectQuery(q, func(column, value string, _ bool) { 19 switch column { 20 case "User": 21 user = value 22 prefix = "userstats_" + user + "_" 23 if !m.collectedUsers[user] { 24 m.collectedUsers[user] = true 25 m.addUserStatisticsCharts(user) 26 } 27 case "Cpu_time": 28 mx[strings.ToLower(prefix+column)] = int64(parseFloat(value) * 1000) 29 case 30 "Total_connections", 31 "Lost_connections", 32 "Denied_connections", 33 "Empty_queries", 34 "Binlog_bytes_written", 35 "Rows_read", 36 "Rows_sent", 37 "Rows_deleted", 38 "Rows_inserted", 39 "Rows_updated", 40 "Rows_fetched", // Percona 41 "Select_commands", 42 "Update_commands", 43 "Other_commands", 44 "Access_denied", 45 "Commit_transactions", 46 "Rollback_transactions": 47 mx[strings.ToLower(prefix+column)] = parseInt(value) 48 } 49 }) 50 return err 51 }