in receiver/mysqlreceiver/scraper.go [115:420]
func (m *mySQLScraper) scrapeGlobalStats(now pcommon.Timestamp, errs *scrapererror.ScrapeErrors) {
globalStats, err := m.sqlclient.getGlobalStats()
if err != nil {
m.logger.Error("Failed to fetch global stats", zap.Error(err))
errs.AddPartial(66, err)
return
}
m.recordDataPages(now, globalStats, errs)
m.recordDataUsage(now, globalStats, errs)
for k, v := range globalStats {
switch k {
// bytes transmission
case "Bytes_received":
addPartialIfError(errs, m.mb.RecordMysqlClientNetworkIoDataPoint(now, v, metadata.AttributeDirectionReceived))
case "Bytes_sent":
addPartialIfError(errs, m.mb.RecordMysqlClientNetworkIoDataPoint(now, v, metadata.AttributeDirectionSent))
// buffer_pool.pages
case "Innodb_buffer_pool_pages_data":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolPagesDataPoint(now, v,
metadata.AttributeBufferPoolPagesData))
case "Innodb_buffer_pool_pages_free":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolPagesDataPoint(now, v,
metadata.AttributeBufferPoolPagesFree))
case "Innodb_buffer_pool_pages_misc":
_, err := strconv.ParseInt(v, 10, 64)
if err != nil {
m.logger.Warn("Innodb_buffer_pool_pages_misc reports an out-of-bounds value and will be ignored. See https://bugs.mysql.com/bug.php?id=59550.")
continue
}
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolPagesDataPoint(now, v,
metadata.AttributeBufferPoolPagesMisc))
// buffer_pool.page_flushes
case "Innodb_buffer_pool_pages_flushed":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolPageFlushesDataPoint(now, v))
// buffer_pool.operations
case "Innodb_buffer_pool_read_ahead_rnd":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolOperationsDataPoint(now, v,
metadata.AttributeBufferPoolOperationsReadAheadRnd))
case "Innodb_buffer_pool_read_ahead":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolOperationsDataPoint(now, v,
metadata.AttributeBufferPoolOperationsReadAhead))
case "Innodb_buffer_pool_read_ahead_evicted":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolOperationsDataPoint(now, v,
metadata.AttributeBufferPoolOperationsReadAheadEvicted))
case "Innodb_buffer_pool_read_requests":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolOperationsDataPoint(now, v,
metadata.AttributeBufferPoolOperationsReadRequests))
case "Innodb_buffer_pool_reads":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolOperationsDataPoint(now, v,
metadata.AttributeBufferPoolOperationsReads))
case "Innodb_buffer_pool_wait_free":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolOperationsDataPoint(now, v,
metadata.AttributeBufferPoolOperationsWaitFree))
case "Innodb_buffer_pool_write_requests":
addPartialIfError(errs, m.mb.RecordMysqlBufferPoolOperationsDataPoint(now, v,
metadata.AttributeBufferPoolOperationsWriteRequests))
// connection.errors
case "Connection_errors_accept":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorAccept))
case "Connection_errors_internal":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorInternal))
case "Connection_errors_max_connections":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorMaxConnections))
case "Connection_errors_peer_address":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorPeerAddress))
case "Connection_errors_select":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorSelect))
case "Connection_errors_tcpwrap":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorTcpwrap))
case "Aborted_clients":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorAbortedClients))
case "Aborted_connects":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorAborted))
case "Locked_connects":
addPartialIfError(errs, m.mb.RecordMysqlConnectionErrorsDataPoint(now, v,
metadata.AttributeConnectionErrorLocked))
// connection
case "Connections":
addPartialIfError(errs, m.mb.RecordMysqlConnectionCountDataPoint(now, v))
// prepared_statements_commands
case "Com_stmt_execute":
addPartialIfError(errs, m.mb.RecordMysqlPreparedStatementsDataPoint(now, v,
metadata.AttributePreparedStatementsCommandExecute))
case "Com_stmt_close":
addPartialIfError(errs, m.mb.RecordMysqlPreparedStatementsDataPoint(now, v,
metadata.AttributePreparedStatementsCommandClose))
case "Com_stmt_fetch":
addPartialIfError(errs, m.mb.RecordMysqlPreparedStatementsDataPoint(now, v,
metadata.AttributePreparedStatementsCommandFetch))
case "Com_stmt_prepare":
addPartialIfError(errs, m.mb.RecordMysqlPreparedStatementsDataPoint(now, v,
metadata.AttributePreparedStatementsCommandPrepare))
case "Com_stmt_reset":
addPartialIfError(errs, m.mb.RecordMysqlPreparedStatementsDataPoint(now, v,
metadata.AttributePreparedStatementsCommandReset))
case "Com_stmt_send_long_data":
addPartialIfError(errs, m.mb.RecordMysqlPreparedStatementsDataPoint(now, v,
metadata.AttributePreparedStatementsCommandSendLongData))
// commands
case "Com_delete":
addPartialIfError(errs, m.mb.RecordMysqlCommandsDataPoint(now, v, metadata.AttributeCommandDelete))
case "Com_delete_multi":
addPartialIfError(errs, m.mb.RecordMysqlCommandsDataPoint(now, v, metadata.AttributeCommandDeleteMulti))
case "Com_insert":
addPartialIfError(errs, m.mb.RecordMysqlCommandsDataPoint(now, v, metadata.AttributeCommandInsert))
case "Com_select":
addPartialIfError(errs, m.mb.RecordMysqlCommandsDataPoint(now, v, metadata.AttributeCommandSelect))
case "Com_update":
addPartialIfError(errs, m.mb.RecordMysqlCommandsDataPoint(now, v, metadata.AttributeCommandUpdate))
case "Com_update_multi":
addPartialIfError(errs, m.mb.RecordMysqlCommandsDataPoint(now, v, metadata.AttributeCommandUpdateMulti))
// created tmps
case "Created_tmp_disk_tables":
addPartialIfError(errs, m.mb.RecordMysqlTmpResourcesDataPoint(now, v, metadata.AttributeTmpResourceDiskTables))
case "Created_tmp_files":
addPartialIfError(errs, m.mb.RecordMysqlTmpResourcesDataPoint(now, v, metadata.AttributeTmpResourceFiles))
case "Created_tmp_tables":
addPartialIfError(errs, m.mb.RecordMysqlTmpResourcesDataPoint(now, v, metadata.AttributeTmpResourceTables))
// handlers
case "Handler_commit":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerCommit))
case "Handler_delete":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerDelete))
case "Handler_discover":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerDiscover))
case "Handler_external_lock":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerExternalLock))
case "Handler_mrr_init":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerMrrInit))
case "Handler_prepare":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerPrepare))
case "Handler_read_first":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerReadFirst))
case "Handler_read_key":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerReadKey))
case "Handler_read_last":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerReadLast))
case "Handler_read_next":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerReadNext))
case "Handler_read_prev":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerReadPrev))
case "Handler_read_rnd":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerReadRnd))
case "Handler_read_rnd_next":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerReadRndNext))
case "Handler_rollback":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerRollback))
case "Handler_savepoint":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerSavepoint))
case "Handler_savepoint_rollback":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerSavepointRollback))
case "Handler_update":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerUpdate))
case "Handler_write":
addPartialIfError(errs, m.mb.RecordMysqlHandlersDataPoint(now, v, metadata.AttributeHandlerWrite))
// double_writes
case "Innodb_dblwr_pages_written":
addPartialIfError(errs, m.mb.RecordMysqlDoubleWritesDataPoint(now, v, metadata.AttributeDoubleWritesPagesWritten))
case "Innodb_dblwr_writes":
addPartialIfError(errs, m.mb.RecordMysqlDoubleWritesDataPoint(now, v, metadata.AttributeDoubleWritesWrites))
// log_operations
case "Innodb_log_waits":
addPartialIfError(errs, m.mb.RecordMysqlLogOperationsDataPoint(now, v, metadata.AttributeLogOperationsWaits))
case "Innodb_log_write_requests":
addPartialIfError(errs, m.mb.RecordMysqlLogOperationsDataPoint(now, v, metadata.AttributeLogOperationsWriteRequests))
case "Innodb_log_writes":
addPartialIfError(errs, m.mb.RecordMysqlLogOperationsDataPoint(now, v, metadata.AttributeLogOperationsWrites))
// operations
case "Innodb_data_fsyncs":
addPartialIfError(errs, m.mb.RecordMysqlOperationsDataPoint(now, v, metadata.AttributeOperationsFsyncs))
case "Innodb_data_reads":
addPartialIfError(errs, m.mb.RecordMysqlOperationsDataPoint(now, v, metadata.AttributeOperationsReads))
case "Innodb_data_writes":
addPartialIfError(errs, m.mb.RecordMysqlOperationsDataPoint(now, v, metadata.AttributeOperationsWrites))
// page_operations
case "Innodb_pages_created":
addPartialIfError(errs, m.mb.RecordMysqlPageOperationsDataPoint(now, v, metadata.AttributePageOperationsCreated))
case "Innodb_pages_read":
addPartialIfError(errs, m.mb.RecordMysqlPageOperationsDataPoint(now, v,
metadata.AttributePageOperationsRead))
case "Innodb_pages_written":
addPartialIfError(errs, m.mb.RecordMysqlPageOperationsDataPoint(now, v,
metadata.AttributePageOperationsWritten))
// row_locks
case "Innodb_row_lock_waits":
addPartialIfError(errs, m.mb.RecordMysqlRowLocksDataPoint(now, v, metadata.AttributeRowLocksWaits))
case "Innodb_row_lock_time":
addPartialIfError(errs, m.mb.RecordMysqlRowLocksDataPoint(now, v, metadata.AttributeRowLocksTime))
// row_operations
case "Innodb_rows_deleted":
addPartialIfError(errs, m.mb.RecordMysqlRowOperationsDataPoint(now, v, metadata.AttributeRowOperationsDeleted))
case "Innodb_rows_inserted":
addPartialIfError(errs, m.mb.RecordMysqlRowOperationsDataPoint(now, v, metadata.AttributeRowOperationsInserted))
case "Innodb_rows_read":
addPartialIfError(errs, m.mb.RecordMysqlRowOperationsDataPoint(now, v,
metadata.AttributeRowOperationsRead))
case "Innodb_rows_updated":
addPartialIfError(errs, m.mb.RecordMysqlRowOperationsDataPoint(now, v,
metadata.AttributeRowOperationsUpdated))
// locks
case "Table_locks_immediate":
addPartialIfError(errs, m.mb.RecordMysqlLocksDataPoint(now, v, metadata.AttributeLocksImmediate))
case "Table_locks_waited":
addPartialIfError(errs, m.mb.RecordMysqlLocksDataPoint(now, v, metadata.AttributeLocksWaited))
// joins
case "Select_full_join":
addPartialIfError(errs, m.mb.RecordMysqlJoinsDataPoint(now, v, metadata.AttributeJoinKindFull))
case "Select_full_range_join":
addPartialIfError(errs, m.mb.RecordMysqlJoinsDataPoint(now, v, metadata.AttributeJoinKindFullRange))
case "Select_range":
addPartialIfError(errs, m.mb.RecordMysqlJoinsDataPoint(now, v, metadata.AttributeJoinKindRange))
case "Select_range_check":
addPartialIfError(errs, m.mb.RecordMysqlJoinsDataPoint(now, v, metadata.AttributeJoinKindRangeCheck))
case "Select_scan":
addPartialIfError(errs, m.mb.RecordMysqlJoinsDataPoint(now, v, metadata.AttributeJoinKindScan))
// open cache
case "Table_open_cache_hits":
addPartialIfError(errs, m.mb.RecordMysqlTableOpenCacheDataPoint(now, v, metadata.AttributeCacheStatusHit))
case "Table_open_cache_misses":
addPartialIfError(errs, m.mb.RecordMysqlTableOpenCacheDataPoint(now, v, metadata.AttributeCacheStatusMiss))
case "Table_open_cache_overflows":
addPartialIfError(errs, m.mb.RecordMysqlTableOpenCacheDataPoint(now, v, metadata.AttributeCacheStatusOverflow))
// queries
case "Queries":
addPartialIfError(errs, m.mb.RecordMysqlQueryCountDataPoint(now, v))
case "Questions":
addPartialIfError(errs, m.mb.RecordMysqlQueryClientCountDataPoint(now, v))
case "Slow_queries":
addPartialIfError(errs, m.mb.RecordMysqlQuerySlowCountDataPoint(now, v))
// sorts
case "Sort_merge_passes":
addPartialIfError(errs, m.mb.RecordMysqlSortsDataPoint(now, v, metadata.AttributeSortsMergePasses))
case "Sort_range":
addPartialIfError(errs, m.mb.RecordMysqlSortsDataPoint(now, v, metadata.AttributeSortsRange))
case "Sort_rows":
addPartialIfError(errs, m.mb.RecordMysqlSortsDataPoint(now, v, metadata.AttributeSortsRows))
case "Sort_scan":
addPartialIfError(errs, m.mb.RecordMysqlSortsDataPoint(now, v, metadata.AttributeSortsScan))
// threads
case "Threads_cached":
addPartialIfError(errs, m.mb.RecordMysqlThreadsDataPoint(now, v, metadata.AttributeThreadsCached))
case "Threads_connected":
addPartialIfError(errs, m.mb.RecordMysqlThreadsDataPoint(now, v, metadata.AttributeThreadsConnected))
case "Threads_created":
addPartialIfError(errs, m.mb.RecordMysqlThreadsDataPoint(now, v, metadata.AttributeThreadsCreated))
case "Threads_running":
addPartialIfError(errs, m.mb.RecordMysqlThreadsDataPoint(now, v, metadata.AttributeThreadsRunning))
// opened resources
case "Opened_files":
addPartialIfError(errs, m.mb.RecordMysqlOpenedResourcesDataPoint(now, v, metadata.AttributeOpenedResourcesFile))
case "Opened_tables":
addPartialIfError(errs, m.mb.RecordMysqlOpenedResourcesDataPoint(now, v, metadata.AttributeOpenedResourcesTable))
case "Opened_table_definitions":
addPartialIfError(errs, m.mb.RecordMysqlOpenedResourcesDataPoint(now, v, metadata.AttributeOpenedResourcesTableDefinition))
// mysqlx_worker_threads
case "Mysqlx_worker_threads":
addPartialIfError(errs, m.mb.RecordMysqlMysqlxWorkerThreadsDataPoint(now, v, metadata.AttributeMysqlxThreadsAvailable))
case "Mysqlx_worker_threads_active":
addPartialIfError(errs, m.mb.RecordMysqlMysqlxWorkerThreadsDataPoint(now, v, metadata.AttributeMysqlxThreadsActive))
// mysqlx_connections
case "Mysqlx_connections_accepted":
addPartialIfError(errs, m.mb.RecordMysqlMysqlxConnectionsDataPoint(now, v, metadata.AttributeConnectionStatusAccepted))
case "Mysqlx_connections_closed":
addPartialIfError(errs, m.mb.RecordMysqlMysqlxConnectionsDataPoint(now, v, metadata.AttributeConnectionStatusClosed))
case "Mysqlx_connections_rejected":
addPartialIfError(errs, m.mb.RecordMysqlMysqlxConnectionsDataPoint(now, v, metadata.AttributeConnectionStatusRejected))
// uptime
case "Uptime":
addPartialIfError(errs, m.mb.RecordMysqlUptimeDataPoint(now, v))
}
}
}