github.com/netdata/go.d.plugin@v0.58.1/modules/mysql/collect_global_vars.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package mysql
     4  
     5  const (
     6  	queryShowGlobalVariables = `
     7  SHOW GLOBAL VARIABLES 
     8  WHERE 
     9    Variable_name LIKE 'max_connections' 
    10    OR Variable_name LIKE 'table_open_cache' 
    11    OR Variable_name LIKE 'disabled_storage_engines' 
    12    OR Variable_name LIKE 'log_bin'
    13    OR Variable_name LIKE 'performance_schema';`
    14  )
    15  
    16  func (m *MySQL) collectGlobalVariables() error {
    17  	// MariaDB: https://mariadb.com/kb/en/server-system-variables/
    18  	// MySQL: https://dev.mysql.com/doc/refman/8.0/en/server-system-variable-reference.html
    19  	q := queryShowGlobalVariables
    20  	m.Debugf("executing query: '%s'", q)
    21  
    22  	var name string
    23  	_, err := m.collectQuery(q, func(column, value string, _ bool) {
    24  		switch column {
    25  		case "Variable_name":
    26  			name = value
    27  		case "Value":
    28  			switch name {
    29  			case "disabled_storage_engines":
    30  				m.varDisabledStorageEngine = value
    31  			case "log_bin":
    32  				m.varLogBin = value
    33  			case "max_connections":
    34  				m.varMaxConns = parseInt(value)
    35  			case "performance_schema":
    36  				m.varPerformanceSchema = value
    37  			case "table_open_cache":
    38  				m.varTableOpenCache = parseInt(value)
    39  			}
    40  		}
    41  	})
    42  	return err
    43  }