github.com/netdata/go.d.plugin@v0.58.1/modules/proxysql/proxysql_test.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package proxysql
     4  
     5  import (
     6  	"bufio"
     7  	"bytes"
     8  	"database/sql/driver"
     9  	"errors"
    10  	"fmt"
    11  	"os"
    12  	"strings"
    13  	"testing"
    14  
    15  	"github.com/DATA-DOG/go-sqlmock"
    16  	"github.com/stretchr/testify/assert"
    17  	"github.com/stretchr/testify/require"
    18  )
    19  
    20  var (
    21  	dataV2010Version, _                    = os.ReadFile("testdata/v2.0.10/version.txt")
    22  	dataV2010StatsMySQLGlobal, _           = os.ReadFile("testdata/v2.0.10/stats_mysql_global.txt")
    23  	dataV2010StatsMemoryMetrics, _         = os.ReadFile("testdata/v2.0.10/stats_memory_metrics.txt")
    24  	dataV2010StatsMySQLCommandsCounters, _ = os.ReadFile("testdata/v2.0.10/stats_mysql_commands_counters.txt")
    25  	dataV2010StatsMySQLUsers, _            = os.ReadFile("testdata/v2.0.10/stats_mysql_users.txt")
    26  	dataV2010StatsMySQLConnectionPool, _   = os.ReadFile("testdata/v2.0.10/stats_mysql_connection_pool .txt")
    27  )
    28  
    29  func Test_testDataIsValid(t *testing.T) {
    30  	for name, data := range map[string][]byte{
    31  		"dataV2010Version":                    dataV2010Version,
    32  		"dataV2010StatsMySQLGlobal":           dataV2010StatsMySQLGlobal,
    33  		"dataV2010StatsMemoryMetrics":         dataV2010StatsMemoryMetrics,
    34  		"dataV2010StatsMySQLCommandsCounters": dataV2010StatsMySQLCommandsCounters,
    35  		"dataV2010StatsMySQLUsers":            dataV2010StatsMySQLUsers,
    36  		"dataV2010StatsMySQLConnectionPool":   dataV2010StatsMySQLConnectionPool,
    37  	} {
    38  		require.NotNilf(t, data, name)
    39  		_, err := prepareMockRows(data)
    40  		require.NoErrorf(t, err, name)
    41  	}
    42  }
    43  
    44  func TestProxySQL_Init(t *testing.T) {
    45  	tests := map[string]struct {
    46  		config   Config
    47  		wantFail bool
    48  	}{
    49  		"default": {
    50  			wantFail: false,
    51  			config:   New().Config,
    52  		},
    53  		"empty DSN": {
    54  			wantFail: true,
    55  			config:   Config{DSN: ""},
    56  		},
    57  	}
    58  
    59  	for name, test := range tests {
    60  		t.Run(name, func(t *testing.T) {
    61  			proxySQL := New()
    62  			proxySQL.Config = test.config
    63  
    64  			if test.wantFail {
    65  				assert.False(t, proxySQL.Init())
    66  			} else {
    67  				assert.True(t, proxySQL.Init())
    68  			}
    69  		})
    70  	}
    71  }
    72  
    73  func TestProxySQL_Cleanup(t *testing.T) {
    74  	tests := map[string]func(t *testing.T) (proxySQL *ProxySQL, cleanup func()){
    75  		"db connection not initialized": func(t *testing.T) (proxySQL *ProxySQL, cleanup func()) {
    76  			return New(), func() {}
    77  		},
    78  		"db connection initialized": func(t *testing.T) (proxySQL *ProxySQL, cleanup func()) {
    79  			db, mock, err := sqlmock.New()
    80  			require.NoError(t, err)
    81  
    82  			mock.ExpectClose()
    83  			proxySQL = New()
    84  			proxySQL.db = db
    85  			cleanup = func() { _ = db.Close() }
    86  
    87  			return proxySQL, cleanup
    88  		},
    89  	}
    90  
    91  	for name, prepare := range tests {
    92  		t.Run(name, func(t *testing.T) {
    93  			proxySQL, cleanup := prepare(t)
    94  			defer cleanup()
    95  
    96  			assert.NotPanics(t, proxySQL.Cleanup)
    97  			assert.Nil(t, proxySQL.db)
    98  		})
    99  	}
   100  }
   101  
   102  func TestProxySQL_Charts(t *testing.T) {
   103  	assert.NotNil(t, New().Charts())
   104  }
   105  
   106  func TestProxySQL_Check(t *testing.T) {
   107  	tests := map[string]struct {
   108  		prepareMock func(t *testing.T, m sqlmock.Sqlmock)
   109  		wantFail    bool
   110  	}{
   111  		"success on all queries": {
   112  			wantFail: false,
   113  			prepareMock: func(t *testing.T, m sqlmock.Sqlmock) {
   114  				mockExpect(t, m, queryVersion, dataV2010Version)
   115  				mockExpect(t, m, queryStatsMySQLGlobal, dataV2010StatsMySQLGlobal)
   116  				mockExpect(t, m, queryStatsMySQLMemoryMetrics, dataV2010StatsMemoryMetrics)
   117  				mockExpect(t, m, queryStatsMySQLCommandsCounters, dataV2010StatsMySQLCommandsCounters)
   118  				mockExpect(t, m, queryStatsMySQLUsers, dataV2010StatsMySQLUsers)
   119  				mockExpect(t, m, queryStatsMySQLConnectionPool, dataV2010StatsMySQLConnectionPool)
   120  			},
   121  		},
   122  		"fails when error on querying global stats": {
   123  			wantFail: true,
   124  			prepareMock: func(t *testing.T, m sqlmock.Sqlmock) {
   125  				mockExpect(t, m, queryVersion, dataV2010Version)
   126  				mockExpectErr(m, queryStatsMySQLGlobal)
   127  			},
   128  		},
   129  		"fails when error on querying memory metrics": {
   130  			wantFail: true,
   131  			prepareMock: func(t *testing.T, m sqlmock.Sqlmock) {
   132  				mockExpect(t, m, queryVersion, dataV2010Version)
   133  				mockExpect(t, m, queryStatsMySQLGlobal, dataV2010StatsMySQLGlobal)
   134  				mockExpectErr(m, queryStatsMySQLMemoryMetrics)
   135  			},
   136  		},
   137  		"fails when error on querying mysql command counters": {
   138  			wantFail: true,
   139  			prepareMock: func(t *testing.T, m sqlmock.Sqlmock) {
   140  				mockExpect(t, m, queryVersion, dataV2010Version)
   141  				mockExpect(t, m, queryStatsMySQLGlobal, dataV2010StatsMySQLGlobal)
   142  				mockExpect(t, m, queryStatsMySQLMemoryMetrics, dataV2010StatsMemoryMetrics)
   143  				mockExpectErr(m, queryStatsMySQLCommandsCounters)
   144  			},
   145  		},
   146  		"fails when error on querying mysql users": {
   147  			wantFail: true,
   148  			prepareMock: func(t *testing.T, m sqlmock.Sqlmock) {
   149  				mockExpect(t, m, queryVersion, dataV2010Version)
   150  				mockExpect(t, m, queryStatsMySQLGlobal, dataV2010StatsMySQLGlobal)
   151  				mockExpect(t, m, queryStatsMySQLMemoryMetrics, dataV2010StatsMemoryMetrics)
   152  				mockExpect(t, m, queryStatsMySQLCommandsCounters, dataV2010StatsMySQLCommandsCounters)
   153  				mockExpectErr(m, queryStatsMySQLUsers)
   154  			},
   155  		},
   156  	}
   157  
   158  	for name, test := range tests {
   159  		t.Run(name, func(t *testing.T) {
   160  			db, mock, err := sqlmock.New(
   161  				sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual),
   162  			)
   163  			require.NoError(t, err)
   164  			proxySQL := New()
   165  			proxySQL.db = db
   166  			defer func() { _ = db.Close() }()
   167  
   168  			require.True(t, proxySQL.Init())
   169  
   170  			test.prepareMock(t, mock)
   171  
   172  			if test.wantFail {
   173  				assert.False(t, proxySQL.Check())
   174  			} else {
   175  				assert.True(t, proxySQL.Check())
   176  			}
   177  			assert.NoError(t, mock.ExpectationsWereMet())
   178  		})
   179  	}
   180  }
   181  
   182  func TestProxySQL_Collect(t *testing.T) {
   183  	type testCaseStep struct {
   184  		prepareMock func(t *testing.T, m sqlmock.Sqlmock)
   185  		check       func(t *testing.T, my *ProxySQL)
   186  	}
   187  	tests := map[string][]testCaseStep{
   188  
   189  		"success on all queries (v2.0.10)": {
   190  			{
   191  				prepareMock: func(t *testing.T, m sqlmock.Sqlmock) {
   192  					mockExpect(t, m, queryVersion, dataV2010Version)
   193  					mockExpect(t, m, queryStatsMySQLGlobal, dataV2010StatsMySQLGlobal)
   194  					mockExpect(t, m, queryStatsMySQLMemoryMetrics, dataV2010StatsMemoryMetrics)
   195  					mockExpect(t, m, queryStatsMySQLCommandsCounters, dataV2010StatsMySQLCommandsCounters)
   196  					mockExpect(t, m, queryStatsMySQLUsers, dataV2010StatsMySQLUsers)
   197  					mockExpect(t, m, queryStatsMySQLConnectionPool, dataV2010StatsMySQLConnectionPool)
   198  				},
   199  				check: func(t *testing.T, my *ProxySQL) {
   200  					mx := my.Collect()
   201  
   202  					expected := map[string]int64{
   203  						"Access_Denied_Max_Connections":                           0,
   204  						"Access_Denied_Max_User_Connections":                      0,
   205  						"Access_Denied_Wrong_Password":                            2,
   206  						"Active_Transactions":                                     0,
   207  						"Auth_memory":                                             1044,
   208  						"Backend_query_time_nsec":                                 0,
   209  						"Client_Connections_aborted":                              2,
   210  						"Client_Connections_connected":                            3,
   211  						"Client_Connections_created":                              5458991,
   212  						"Client_Connections_hostgroup_locked":                     0,
   213  						"Client_Connections_non_idle":                             3,
   214  						"Com_autocommit":                                          0,
   215  						"Com_autocommit_filtered":                                 0,
   216  						"Com_backend_change_user":                                 188694,
   217  						"Com_backend_init_db":                                     0,
   218  						"Com_backend_set_names":                                   1517893,
   219  						"Com_backend_stmt_close":                                  0,
   220  						"Com_backend_stmt_execute":                                36303146,
   221  						"Com_backend_stmt_prepare":                                16858208,
   222  						"Com_commit":                                              0,
   223  						"Com_commit_filtered":                                     0,
   224  						"Com_frontend_init_db":                                    2,
   225  						"Com_frontend_set_names":                                  0,
   226  						"Com_frontend_stmt_close":                                 32137933,
   227  						"Com_frontend_stmt_execute":                               36314138,
   228  						"Com_frontend_stmt_prepare":                               32185987,
   229  						"Com_frontend_use_db":                                     0,
   230  						"Com_rollback":                                            0,
   231  						"Com_rollback_filtered":                                   0,
   232  						"ConnPool_get_conn_failure":                               212943,
   233  						"ConnPool_get_conn_immediate":                             13361,
   234  						"ConnPool_get_conn_latency_awareness":                     0,
   235  						"ConnPool_get_conn_success":                               36319474,
   236  						"ConnPool_memory_bytes":                                   932248,
   237  						"GTID_consistent_queries":                                 0,
   238  						"GTID_session_collected":                                  0,
   239  						"Mirror_concurrency":                                      0,
   240  						"Mirror_queue_length":                                     0,
   241  						"MyHGM_myconnpoll_destroy":                                15150,
   242  						"MyHGM_myconnpoll_get":                                    36519056,
   243  						"MyHGM_myconnpoll_get_ok":                                 36306113,
   244  						"MyHGM_myconnpoll_push":                                   37358734,
   245  						"MyHGM_myconnpoll_reset":                                  2,
   246  						"MySQL_Monitor_Workers":                                   10,
   247  						"MySQL_Monitor_Workers_Aux":                               0,
   248  						"MySQL_Monitor_Workers_Started":                           10,
   249  						"MySQL_Monitor_connect_check_ERR":                         130,
   250  						"MySQL_Monitor_connect_check_OK":                          3548306,
   251  						"MySQL_Monitor_ping_check_ERR":                            108271,
   252  						"MySQL_Monitor_ping_check_OK":                             21289849,
   253  						"MySQL_Monitor_read_only_check_ERR":                       19610,
   254  						"MySQL_Monitor_read_only_check_OK":                        106246409,
   255  						"MySQL_Monitor_replication_lag_check_ERR":                 482,
   256  						"MySQL_Monitor_replication_lag_check_OK":                  28702388,
   257  						"MySQL_Thread_Workers":                                    4,
   258  						"ProxySQL_Uptime":                                         26748286,
   259  						"Queries_backends_bytes_recv":                             5896210168,
   260  						"Queries_backends_bytes_sent":                             4329581500,
   261  						"Queries_frontends_bytes_recv":                            7434816962,
   262  						"Queries_frontends_bytes_sent":                            11643634097,
   263  						"Query_Cache_Entries":                                     0,
   264  						"Query_Cache_Memory_bytes":                                0,
   265  						"Query_Cache_Purged":                                      0,
   266  						"Query_Cache_bytes_IN":                                    0,
   267  						"Query_Cache_bytes_OUT":                                   0,
   268  						"Query_Cache_count_GET":                                   0,
   269  						"Query_Cache_count_GET_OK":                                0,
   270  						"Query_Cache_count_SET":                                   0,
   271  						"Query_Processor_time_nsec":                               0,
   272  						"Questions":                                               100638067,
   273  						"SQLite3_memory_bytes":                                    6017144,
   274  						"Selects_for_update__autocommit0":                         0,
   275  						"Server_Connections_aborted":                              9979,
   276  						"Server_Connections_connected":                            13,
   277  						"Server_Connections_created":                              2122254,
   278  						"Server_Connections_delayed":                              0,
   279  						"Servers_table_version":                                   37,
   280  						"Slow_queries":                                            405818,
   281  						"Stmt_Cached":                                             65,
   282  						"Stmt_Client_Active_Total":                                18,
   283  						"Stmt_Client_Active_Unique":                               18,
   284  						"Stmt_Max_Stmt_id":                                        66,
   285  						"Stmt_Server_Active_Total":                                101,
   286  						"Stmt_Server_Active_Unique":                               39,
   287  						"automatic_detected_sql_injection":                        0,
   288  						"aws_aurora_replicas_skipped_during_query":                0,
   289  						"backend_10_back001-db-master_6001_Bytes_data_recv":       145193069937,
   290  						"backend_10_back001-db-master_6001_Bytes_data_sent":       9858463664,
   291  						"backend_10_back001-db-master_6001_ConnERR":               0,
   292  						"backend_10_back001-db-master_6001_ConnFree":              423,
   293  						"backend_10_back001-db-master_6001_ConnOK":                524,
   294  						"backend_10_back001-db-master_6001_ConnUsed":              69,
   295  						"backend_10_back001-db-master_6001_Latency_us":            17684,
   296  						"backend_10_back001-db-master_6001_Queries":               8970367,
   297  						"backend_10_back001-db-master_6001_status_OFFLINE_HARD":   0,
   298  						"backend_10_back001-db-master_6001_status_OFFLINE_SOFT":   0,
   299  						"backend_10_back001-db-master_6001_status_ONLINE":         0,
   300  						"backend_10_back001-db-master_6001_status_SHUNNED":        0,
   301  						"backend_11_back001-db-master_6002_Bytes_data_recv":       2903,
   302  						"backend_11_back001-db-master_6002_Bytes_data_sent":       187675,
   303  						"backend_11_back001-db-master_6002_ConnERR":               0,
   304  						"backend_11_back001-db-master_6002_ConnFree":              1,
   305  						"backend_11_back001-db-master_6002_ConnOK":                1,
   306  						"backend_11_back001-db-master_6002_ConnUsed":              0,
   307  						"backend_11_back001-db-master_6002_Latency_us":            17684,
   308  						"backend_11_back001-db-master_6002_Queries":               69,
   309  						"backend_11_back001-db-master_6002_status_OFFLINE_HARD":   0,
   310  						"backend_11_back001-db-master_6002_status_OFFLINE_SOFT":   0,
   311  						"backend_11_back001-db-master_6002_status_ONLINE":         0,
   312  						"backend_11_back001-db-master_6002_status_SHUNNED":        0,
   313  						"backend_11_back001-db-reader_6003_Bytes_data_recv":       4994101,
   314  						"backend_11_back001-db-reader_6003_Bytes_data_sent":       163690013,
   315  						"backend_11_back001-db-reader_6003_ConnERR":               0,
   316  						"backend_11_back001-db-reader_6003_ConnFree":              11,
   317  						"backend_11_back001-db-reader_6003_ConnOK":                11,
   318  						"backend_11_back001-db-reader_6003_ConnUsed":              0,
   319  						"backend_11_back001-db-reader_6003_Latency_us":            113,
   320  						"backend_11_back001-db-reader_6003_Queries":               63488,
   321  						"backend_11_back001-db-reader_6003_status_OFFLINE_HARD":   0,
   322  						"backend_11_back001-db-reader_6003_status_OFFLINE_SOFT":   0,
   323  						"backend_11_back001-db-reader_6003_status_ONLINE":         0,
   324  						"backend_11_back001-db-reader_6003_status_SHUNNED":        0,
   325  						"backend_20_back002-db-master_6004_Bytes_data_recv":       266034339,
   326  						"backend_20_back002-db-master_6004_Bytes_data_sent":       1086994186,
   327  						"backend_20_back002-db-master_6004_ConnERR":               2,
   328  						"backend_20_back002-db-master_6004_ConnFree":              188,
   329  						"backend_20_back002-db-master_6004_ConnOK":                197,
   330  						"backend_20_back002-db-master_6004_ConnUsed":              9,
   331  						"backend_20_back002-db-master_6004_Latency_us":            101981,
   332  						"backend_20_back002-db-master_6004_Queries":               849461,
   333  						"backend_20_back002-db-master_6004_status_OFFLINE_HARD":   0,
   334  						"backend_20_back002-db-master_6004_status_OFFLINE_SOFT":   0,
   335  						"backend_20_back002-db-master_6004_status_ONLINE":         0,
   336  						"backend_20_back002-db-master_6004_status_SHUNNED":        0,
   337  						"backend_21_back002-db-reader_6005_Bytes_data_recv":       984,
   338  						"backend_21_back002-db-reader_6005_Bytes_data_sent":       6992,
   339  						"backend_21_back002-db-reader_6005_ConnERR":               0,
   340  						"backend_21_back002-db-reader_6005_ConnFree":              1,
   341  						"backend_21_back002-db-reader_6005_ConnOK":                1,
   342  						"backend_21_back002-db-reader_6005_ConnUsed":              0,
   343  						"backend_21_back002-db-reader_6005_Latency_us":            230,
   344  						"backend_21_back002-db-reader_6005_Queries":               8,
   345  						"backend_21_back002-db-reader_6005_status_OFFLINE_HARD":   0,
   346  						"backend_21_back002-db-reader_6005_status_OFFLINE_SOFT":   0,
   347  						"backend_21_back002-db-reader_6005_status_ONLINE":         0,
   348  						"backend_21_back002-db-reader_6005_status_SHUNNED":        0,
   349  						"backend_31_back003-db-master_6006_Bytes_data_recv":       81438709,
   350  						"backend_31_back003-db-master_6006_Bytes_data_sent":       712803,
   351  						"backend_31_back003-db-master_6006_ConnERR":               0,
   352  						"backend_31_back003-db-master_6006_ConnFree":              3,
   353  						"backend_31_back003-db-master_6006_ConnOK":                3,
   354  						"backend_31_back003-db-master_6006_ConnUsed":              0,
   355  						"backend_31_back003-db-master_6006_Latency_us":            231,
   356  						"backend_31_back003-db-master_6006_Queries":               3276,
   357  						"backend_31_back003-db-master_6006_status_OFFLINE_HARD":   0,
   358  						"backend_31_back003-db-master_6006_status_OFFLINE_SOFT":   0,
   359  						"backend_31_back003-db-master_6006_status_ONLINE":         0,
   360  						"backend_31_back003-db-master_6006_status_SHUNNED":        0,
   361  						"backend_31_back003-db-reader_6007_Bytes_data_recv":       115810708275,
   362  						"backend_31_back003-db-reader_6007_Bytes_data_sent":       411900849,
   363  						"backend_31_back003-db-reader_6007_ConnERR":               0,
   364  						"backend_31_back003-db-reader_6007_ConnFree":              70,
   365  						"backend_31_back003-db-reader_6007_ConnOK":                71,
   366  						"backend_31_back003-db-reader_6007_ConnUsed":              1,
   367  						"backend_31_back003-db-reader_6007_Latency_us":            230,
   368  						"backend_31_back003-db-reader_6007_Queries":               2356904,
   369  						"backend_31_back003-db-reader_6007_status_OFFLINE_HARD":   0,
   370  						"backend_31_back003-db-reader_6007_status_OFFLINE_SOFT":   0,
   371  						"backend_31_back003-db-reader_6007_status_ONLINE":         0,
   372  						"backend_31_back003-db-reader_6007_status_SHUNNED":        0,
   373  						"backend_lagging_during_query":                            8880,
   374  						"backend_offline_during_query":                            8,
   375  						"generated_error_packets":                                 231,
   376  						"hostgroup_locked_queries":                                0,
   377  						"hostgroup_locked_set_cmds":                               0,
   378  						"jemalloc_active":                                         385101824,
   379  						"jemalloc_allocated":                                      379402432,
   380  						"jemalloc_mapped":                                         430993408,
   381  						"jemalloc_metadata":                                       17418872,
   382  						"jemalloc_resident":                                       403759104,
   383  						"jemalloc_retained":                                       260542464,
   384  						"max_connect_timeouts":                                    227,
   385  						"mysql_backend_buffers_bytes":                             0,
   386  						"mysql_command_ALTER_TABLE_Total_Time_us":                 0,
   387  						"mysql_command_ALTER_TABLE_Total_cnt":                     0,
   388  						"mysql_command_ALTER_TABLE_cnt_100ms":                     0,
   389  						"mysql_command_ALTER_TABLE_cnt_100us":                     0,
   390  						"mysql_command_ALTER_TABLE_cnt_10ms":                      0,
   391  						"mysql_command_ALTER_TABLE_cnt_10s":                       0,
   392  						"mysql_command_ALTER_TABLE_cnt_1ms":                       0,
   393  						"mysql_command_ALTER_TABLE_cnt_1s":                        0,
   394  						"mysql_command_ALTER_TABLE_cnt_500ms":                     0,
   395  						"mysql_command_ALTER_TABLE_cnt_500us":                     0,
   396  						"mysql_command_ALTER_TABLE_cnt_50ms":                      0,
   397  						"mysql_command_ALTER_TABLE_cnt_5ms":                       0,
   398  						"mysql_command_ALTER_TABLE_cnt_5s":                        0,
   399  						"mysql_command_ALTER_TABLE_cnt_INFs":                      0,
   400  						"mysql_command_ALTER_VIEW_Total_Time_us":                  0,
   401  						"mysql_command_ALTER_VIEW_Total_cnt":                      0,
   402  						"mysql_command_ALTER_VIEW_cnt_100ms":                      0,
   403  						"mysql_command_ALTER_VIEW_cnt_100us":                      0,
   404  						"mysql_command_ALTER_VIEW_cnt_10ms":                       0,
   405  						"mysql_command_ALTER_VIEW_cnt_10s":                        0,
   406  						"mysql_command_ALTER_VIEW_cnt_1ms":                        0,
   407  						"mysql_command_ALTER_VIEW_cnt_1s":                         0,
   408  						"mysql_command_ALTER_VIEW_cnt_500ms":                      0,
   409  						"mysql_command_ALTER_VIEW_cnt_500us":                      0,
   410  						"mysql_command_ALTER_VIEW_cnt_50ms":                       0,
   411  						"mysql_command_ALTER_VIEW_cnt_5ms":                        0,
   412  						"mysql_command_ALTER_VIEW_cnt_5s":                         0,
   413  						"mysql_command_ALTER_VIEW_cnt_INFs":                       0,
   414  						"mysql_command_ANALYZE_TABLE_Total_Time_us":               0,
   415  						"mysql_command_ANALYZE_TABLE_Total_cnt":                   0,
   416  						"mysql_command_ANALYZE_TABLE_cnt_100ms":                   0,
   417  						"mysql_command_ANALYZE_TABLE_cnt_100us":                   0,
   418  						"mysql_command_ANALYZE_TABLE_cnt_10ms":                    0,
   419  						"mysql_command_ANALYZE_TABLE_cnt_10s":                     0,
   420  						"mysql_command_ANALYZE_TABLE_cnt_1ms":                     0,
   421  						"mysql_command_ANALYZE_TABLE_cnt_1s":                      0,
   422  						"mysql_command_ANALYZE_TABLE_cnt_500ms":                   0,
   423  						"mysql_command_ANALYZE_TABLE_cnt_500us":                   0,
   424  						"mysql_command_ANALYZE_TABLE_cnt_50ms":                    0,
   425  						"mysql_command_ANALYZE_TABLE_cnt_5ms":                     0,
   426  						"mysql_command_ANALYZE_TABLE_cnt_5s":                      0,
   427  						"mysql_command_ANALYZE_TABLE_cnt_INFs":                    0,
   428  						"mysql_command_BEGIN_Total_Time_us":                       0,
   429  						"mysql_command_BEGIN_Total_cnt":                           0,
   430  						"mysql_command_BEGIN_cnt_100ms":                           0,
   431  						"mysql_command_BEGIN_cnt_100us":                           0,
   432  						"mysql_command_BEGIN_cnt_10ms":                            0,
   433  						"mysql_command_BEGIN_cnt_10s":                             0,
   434  						"mysql_command_BEGIN_cnt_1ms":                             0,
   435  						"mysql_command_BEGIN_cnt_1s":                              0,
   436  						"mysql_command_BEGIN_cnt_500ms":                           0,
   437  						"mysql_command_BEGIN_cnt_500us":                           0,
   438  						"mysql_command_BEGIN_cnt_50ms":                            0,
   439  						"mysql_command_BEGIN_cnt_5ms":                             0,
   440  						"mysql_command_BEGIN_cnt_5s":                              0,
   441  						"mysql_command_BEGIN_cnt_INFs":                            0,
   442  						"mysql_command_CALL_Total_Time_us":                        0,
   443  						"mysql_command_CALL_Total_cnt":                            0,
   444  						"mysql_command_CALL_cnt_100ms":                            0,
   445  						"mysql_command_CALL_cnt_100us":                            0,
   446  						"mysql_command_CALL_cnt_10ms":                             0,
   447  						"mysql_command_CALL_cnt_10s":                              0,
   448  						"mysql_command_CALL_cnt_1ms":                              0,
   449  						"mysql_command_CALL_cnt_1s":                               0,
   450  						"mysql_command_CALL_cnt_500ms":                            0,
   451  						"mysql_command_CALL_cnt_500us":                            0,
   452  						"mysql_command_CALL_cnt_50ms":                             0,
   453  						"mysql_command_CALL_cnt_5ms":                              0,
   454  						"mysql_command_CALL_cnt_5s":                               0,
   455  						"mysql_command_CALL_cnt_INFs":                             0,
   456  						"mysql_command_CHANGE_MASTER_Total_Time_us":               0,
   457  						"mysql_command_CHANGE_MASTER_Total_cnt":                   0,
   458  						"mysql_command_CHANGE_MASTER_cnt_100ms":                   0,
   459  						"mysql_command_CHANGE_MASTER_cnt_100us":                   0,
   460  						"mysql_command_CHANGE_MASTER_cnt_10ms":                    0,
   461  						"mysql_command_CHANGE_MASTER_cnt_10s":                     0,
   462  						"mysql_command_CHANGE_MASTER_cnt_1ms":                     0,
   463  						"mysql_command_CHANGE_MASTER_cnt_1s":                      0,
   464  						"mysql_command_CHANGE_MASTER_cnt_500ms":                   0,
   465  						"mysql_command_CHANGE_MASTER_cnt_500us":                   0,
   466  						"mysql_command_CHANGE_MASTER_cnt_50ms":                    0,
   467  						"mysql_command_CHANGE_MASTER_cnt_5ms":                     0,
   468  						"mysql_command_CHANGE_MASTER_cnt_5s":                      0,
   469  						"mysql_command_CHANGE_MASTER_cnt_INFs":                    0,
   470  						"mysql_command_COMMIT_Total_Time_us":                      0,
   471  						"mysql_command_COMMIT_Total_cnt":                          0,
   472  						"mysql_command_COMMIT_cnt_100ms":                          0,
   473  						"mysql_command_COMMIT_cnt_100us":                          0,
   474  						"mysql_command_COMMIT_cnt_10ms":                           0,
   475  						"mysql_command_COMMIT_cnt_10s":                            0,
   476  						"mysql_command_COMMIT_cnt_1ms":                            0,
   477  						"mysql_command_COMMIT_cnt_1s":                             0,
   478  						"mysql_command_COMMIT_cnt_500ms":                          0,
   479  						"mysql_command_COMMIT_cnt_500us":                          0,
   480  						"mysql_command_COMMIT_cnt_50ms":                           0,
   481  						"mysql_command_COMMIT_cnt_5ms":                            0,
   482  						"mysql_command_COMMIT_cnt_5s":                             0,
   483  						"mysql_command_COMMIT_cnt_INFs":                           0,
   484  						"mysql_command_CREATE_DATABASE_Total_Time_us":             0,
   485  						"mysql_command_CREATE_DATABASE_Total_cnt":                 0,
   486  						"mysql_command_CREATE_DATABASE_cnt_100ms":                 0,
   487  						"mysql_command_CREATE_DATABASE_cnt_100us":                 0,
   488  						"mysql_command_CREATE_DATABASE_cnt_10ms":                  0,
   489  						"mysql_command_CREATE_DATABASE_cnt_10s":                   0,
   490  						"mysql_command_CREATE_DATABASE_cnt_1ms":                   0,
   491  						"mysql_command_CREATE_DATABASE_cnt_1s":                    0,
   492  						"mysql_command_CREATE_DATABASE_cnt_500ms":                 0,
   493  						"mysql_command_CREATE_DATABASE_cnt_500us":                 0,
   494  						"mysql_command_CREATE_DATABASE_cnt_50ms":                  0,
   495  						"mysql_command_CREATE_DATABASE_cnt_5ms":                   0,
   496  						"mysql_command_CREATE_DATABASE_cnt_5s":                    0,
   497  						"mysql_command_CREATE_DATABASE_cnt_INFs":                  0,
   498  						"mysql_command_CREATE_INDEX_Total_Time_us":                0,
   499  						"mysql_command_CREATE_INDEX_Total_cnt":                    0,
   500  						"mysql_command_CREATE_INDEX_cnt_100ms":                    0,
   501  						"mysql_command_CREATE_INDEX_cnt_100us":                    0,
   502  						"mysql_command_CREATE_INDEX_cnt_10ms":                     0,
   503  						"mysql_command_CREATE_INDEX_cnt_10s":                      0,
   504  						"mysql_command_CREATE_INDEX_cnt_1ms":                      0,
   505  						"mysql_command_CREATE_INDEX_cnt_1s":                       0,
   506  						"mysql_command_CREATE_INDEX_cnt_500ms":                    0,
   507  						"mysql_command_CREATE_INDEX_cnt_500us":                    0,
   508  						"mysql_command_CREATE_INDEX_cnt_50ms":                     0,
   509  						"mysql_command_CREATE_INDEX_cnt_5ms":                      0,
   510  						"mysql_command_CREATE_INDEX_cnt_5s":                       0,
   511  						"mysql_command_CREATE_INDEX_cnt_INFs":                     0,
   512  						"mysql_command_CREATE_TABLE_Total_Time_us":                0,
   513  						"mysql_command_CREATE_TABLE_Total_cnt":                    0,
   514  						"mysql_command_CREATE_TABLE_cnt_100ms":                    0,
   515  						"mysql_command_CREATE_TABLE_cnt_100us":                    0,
   516  						"mysql_command_CREATE_TABLE_cnt_10ms":                     0,
   517  						"mysql_command_CREATE_TABLE_cnt_10s":                      0,
   518  						"mysql_command_CREATE_TABLE_cnt_1ms":                      0,
   519  						"mysql_command_CREATE_TABLE_cnt_1s":                       0,
   520  						"mysql_command_CREATE_TABLE_cnt_500ms":                    0,
   521  						"mysql_command_CREATE_TABLE_cnt_500us":                    0,
   522  						"mysql_command_CREATE_TABLE_cnt_50ms":                     0,
   523  						"mysql_command_CREATE_TABLE_cnt_5ms":                      0,
   524  						"mysql_command_CREATE_TABLE_cnt_5s":                       0,
   525  						"mysql_command_CREATE_TABLE_cnt_INFs":                     0,
   526  						"mysql_command_CREATE_TEMPORARY_Total_Time_us":            0,
   527  						"mysql_command_CREATE_TEMPORARY_Total_cnt":                0,
   528  						"mysql_command_CREATE_TEMPORARY_cnt_100ms":                0,
   529  						"mysql_command_CREATE_TEMPORARY_cnt_100us":                0,
   530  						"mysql_command_CREATE_TEMPORARY_cnt_10ms":                 0,
   531  						"mysql_command_CREATE_TEMPORARY_cnt_10s":                  0,
   532  						"mysql_command_CREATE_TEMPORARY_cnt_1ms":                  0,
   533  						"mysql_command_CREATE_TEMPORARY_cnt_1s":                   0,
   534  						"mysql_command_CREATE_TEMPORARY_cnt_500ms":                0,
   535  						"mysql_command_CREATE_TEMPORARY_cnt_500us":                0,
   536  						"mysql_command_CREATE_TEMPORARY_cnt_50ms":                 0,
   537  						"mysql_command_CREATE_TEMPORARY_cnt_5ms":                  0,
   538  						"mysql_command_CREATE_TEMPORARY_cnt_5s":                   0,
   539  						"mysql_command_CREATE_TEMPORARY_cnt_INFs":                 0,
   540  						"mysql_command_CREATE_TRIGGER_Total_Time_us":              0,
   541  						"mysql_command_CREATE_TRIGGER_Total_cnt":                  0,
   542  						"mysql_command_CREATE_TRIGGER_cnt_100ms":                  0,
   543  						"mysql_command_CREATE_TRIGGER_cnt_100us":                  0,
   544  						"mysql_command_CREATE_TRIGGER_cnt_10ms":                   0,
   545  						"mysql_command_CREATE_TRIGGER_cnt_10s":                    0,
   546  						"mysql_command_CREATE_TRIGGER_cnt_1ms":                    0,
   547  						"mysql_command_CREATE_TRIGGER_cnt_1s":                     0,
   548  						"mysql_command_CREATE_TRIGGER_cnt_500ms":                  0,
   549  						"mysql_command_CREATE_TRIGGER_cnt_500us":                  0,
   550  						"mysql_command_CREATE_TRIGGER_cnt_50ms":                   0,
   551  						"mysql_command_CREATE_TRIGGER_cnt_5ms":                    0,
   552  						"mysql_command_CREATE_TRIGGER_cnt_5s":                     0,
   553  						"mysql_command_CREATE_TRIGGER_cnt_INFs":                   0,
   554  						"mysql_command_CREATE_USER_Total_Time_us":                 0,
   555  						"mysql_command_CREATE_USER_Total_cnt":                     0,
   556  						"mysql_command_CREATE_USER_cnt_100ms":                     0,
   557  						"mysql_command_CREATE_USER_cnt_100us":                     0,
   558  						"mysql_command_CREATE_USER_cnt_10ms":                      0,
   559  						"mysql_command_CREATE_USER_cnt_10s":                       0,
   560  						"mysql_command_CREATE_USER_cnt_1ms":                       0,
   561  						"mysql_command_CREATE_USER_cnt_1s":                        0,
   562  						"mysql_command_CREATE_USER_cnt_500ms":                     0,
   563  						"mysql_command_CREATE_USER_cnt_500us":                     0,
   564  						"mysql_command_CREATE_USER_cnt_50ms":                      0,
   565  						"mysql_command_CREATE_USER_cnt_5ms":                       0,
   566  						"mysql_command_CREATE_USER_cnt_5s":                        0,
   567  						"mysql_command_CREATE_USER_cnt_INFs":                      0,
   568  						"mysql_command_CREATE_VIEW_Total_Time_us":                 0,
   569  						"mysql_command_CREATE_VIEW_Total_cnt":                     0,
   570  						"mysql_command_CREATE_VIEW_cnt_100ms":                     0,
   571  						"mysql_command_CREATE_VIEW_cnt_100us":                     0,
   572  						"mysql_command_CREATE_VIEW_cnt_10ms":                      0,
   573  						"mysql_command_CREATE_VIEW_cnt_10s":                       0,
   574  						"mysql_command_CREATE_VIEW_cnt_1ms":                       0,
   575  						"mysql_command_CREATE_VIEW_cnt_1s":                        0,
   576  						"mysql_command_CREATE_VIEW_cnt_500ms":                     0,
   577  						"mysql_command_CREATE_VIEW_cnt_500us":                     0,
   578  						"mysql_command_CREATE_VIEW_cnt_50ms":                      0,
   579  						"mysql_command_CREATE_VIEW_cnt_5ms":                       0,
   580  						"mysql_command_CREATE_VIEW_cnt_5s":                        0,
   581  						"mysql_command_CREATE_VIEW_cnt_INFs":                      0,
   582  						"mysql_command_DEALLOCATE_Total_Time_us":                  0,
   583  						"mysql_command_DEALLOCATE_Total_cnt":                      0,
   584  						"mysql_command_DEALLOCATE_cnt_100ms":                      0,
   585  						"mysql_command_DEALLOCATE_cnt_100us":                      0,
   586  						"mysql_command_DEALLOCATE_cnt_10ms":                       0,
   587  						"mysql_command_DEALLOCATE_cnt_10s":                        0,
   588  						"mysql_command_DEALLOCATE_cnt_1ms":                        0,
   589  						"mysql_command_DEALLOCATE_cnt_1s":                         0,
   590  						"mysql_command_DEALLOCATE_cnt_500ms":                      0,
   591  						"mysql_command_DEALLOCATE_cnt_500us":                      0,
   592  						"mysql_command_DEALLOCATE_cnt_50ms":                       0,
   593  						"mysql_command_DEALLOCATE_cnt_5ms":                        0,
   594  						"mysql_command_DEALLOCATE_cnt_5s":                         0,
   595  						"mysql_command_DEALLOCATE_cnt_INFs":                       0,
   596  						"mysql_command_DELETE_Total_Time_us":                      0,
   597  						"mysql_command_DELETE_Total_cnt":                          0,
   598  						"mysql_command_DELETE_cnt_100ms":                          0,
   599  						"mysql_command_DELETE_cnt_100us":                          0,
   600  						"mysql_command_DELETE_cnt_10ms":                           0,
   601  						"mysql_command_DELETE_cnt_10s":                            0,
   602  						"mysql_command_DELETE_cnt_1ms":                            0,
   603  						"mysql_command_DELETE_cnt_1s":                             0,
   604  						"mysql_command_DELETE_cnt_500ms":                          0,
   605  						"mysql_command_DELETE_cnt_500us":                          0,
   606  						"mysql_command_DELETE_cnt_50ms":                           0,
   607  						"mysql_command_DELETE_cnt_5ms":                            0,
   608  						"mysql_command_DELETE_cnt_5s":                             0,
   609  						"mysql_command_DELETE_cnt_INFs":                           0,
   610  						"mysql_command_DESCRIBE_Total_Time_us":                    0,
   611  						"mysql_command_DESCRIBE_Total_cnt":                        0,
   612  						"mysql_command_DESCRIBE_cnt_100ms":                        0,
   613  						"mysql_command_DESCRIBE_cnt_100us":                        0,
   614  						"mysql_command_DESCRIBE_cnt_10ms":                         0,
   615  						"mysql_command_DESCRIBE_cnt_10s":                          0,
   616  						"mysql_command_DESCRIBE_cnt_1ms":                          0,
   617  						"mysql_command_DESCRIBE_cnt_1s":                           0,
   618  						"mysql_command_DESCRIBE_cnt_500ms":                        0,
   619  						"mysql_command_DESCRIBE_cnt_500us":                        0,
   620  						"mysql_command_DESCRIBE_cnt_50ms":                         0,
   621  						"mysql_command_DESCRIBE_cnt_5ms":                          0,
   622  						"mysql_command_DESCRIBE_cnt_5s":                           0,
   623  						"mysql_command_DESCRIBE_cnt_INFs":                         0,
   624  						"mysql_command_DROP_DATABASE_Total_Time_us":               0,
   625  						"mysql_command_DROP_DATABASE_Total_cnt":                   0,
   626  						"mysql_command_DROP_DATABASE_cnt_100ms":                   0,
   627  						"mysql_command_DROP_DATABASE_cnt_100us":                   0,
   628  						"mysql_command_DROP_DATABASE_cnt_10ms":                    0,
   629  						"mysql_command_DROP_DATABASE_cnt_10s":                     0,
   630  						"mysql_command_DROP_DATABASE_cnt_1ms":                     0,
   631  						"mysql_command_DROP_DATABASE_cnt_1s":                      0,
   632  						"mysql_command_DROP_DATABASE_cnt_500ms":                   0,
   633  						"mysql_command_DROP_DATABASE_cnt_500us":                   0,
   634  						"mysql_command_DROP_DATABASE_cnt_50ms":                    0,
   635  						"mysql_command_DROP_DATABASE_cnt_5ms":                     0,
   636  						"mysql_command_DROP_DATABASE_cnt_5s":                      0,
   637  						"mysql_command_DROP_DATABASE_cnt_INFs":                    0,
   638  						"mysql_command_DROP_INDEX_Total_Time_us":                  0,
   639  						"mysql_command_DROP_INDEX_Total_cnt":                      0,
   640  						"mysql_command_DROP_INDEX_cnt_100ms":                      0,
   641  						"mysql_command_DROP_INDEX_cnt_100us":                      0,
   642  						"mysql_command_DROP_INDEX_cnt_10ms":                       0,
   643  						"mysql_command_DROP_INDEX_cnt_10s":                        0,
   644  						"mysql_command_DROP_INDEX_cnt_1ms":                        0,
   645  						"mysql_command_DROP_INDEX_cnt_1s":                         0,
   646  						"mysql_command_DROP_INDEX_cnt_500ms":                      0,
   647  						"mysql_command_DROP_INDEX_cnt_500us":                      0,
   648  						"mysql_command_DROP_INDEX_cnt_50ms":                       0,
   649  						"mysql_command_DROP_INDEX_cnt_5ms":                        0,
   650  						"mysql_command_DROP_INDEX_cnt_5s":                         0,
   651  						"mysql_command_DROP_INDEX_cnt_INFs":                       0,
   652  						"mysql_command_DROP_TABLE_Total_Time_us":                  0,
   653  						"mysql_command_DROP_TABLE_Total_cnt":                      0,
   654  						"mysql_command_DROP_TABLE_cnt_100ms":                      0,
   655  						"mysql_command_DROP_TABLE_cnt_100us":                      0,
   656  						"mysql_command_DROP_TABLE_cnt_10ms":                       0,
   657  						"mysql_command_DROP_TABLE_cnt_10s":                        0,
   658  						"mysql_command_DROP_TABLE_cnt_1ms":                        0,
   659  						"mysql_command_DROP_TABLE_cnt_1s":                         0,
   660  						"mysql_command_DROP_TABLE_cnt_500ms":                      0,
   661  						"mysql_command_DROP_TABLE_cnt_500us":                      0,
   662  						"mysql_command_DROP_TABLE_cnt_50ms":                       0,
   663  						"mysql_command_DROP_TABLE_cnt_5ms":                        0,
   664  						"mysql_command_DROP_TABLE_cnt_5s":                         0,
   665  						"mysql_command_DROP_TABLE_cnt_INFs":                       0,
   666  						"mysql_command_DROP_TRIGGER_Total_Time_us":                0,
   667  						"mysql_command_DROP_TRIGGER_Total_cnt":                    0,
   668  						"mysql_command_DROP_TRIGGER_cnt_100ms":                    0,
   669  						"mysql_command_DROP_TRIGGER_cnt_100us":                    0,
   670  						"mysql_command_DROP_TRIGGER_cnt_10ms":                     0,
   671  						"mysql_command_DROP_TRIGGER_cnt_10s":                      0,
   672  						"mysql_command_DROP_TRIGGER_cnt_1ms":                      0,
   673  						"mysql_command_DROP_TRIGGER_cnt_1s":                       0,
   674  						"mysql_command_DROP_TRIGGER_cnt_500ms":                    0,
   675  						"mysql_command_DROP_TRIGGER_cnt_500us":                    0,
   676  						"mysql_command_DROP_TRIGGER_cnt_50ms":                     0,
   677  						"mysql_command_DROP_TRIGGER_cnt_5ms":                      0,
   678  						"mysql_command_DROP_TRIGGER_cnt_5s":                       0,
   679  						"mysql_command_DROP_TRIGGER_cnt_INFs":                     0,
   680  						"mysql_command_DROP_USER_Total_Time_us":                   0,
   681  						"mysql_command_DROP_USER_Total_cnt":                       0,
   682  						"mysql_command_DROP_USER_cnt_100ms":                       0,
   683  						"mysql_command_DROP_USER_cnt_100us":                       0,
   684  						"mysql_command_DROP_USER_cnt_10ms":                        0,
   685  						"mysql_command_DROP_USER_cnt_10s":                         0,
   686  						"mysql_command_DROP_USER_cnt_1ms":                         0,
   687  						"mysql_command_DROP_USER_cnt_1s":                          0,
   688  						"mysql_command_DROP_USER_cnt_500ms":                       0,
   689  						"mysql_command_DROP_USER_cnt_500us":                       0,
   690  						"mysql_command_DROP_USER_cnt_50ms":                        0,
   691  						"mysql_command_DROP_USER_cnt_5ms":                         0,
   692  						"mysql_command_DROP_USER_cnt_5s":                          0,
   693  						"mysql_command_DROP_USER_cnt_INFs":                        0,
   694  						"mysql_command_DROP_VIEW_Total_Time_us":                   0,
   695  						"mysql_command_DROP_VIEW_Total_cnt":                       0,
   696  						"mysql_command_DROP_VIEW_cnt_100ms":                       0,
   697  						"mysql_command_DROP_VIEW_cnt_100us":                       0,
   698  						"mysql_command_DROP_VIEW_cnt_10ms":                        0,
   699  						"mysql_command_DROP_VIEW_cnt_10s":                         0,
   700  						"mysql_command_DROP_VIEW_cnt_1ms":                         0,
   701  						"mysql_command_DROP_VIEW_cnt_1s":                          0,
   702  						"mysql_command_DROP_VIEW_cnt_500ms":                       0,
   703  						"mysql_command_DROP_VIEW_cnt_500us":                       0,
   704  						"mysql_command_DROP_VIEW_cnt_50ms":                        0,
   705  						"mysql_command_DROP_VIEW_cnt_5ms":                         0,
   706  						"mysql_command_DROP_VIEW_cnt_5s":                          0,
   707  						"mysql_command_DROP_VIEW_cnt_INFs":                        0,
   708  						"mysql_command_EXECUTE_Total_Time_us":                     0,
   709  						"mysql_command_EXECUTE_Total_cnt":                         0,
   710  						"mysql_command_EXECUTE_cnt_100ms":                         0,
   711  						"mysql_command_EXECUTE_cnt_100us":                         0,
   712  						"mysql_command_EXECUTE_cnt_10ms":                          0,
   713  						"mysql_command_EXECUTE_cnt_10s":                           0,
   714  						"mysql_command_EXECUTE_cnt_1ms":                           0,
   715  						"mysql_command_EXECUTE_cnt_1s":                            0,
   716  						"mysql_command_EXECUTE_cnt_500ms":                         0,
   717  						"mysql_command_EXECUTE_cnt_500us":                         0,
   718  						"mysql_command_EXECUTE_cnt_50ms":                          0,
   719  						"mysql_command_EXECUTE_cnt_5ms":                           0,
   720  						"mysql_command_EXECUTE_cnt_5s":                            0,
   721  						"mysql_command_EXECUTE_cnt_INFs":                          0,
   722  						"mysql_command_EXPLAIN_Total_Time_us":                     0,
   723  						"mysql_command_EXPLAIN_Total_cnt":                         0,
   724  						"mysql_command_EXPLAIN_cnt_100ms":                         0,
   725  						"mysql_command_EXPLAIN_cnt_100us":                         0,
   726  						"mysql_command_EXPLAIN_cnt_10ms":                          0,
   727  						"mysql_command_EXPLAIN_cnt_10s":                           0,
   728  						"mysql_command_EXPLAIN_cnt_1ms":                           0,
   729  						"mysql_command_EXPLAIN_cnt_1s":                            0,
   730  						"mysql_command_EXPLAIN_cnt_500ms":                         0,
   731  						"mysql_command_EXPLAIN_cnt_500us":                         0,
   732  						"mysql_command_EXPLAIN_cnt_50ms":                          0,
   733  						"mysql_command_EXPLAIN_cnt_5ms":                           0,
   734  						"mysql_command_EXPLAIN_cnt_5s":                            0,
   735  						"mysql_command_EXPLAIN_cnt_INFs":                          0,
   736  						"mysql_command_FLUSH_Total_Time_us":                       0,
   737  						"mysql_command_FLUSH_Total_cnt":                           0,
   738  						"mysql_command_FLUSH_cnt_100ms":                           0,
   739  						"mysql_command_FLUSH_cnt_100us":                           0,
   740  						"mysql_command_FLUSH_cnt_10ms":                            0,
   741  						"mysql_command_FLUSH_cnt_10s":                             0,
   742  						"mysql_command_FLUSH_cnt_1ms":                             0,
   743  						"mysql_command_FLUSH_cnt_1s":                              0,
   744  						"mysql_command_FLUSH_cnt_500ms":                           0,
   745  						"mysql_command_FLUSH_cnt_500us":                           0,
   746  						"mysql_command_FLUSH_cnt_50ms":                            0,
   747  						"mysql_command_FLUSH_cnt_5ms":                             0,
   748  						"mysql_command_FLUSH_cnt_5s":                              0,
   749  						"mysql_command_FLUSH_cnt_INFs":                            0,
   750  						"mysql_command_GRANT_Total_Time_us":                       0,
   751  						"mysql_command_GRANT_Total_cnt":                           0,
   752  						"mysql_command_GRANT_cnt_100ms":                           0,
   753  						"mysql_command_GRANT_cnt_100us":                           0,
   754  						"mysql_command_GRANT_cnt_10ms":                            0,
   755  						"mysql_command_GRANT_cnt_10s":                             0,
   756  						"mysql_command_GRANT_cnt_1ms":                             0,
   757  						"mysql_command_GRANT_cnt_1s":                              0,
   758  						"mysql_command_GRANT_cnt_500ms":                           0,
   759  						"mysql_command_GRANT_cnt_500us":                           0,
   760  						"mysql_command_GRANT_cnt_50ms":                            0,
   761  						"mysql_command_GRANT_cnt_5ms":                             0,
   762  						"mysql_command_GRANT_cnt_5s":                              0,
   763  						"mysql_command_GRANT_cnt_INFs":                            0,
   764  						"mysql_command_INSERT_Total_Time_us":                      0,
   765  						"mysql_command_INSERT_Total_cnt":                          0,
   766  						"mysql_command_INSERT_cnt_100ms":                          0,
   767  						"mysql_command_INSERT_cnt_100us":                          0,
   768  						"mysql_command_INSERT_cnt_10ms":                           0,
   769  						"mysql_command_INSERT_cnt_10s":                            0,
   770  						"mysql_command_INSERT_cnt_1ms":                            0,
   771  						"mysql_command_INSERT_cnt_1s":                             0,
   772  						"mysql_command_INSERT_cnt_500ms":                          0,
   773  						"mysql_command_INSERT_cnt_500us":                          0,
   774  						"mysql_command_INSERT_cnt_50ms":                           0,
   775  						"mysql_command_INSERT_cnt_5ms":                            0,
   776  						"mysql_command_INSERT_cnt_5s":                             0,
   777  						"mysql_command_INSERT_cnt_INFs":                           0,
   778  						"mysql_command_KILL_Total_Time_us":                        0,
   779  						"mysql_command_KILL_Total_cnt":                            0,
   780  						"mysql_command_KILL_cnt_100ms":                            0,
   781  						"mysql_command_KILL_cnt_100us":                            0,
   782  						"mysql_command_KILL_cnt_10ms":                             0,
   783  						"mysql_command_KILL_cnt_10s":                              0,
   784  						"mysql_command_KILL_cnt_1ms":                              0,
   785  						"mysql_command_KILL_cnt_1s":                               0,
   786  						"mysql_command_KILL_cnt_500ms":                            0,
   787  						"mysql_command_KILL_cnt_500us":                            0,
   788  						"mysql_command_KILL_cnt_50ms":                             0,
   789  						"mysql_command_KILL_cnt_5ms":                              0,
   790  						"mysql_command_KILL_cnt_5s":                               0,
   791  						"mysql_command_KILL_cnt_INFs":                             0,
   792  						"mysql_command_LOAD_Total_Time_us":                        0,
   793  						"mysql_command_LOAD_Total_cnt":                            0,
   794  						"mysql_command_LOAD_cnt_100ms":                            0,
   795  						"mysql_command_LOAD_cnt_100us":                            0,
   796  						"mysql_command_LOAD_cnt_10ms":                             0,
   797  						"mysql_command_LOAD_cnt_10s":                              0,
   798  						"mysql_command_LOAD_cnt_1ms":                              0,
   799  						"mysql_command_LOAD_cnt_1s":                               0,
   800  						"mysql_command_LOAD_cnt_500ms":                            0,
   801  						"mysql_command_LOAD_cnt_500us":                            0,
   802  						"mysql_command_LOAD_cnt_50ms":                             0,
   803  						"mysql_command_LOAD_cnt_5ms":                              0,
   804  						"mysql_command_LOAD_cnt_5s":                               0,
   805  						"mysql_command_LOAD_cnt_INFs":                             0,
   806  						"mysql_command_LOCK_TABLE_Total_Time_us":                  0,
   807  						"mysql_command_LOCK_TABLE_Total_cnt":                      0,
   808  						"mysql_command_LOCK_TABLE_cnt_100ms":                      0,
   809  						"mysql_command_LOCK_TABLE_cnt_100us":                      0,
   810  						"mysql_command_LOCK_TABLE_cnt_10ms":                       0,
   811  						"mysql_command_LOCK_TABLE_cnt_10s":                        0,
   812  						"mysql_command_LOCK_TABLE_cnt_1ms":                        0,
   813  						"mysql_command_LOCK_TABLE_cnt_1s":                         0,
   814  						"mysql_command_LOCK_TABLE_cnt_500ms":                      0,
   815  						"mysql_command_LOCK_TABLE_cnt_500us":                      0,
   816  						"mysql_command_LOCK_TABLE_cnt_50ms":                       0,
   817  						"mysql_command_LOCK_TABLE_cnt_5ms":                        0,
   818  						"mysql_command_LOCK_TABLE_cnt_5s":                         0,
   819  						"mysql_command_LOCK_TABLE_cnt_INFs":                       0,
   820  						"mysql_command_OPTIMIZE_Total_Time_us":                    0,
   821  						"mysql_command_OPTIMIZE_Total_cnt":                        0,
   822  						"mysql_command_OPTIMIZE_cnt_100ms":                        0,
   823  						"mysql_command_OPTIMIZE_cnt_100us":                        0,
   824  						"mysql_command_OPTIMIZE_cnt_10ms":                         0,
   825  						"mysql_command_OPTIMIZE_cnt_10s":                          0,
   826  						"mysql_command_OPTIMIZE_cnt_1ms":                          0,
   827  						"mysql_command_OPTIMIZE_cnt_1s":                           0,
   828  						"mysql_command_OPTIMIZE_cnt_500ms":                        0,
   829  						"mysql_command_OPTIMIZE_cnt_500us":                        0,
   830  						"mysql_command_OPTIMIZE_cnt_50ms":                         0,
   831  						"mysql_command_OPTIMIZE_cnt_5ms":                          0,
   832  						"mysql_command_OPTIMIZE_cnt_5s":                           0,
   833  						"mysql_command_OPTIMIZE_cnt_INFs":                         0,
   834  						"mysql_command_PREPARE_Total_Time_us":                     0,
   835  						"mysql_command_PREPARE_Total_cnt":                         0,
   836  						"mysql_command_PREPARE_cnt_100ms":                         0,
   837  						"mysql_command_PREPARE_cnt_100us":                         0,
   838  						"mysql_command_PREPARE_cnt_10ms":                          0,
   839  						"mysql_command_PREPARE_cnt_10s":                           0,
   840  						"mysql_command_PREPARE_cnt_1ms":                           0,
   841  						"mysql_command_PREPARE_cnt_1s":                            0,
   842  						"mysql_command_PREPARE_cnt_500ms":                         0,
   843  						"mysql_command_PREPARE_cnt_500us":                         0,
   844  						"mysql_command_PREPARE_cnt_50ms":                          0,
   845  						"mysql_command_PREPARE_cnt_5ms":                           0,
   846  						"mysql_command_PREPARE_cnt_5s":                            0,
   847  						"mysql_command_PREPARE_cnt_INFs":                          0,
   848  						"mysql_command_PURGE_Total_Time_us":                       0,
   849  						"mysql_command_PURGE_Total_cnt":                           0,
   850  						"mysql_command_PURGE_cnt_100ms":                           0,
   851  						"mysql_command_PURGE_cnt_100us":                           0,
   852  						"mysql_command_PURGE_cnt_10ms":                            0,
   853  						"mysql_command_PURGE_cnt_10s":                             0,
   854  						"mysql_command_PURGE_cnt_1ms":                             0,
   855  						"mysql_command_PURGE_cnt_1s":                              0,
   856  						"mysql_command_PURGE_cnt_500ms":                           0,
   857  						"mysql_command_PURGE_cnt_500us":                           0,
   858  						"mysql_command_PURGE_cnt_50ms":                            0,
   859  						"mysql_command_PURGE_cnt_5ms":                             0,
   860  						"mysql_command_PURGE_cnt_5s":                              0,
   861  						"mysql_command_PURGE_cnt_INFs":                            0,
   862  						"mysql_command_RENAME_TABLE_Total_Time_us":                0,
   863  						"mysql_command_RENAME_TABLE_Total_cnt":                    0,
   864  						"mysql_command_RENAME_TABLE_cnt_100ms":                    0,
   865  						"mysql_command_RENAME_TABLE_cnt_100us":                    0,
   866  						"mysql_command_RENAME_TABLE_cnt_10ms":                     0,
   867  						"mysql_command_RENAME_TABLE_cnt_10s":                      0,
   868  						"mysql_command_RENAME_TABLE_cnt_1ms":                      0,
   869  						"mysql_command_RENAME_TABLE_cnt_1s":                       0,
   870  						"mysql_command_RENAME_TABLE_cnt_500ms":                    0,
   871  						"mysql_command_RENAME_TABLE_cnt_500us":                    0,
   872  						"mysql_command_RENAME_TABLE_cnt_50ms":                     0,
   873  						"mysql_command_RENAME_TABLE_cnt_5ms":                      0,
   874  						"mysql_command_RENAME_TABLE_cnt_5s":                       0,
   875  						"mysql_command_RENAME_TABLE_cnt_INFs":                     0,
   876  						"mysql_command_REPLACE_Total_Time_us":                     0,
   877  						"mysql_command_REPLACE_Total_cnt":                         0,
   878  						"mysql_command_REPLACE_cnt_100ms":                         0,
   879  						"mysql_command_REPLACE_cnt_100us":                         0,
   880  						"mysql_command_REPLACE_cnt_10ms":                          0,
   881  						"mysql_command_REPLACE_cnt_10s":                           0,
   882  						"mysql_command_REPLACE_cnt_1ms":                           0,
   883  						"mysql_command_REPLACE_cnt_1s":                            0,
   884  						"mysql_command_REPLACE_cnt_500ms":                         0,
   885  						"mysql_command_REPLACE_cnt_500us":                         0,
   886  						"mysql_command_REPLACE_cnt_50ms":                          0,
   887  						"mysql_command_REPLACE_cnt_5ms":                           0,
   888  						"mysql_command_REPLACE_cnt_5s":                            0,
   889  						"mysql_command_REPLACE_cnt_INFs":                          0,
   890  						"mysql_command_RESET_MASTER_Total_Time_us":                0,
   891  						"mysql_command_RESET_MASTER_Total_cnt":                    0,
   892  						"mysql_command_RESET_MASTER_cnt_100ms":                    0,
   893  						"mysql_command_RESET_MASTER_cnt_100us":                    0,
   894  						"mysql_command_RESET_MASTER_cnt_10ms":                     0,
   895  						"mysql_command_RESET_MASTER_cnt_10s":                      0,
   896  						"mysql_command_RESET_MASTER_cnt_1ms":                      0,
   897  						"mysql_command_RESET_MASTER_cnt_1s":                       0,
   898  						"mysql_command_RESET_MASTER_cnt_500ms":                    0,
   899  						"mysql_command_RESET_MASTER_cnt_500us":                    0,
   900  						"mysql_command_RESET_MASTER_cnt_50ms":                     0,
   901  						"mysql_command_RESET_MASTER_cnt_5ms":                      0,
   902  						"mysql_command_RESET_MASTER_cnt_5s":                       0,
   903  						"mysql_command_RESET_MASTER_cnt_INFs":                     0,
   904  						"mysql_command_RESET_SLAVE_Total_Time_us":                 0,
   905  						"mysql_command_RESET_SLAVE_Total_cnt":                     0,
   906  						"mysql_command_RESET_SLAVE_cnt_100ms":                     0,
   907  						"mysql_command_RESET_SLAVE_cnt_100us":                     0,
   908  						"mysql_command_RESET_SLAVE_cnt_10ms":                      0,
   909  						"mysql_command_RESET_SLAVE_cnt_10s":                       0,
   910  						"mysql_command_RESET_SLAVE_cnt_1ms":                       0,
   911  						"mysql_command_RESET_SLAVE_cnt_1s":                        0,
   912  						"mysql_command_RESET_SLAVE_cnt_500ms":                     0,
   913  						"mysql_command_RESET_SLAVE_cnt_500us":                     0,
   914  						"mysql_command_RESET_SLAVE_cnt_50ms":                      0,
   915  						"mysql_command_RESET_SLAVE_cnt_5ms":                       0,
   916  						"mysql_command_RESET_SLAVE_cnt_5s":                        0,
   917  						"mysql_command_RESET_SLAVE_cnt_INFs":                      0,
   918  						"mysql_command_REVOKE_Total_Time_us":                      0,
   919  						"mysql_command_REVOKE_Total_cnt":                          0,
   920  						"mysql_command_REVOKE_cnt_100ms":                          0,
   921  						"mysql_command_REVOKE_cnt_100us":                          0,
   922  						"mysql_command_REVOKE_cnt_10ms":                           0,
   923  						"mysql_command_REVOKE_cnt_10s":                            0,
   924  						"mysql_command_REVOKE_cnt_1ms":                            0,
   925  						"mysql_command_REVOKE_cnt_1s":                             0,
   926  						"mysql_command_REVOKE_cnt_500ms":                          0,
   927  						"mysql_command_REVOKE_cnt_500us":                          0,
   928  						"mysql_command_REVOKE_cnt_50ms":                           0,
   929  						"mysql_command_REVOKE_cnt_5ms":                            0,
   930  						"mysql_command_REVOKE_cnt_5s":                             0,
   931  						"mysql_command_REVOKE_cnt_INFs":                           0,
   932  						"mysql_command_ROLLBACK_Total_Time_us":                    0,
   933  						"mysql_command_ROLLBACK_Total_cnt":                        0,
   934  						"mysql_command_ROLLBACK_cnt_100ms":                        0,
   935  						"mysql_command_ROLLBACK_cnt_100us":                        0,
   936  						"mysql_command_ROLLBACK_cnt_10ms":                         0,
   937  						"mysql_command_ROLLBACK_cnt_10s":                          0,
   938  						"mysql_command_ROLLBACK_cnt_1ms":                          0,
   939  						"mysql_command_ROLLBACK_cnt_1s":                           0,
   940  						"mysql_command_ROLLBACK_cnt_500ms":                        0,
   941  						"mysql_command_ROLLBACK_cnt_500us":                        0,
   942  						"mysql_command_ROLLBACK_cnt_50ms":                         0,
   943  						"mysql_command_ROLLBACK_cnt_5ms":                          0,
   944  						"mysql_command_ROLLBACK_cnt_5s":                           0,
   945  						"mysql_command_ROLLBACK_cnt_INFs":                         0,
   946  						"mysql_command_SAVEPOINT_Total_Time_us":                   0,
   947  						"mysql_command_SAVEPOINT_Total_cnt":                       0,
   948  						"mysql_command_SAVEPOINT_cnt_100ms":                       0,
   949  						"mysql_command_SAVEPOINT_cnt_100us":                       0,
   950  						"mysql_command_SAVEPOINT_cnt_10ms":                        0,
   951  						"mysql_command_SAVEPOINT_cnt_10s":                         0,
   952  						"mysql_command_SAVEPOINT_cnt_1ms":                         0,
   953  						"mysql_command_SAVEPOINT_cnt_1s":                          0,
   954  						"mysql_command_SAVEPOINT_cnt_500ms":                       0,
   955  						"mysql_command_SAVEPOINT_cnt_500us":                       0,
   956  						"mysql_command_SAVEPOINT_cnt_50ms":                        0,
   957  						"mysql_command_SAVEPOINT_cnt_5ms":                         0,
   958  						"mysql_command_SAVEPOINT_cnt_5s":                          0,
   959  						"mysql_command_SAVEPOINT_cnt_INFs":                        0,
   960  						"mysql_command_SELECT_FOR_UPDATE_Total_Time_us":           0,
   961  						"mysql_command_SELECT_FOR_UPDATE_Total_cnt":               0,
   962  						"mysql_command_SELECT_FOR_UPDATE_cnt_100ms":               0,
   963  						"mysql_command_SELECT_FOR_UPDATE_cnt_100us":               0,
   964  						"mysql_command_SELECT_FOR_UPDATE_cnt_10ms":                0,
   965  						"mysql_command_SELECT_FOR_UPDATE_cnt_10s":                 0,
   966  						"mysql_command_SELECT_FOR_UPDATE_cnt_1ms":                 0,
   967  						"mysql_command_SELECT_FOR_UPDATE_cnt_1s":                  0,
   968  						"mysql_command_SELECT_FOR_UPDATE_cnt_500ms":               0,
   969  						"mysql_command_SELECT_FOR_UPDATE_cnt_500us":               0,
   970  						"mysql_command_SELECT_FOR_UPDATE_cnt_50ms":                0,
   971  						"mysql_command_SELECT_FOR_UPDATE_cnt_5ms":                 0,
   972  						"mysql_command_SELECT_FOR_UPDATE_cnt_5s":                  0,
   973  						"mysql_command_SELECT_FOR_UPDATE_cnt_INFs":                0,
   974  						"mysql_command_SELECT_Total_Time_us":                      4673958076637,
   975  						"mysql_command_SELECT_Total_cnt":                          68490650,
   976  						"mysql_command_SELECT_cnt_100ms":                          4909816,
   977  						"mysql_command_SELECT_cnt_100us":                          32185976,
   978  						"mysql_command_SELECT_cnt_10ms":                           2955830,
   979  						"mysql_command_SELECT_cnt_10s":                            497,
   980  						"mysql_command_SELECT_cnt_1ms":                            481335,
   981  						"mysql_command_SELECT_cnt_1s":                             1321917,
   982  						"mysql_command_SELECT_cnt_500ms":                          11123900,
   983  						"mysql_command_SELECT_cnt_500us":                          36650,
   984  						"mysql_command_SELECT_cnt_50ms":                           10468460,
   985  						"mysql_command_SELECT_cnt_5ms":                            4600948,
   986  						"mysql_command_SELECT_cnt_5s":                             403451,
   987  						"mysql_command_SELECT_cnt_INFs":                           1870,
   988  						"mysql_command_SET_Total_Time_us":                         0,
   989  						"mysql_command_SET_Total_cnt":                             0,
   990  						"mysql_command_SET_cnt_100ms":                             0,
   991  						"mysql_command_SET_cnt_100us":                             0,
   992  						"mysql_command_SET_cnt_10ms":                              0,
   993  						"mysql_command_SET_cnt_10s":                               0,
   994  						"mysql_command_SET_cnt_1ms":                               0,
   995  						"mysql_command_SET_cnt_1s":                                0,
   996  						"mysql_command_SET_cnt_500ms":                             0,
   997  						"mysql_command_SET_cnt_500us":                             0,
   998  						"mysql_command_SET_cnt_50ms":                              0,
   999  						"mysql_command_SET_cnt_5ms":                               0,
  1000  						"mysql_command_SET_cnt_5s":                                0,
  1001  						"mysql_command_SET_cnt_INFs":                              0,
  1002  						"mysql_command_SHOW_TABLE_STATUS_Total_Time_us":           0,
  1003  						"mysql_command_SHOW_TABLE_STATUS_Total_cnt":               0,
  1004  						"mysql_command_SHOW_TABLE_STATUS_cnt_100ms":               0,
  1005  						"mysql_command_SHOW_TABLE_STATUS_cnt_100us":               0,
  1006  						"mysql_command_SHOW_TABLE_STATUS_cnt_10ms":                0,
  1007  						"mysql_command_SHOW_TABLE_STATUS_cnt_10s":                 0,
  1008  						"mysql_command_SHOW_TABLE_STATUS_cnt_1ms":                 0,
  1009  						"mysql_command_SHOW_TABLE_STATUS_cnt_1s":                  0,
  1010  						"mysql_command_SHOW_TABLE_STATUS_cnt_500ms":               0,
  1011  						"mysql_command_SHOW_TABLE_STATUS_cnt_500us":               0,
  1012  						"mysql_command_SHOW_TABLE_STATUS_cnt_50ms":                0,
  1013  						"mysql_command_SHOW_TABLE_STATUS_cnt_5ms":                 0,
  1014  						"mysql_command_SHOW_TABLE_STATUS_cnt_5s":                  0,
  1015  						"mysql_command_SHOW_TABLE_STATUS_cnt_INFs":                0,
  1016  						"mysql_command_SHOW_Total_Time_us":                        2158,
  1017  						"mysql_command_SHOW_Total_cnt":                            1,
  1018  						"mysql_command_SHOW_cnt_100ms":                            0,
  1019  						"mysql_command_SHOW_cnt_100us":                            0,
  1020  						"mysql_command_SHOW_cnt_10ms":                             0,
  1021  						"mysql_command_SHOW_cnt_10s":                              0,
  1022  						"mysql_command_SHOW_cnt_1ms":                              0,
  1023  						"mysql_command_SHOW_cnt_1s":                               0,
  1024  						"mysql_command_SHOW_cnt_500ms":                            0,
  1025  						"mysql_command_SHOW_cnt_500us":                            0,
  1026  						"mysql_command_SHOW_cnt_50ms":                             0,
  1027  						"mysql_command_SHOW_cnt_5ms":                              1,
  1028  						"mysql_command_SHOW_cnt_5s":                               0,
  1029  						"mysql_command_SHOW_cnt_INFs":                             0,
  1030  						"mysql_command_START_TRANSACTION_Total_Time_us":           0,
  1031  						"mysql_command_START_TRANSACTION_Total_cnt":               0,
  1032  						"mysql_command_START_TRANSACTION_cnt_100ms":               0,
  1033  						"mysql_command_START_TRANSACTION_cnt_100us":               0,
  1034  						"mysql_command_START_TRANSACTION_cnt_10ms":                0,
  1035  						"mysql_command_START_TRANSACTION_cnt_10s":                 0,
  1036  						"mysql_command_START_TRANSACTION_cnt_1ms":                 0,
  1037  						"mysql_command_START_TRANSACTION_cnt_1s":                  0,
  1038  						"mysql_command_START_TRANSACTION_cnt_500ms":               0,
  1039  						"mysql_command_START_TRANSACTION_cnt_500us":               0,
  1040  						"mysql_command_START_TRANSACTION_cnt_50ms":                0,
  1041  						"mysql_command_START_TRANSACTION_cnt_5ms":                 0,
  1042  						"mysql_command_START_TRANSACTION_cnt_5s":                  0,
  1043  						"mysql_command_START_TRANSACTION_cnt_INFs":                0,
  1044  						"mysql_command_TRUNCATE_TABLE_Total_Time_us":              0,
  1045  						"mysql_command_TRUNCATE_TABLE_Total_cnt":                  0,
  1046  						"mysql_command_TRUNCATE_TABLE_cnt_100ms":                  0,
  1047  						"mysql_command_TRUNCATE_TABLE_cnt_100us":                  0,
  1048  						"mysql_command_TRUNCATE_TABLE_cnt_10ms":                   0,
  1049  						"mysql_command_TRUNCATE_TABLE_cnt_10s":                    0,
  1050  						"mysql_command_TRUNCATE_TABLE_cnt_1ms":                    0,
  1051  						"mysql_command_TRUNCATE_TABLE_cnt_1s":                     0,
  1052  						"mysql_command_TRUNCATE_TABLE_cnt_500ms":                  0,
  1053  						"mysql_command_TRUNCATE_TABLE_cnt_500us":                  0,
  1054  						"mysql_command_TRUNCATE_TABLE_cnt_50ms":                   0,
  1055  						"mysql_command_TRUNCATE_TABLE_cnt_5ms":                    0,
  1056  						"mysql_command_TRUNCATE_TABLE_cnt_5s":                     0,
  1057  						"mysql_command_TRUNCATE_TABLE_cnt_INFs":                   0,
  1058  						"mysql_command_UNKNOWN_Total_Time_us":                     0,
  1059  						"mysql_command_UNKNOWN_Total_cnt":                         0,
  1060  						"mysql_command_UNKNOWN_cnt_100ms":                         0,
  1061  						"mysql_command_UNKNOWN_cnt_100us":                         0,
  1062  						"mysql_command_UNKNOWN_cnt_10ms":                          0,
  1063  						"mysql_command_UNKNOWN_cnt_10s":                           0,
  1064  						"mysql_command_UNKNOWN_cnt_1ms":                           0,
  1065  						"mysql_command_UNKNOWN_cnt_1s":                            0,
  1066  						"mysql_command_UNKNOWN_cnt_500ms":                         0,
  1067  						"mysql_command_UNKNOWN_cnt_500us":                         0,
  1068  						"mysql_command_UNKNOWN_cnt_50ms":                          0,
  1069  						"mysql_command_UNKNOWN_cnt_5ms":                           0,
  1070  						"mysql_command_UNKNOWN_cnt_5s":                            0,
  1071  						"mysql_command_UNKNOWN_cnt_INFs":                          0,
  1072  						"mysql_command_UNLOCK_TABLES_Total_Time_us":               0,
  1073  						"mysql_command_UNLOCK_TABLES_Total_cnt":                   0,
  1074  						"mysql_command_UNLOCK_TABLES_cnt_100ms":                   0,
  1075  						"mysql_command_UNLOCK_TABLES_cnt_100us":                   0,
  1076  						"mysql_command_UNLOCK_TABLES_cnt_10ms":                    0,
  1077  						"mysql_command_UNLOCK_TABLES_cnt_10s":                     0,
  1078  						"mysql_command_UNLOCK_TABLES_cnt_1ms":                     0,
  1079  						"mysql_command_UNLOCK_TABLES_cnt_1s":                      0,
  1080  						"mysql_command_UNLOCK_TABLES_cnt_500ms":                   0,
  1081  						"mysql_command_UNLOCK_TABLES_cnt_500us":                   0,
  1082  						"mysql_command_UNLOCK_TABLES_cnt_50ms":                    0,
  1083  						"mysql_command_UNLOCK_TABLES_cnt_5ms":                     0,
  1084  						"mysql_command_UNLOCK_TABLES_cnt_5s":                      0,
  1085  						"mysql_command_UNLOCK_TABLES_cnt_INFs":                    0,
  1086  						"mysql_command_UPDATE_Total_Time_us":                      0,
  1087  						"mysql_command_UPDATE_Total_cnt":                          0,
  1088  						"mysql_command_UPDATE_cnt_100ms":                          0,
  1089  						"mysql_command_UPDATE_cnt_100us":                          0,
  1090  						"mysql_command_UPDATE_cnt_10ms":                           0,
  1091  						"mysql_command_UPDATE_cnt_10s":                            0,
  1092  						"mysql_command_UPDATE_cnt_1ms":                            0,
  1093  						"mysql_command_UPDATE_cnt_1s":                             0,
  1094  						"mysql_command_UPDATE_cnt_500ms":                          0,
  1095  						"mysql_command_UPDATE_cnt_500us":                          0,
  1096  						"mysql_command_UPDATE_cnt_50ms":                           0,
  1097  						"mysql_command_UPDATE_cnt_5ms":                            0,
  1098  						"mysql_command_UPDATE_cnt_5s":                             0,
  1099  						"mysql_command_UPDATE_cnt_INFs":                           0,
  1100  						"mysql_command_USE_Total_Time_us":                         0,
  1101  						"mysql_command_USE_Total_cnt":                             0,
  1102  						"mysql_command_USE_cnt_100ms":                             0,
  1103  						"mysql_command_USE_cnt_100us":                             0,
  1104  						"mysql_command_USE_cnt_10ms":                              0,
  1105  						"mysql_command_USE_cnt_10s":                               0,
  1106  						"mysql_command_USE_cnt_1ms":                               0,
  1107  						"mysql_command_USE_cnt_1s":                                0,
  1108  						"mysql_command_USE_cnt_500ms":                             0,
  1109  						"mysql_command_USE_cnt_500us":                             0,
  1110  						"mysql_command_USE_cnt_50ms":                              0,
  1111  						"mysql_command_USE_cnt_5ms":                               0,
  1112  						"mysql_command_USE_cnt_5s":                                0,
  1113  						"mysql_command_USE_cnt_INFs":                              0,
  1114  						"mysql_firewall_rules_config":                             329,
  1115  						"mysql_firewall_rules_table":                              0,
  1116  						"mysql_firewall_users_config":                             0,
  1117  						"mysql_firewall_users_table":                              0,
  1118  						"mysql_frontend_buffers_bytes":                            196608,
  1119  						"mysql_killed_backend_connections":                        0,
  1120  						"mysql_killed_backend_queries":                            0,
  1121  						"mysql_query_rules_memory":                                22825,
  1122  						"mysql_session_internal_bytes":                            20232,
  1123  						"mysql_unexpected_frontend_com_quit":                      0,
  1124  						"mysql_unexpected_frontend_packets":                       0,
  1125  						"mysql_user_first_user_frontend_connections":              0,
  1126  						"mysql_user_first_user_frontend_connections_utilization":  0,
  1127  						"mysql_user_second_user_frontend_connections":             3,
  1128  						"mysql_user_second_user_frontend_connections_utilization": 20,
  1129  						"queries_with_max_lag_ms":                                 0,
  1130  						"queries_with_max_lag_ms__delayed":                        0,
  1131  						"queries_with_max_lag_ms__total_wait_time_us":             0,
  1132  						"query_digest_memory":                                     13688,
  1133  						"stack_memory_admin_threads":                              16777216,
  1134  						"stack_memory_cluster_threads":                            0,
  1135  						"stack_memory_mysql_threads":                              33554432,
  1136  						"whitelisted_sqli_fingerprint":                            0,
  1137  					}
  1138  
  1139  					require.Equal(t, expected, mx)
  1140  				},
  1141  			},
  1142  		},
  1143  	}
  1144  
  1145  	for name, test := range tests {
  1146  		t.Run(name, func(t *testing.T) {
  1147  			db, mock, err := sqlmock.New(
  1148  				sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual),
  1149  			)
  1150  			require.NoError(t, err)
  1151  			my := New()
  1152  			my.db = db
  1153  			defer func() { _ = db.Close() }()
  1154  
  1155  			require.True(t, my.Init())
  1156  
  1157  			for i, step := range test {
  1158  				t.Run(fmt.Sprintf("step[%d]", i), func(t *testing.T) {
  1159  					step.prepareMock(t, mock)
  1160  					step.check(t, my)
  1161  				})
  1162  			}
  1163  			assert.NoError(t, mock.ExpectationsWereMet())
  1164  		})
  1165  	}
  1166  }
  1167  
  1168  func mustMockRows(t *testing.T, data []byte) *sqlmock.Rows {
  1169  	rows, err := prepareMockRows(data)
  1170  	require.NoError(t, err)
  1171  	return rows
  1172  }
  1173  
  1174  func mockExpect(t *testing.T, mock sqlmock.Sqlmock, query string, rows []byte) {
  1175  	mock.ExpectQuery(query).WillReturnRows(mustMockRows(t, rows)).RowsWillBeClosed()
  1176  }
  1177  
  1178  func mockExpectErr(mock sqlmock.Sqlmock, query string) {
  1179  	mock.ExpectQuery(query).WillReturnError(fmt.Errorf("mock error (%s)", query))
  1180  }
  1181  
  1182  func prepareMockRows(data []byte) (*sqlmock.Rows, error) {
  1183  	if len(data) == 0 {
  1184  		return sqlmock.NewRows(nil), nil
  1185  	}
  1186  
  1187  	r := bytes.NewReader(data)
  1188  	sc := bufio.NewScanner(r)
  1189  
  1190  	var numColumns int
  1191  	var rows *sqlmock.Rows
  1192  
  1193  	for sc.Scan() {
  1194  		s := strings.TrimSpace(strings.Trim(sc.Text(), "|"))
  1195  		switch {
  1196  		case s == "",
  1197  			strings.HasPrefix(s, "+"),
  1198  			strings.HasPrefix(s, "ft_boolean_syntax"):
  1199  			continue
  1200  		}
  1201  
  1202  		parts := strings.Split(s, "|")
  1203  		for i, v := range parts {
  1204  			parts[i] = strings.TrimSpace(v)
  1205  		}
  1206  
  1207  		if rows == nil {
  1208  			numColumns = len(parts)
  1209  			rows = sqlmock.NewRows(parts)
  1210  			continue
  1211  		}
  1212  
  1213  		if len(parts) != numColumns {
  1214  			return nil, fmt.Errorf("prepareMockRows(): columns != values (%d/%d)", numColumns, len(parts))
  1215  		}
  1216  
  1217  		values := make([]driver.Value, len(parts))
  1218  		for i, v := range parts {
  1219  			values[i] = v
  1220  		}
  1221  		rows.AddRow(values...)
  1222  	}
  1223  
  1224  	if rows == nil {
  1225  		return nil, errors.New("prepareMockRows(): nil rows result")
  1226  	}
  1227  
  1228  	return rows, sc.Err()
  1229  }