1
0
mirror of https://github.com/prometheus/mysqld_exporter.git synced 2025-07-28 19:21:58 +03:00

fix innodb_metrics for mariadb 10.5+ (fixes #494) (#523)

* determine column name for innodb_metrics before
querying
adds support more mariadb 10.4+, fixes 494

Signed-off-by: Mike <maemigh@gmail.com>
This commit is contained in:
Mike
2021-04-08 21:46:13 +09:00
committed by GitHub
parent 3381d9c187
commit 662d1a17f7
3 changed files with 39 additions and 5 deletions

View File

@ -15,6 +15,7 @@ package collector
import (
"context"
"fmt"
"testing"
"github.com/DATA-DOG/go-sqlmock"
@ -31,8 +32,13 @@ func TestScrapeInnodbMetrics(t *testing.T) {
}
defer db.Close()
enabledColumnName := []string{"COLUMN_NAME"}
rows := sqlmock.NewRows(enabledColumnName).
AddRow("STATUS")
mock.ExpectQuery(sanitizeQuery(infoSchemaInnodbMetricsEnabledColumnQuery)).WillReturnRows(rows)
columns := []string{"name", "subsystem", "type", "comment", "count"}
rows := sqlmock.NewRows(columns).
rows = sqlmock.NewRows(columns).
AddRow("lock_timeouts", "lock", "counter", "Number of lock timeouts", 0).
AddRow("buffer_pool_reads", "buffer", "status_counter", "Number of reads directly from disk (innodb_buffer_pool_reads)", 1).
AddRow("buffer_pool_size", "server", "value", "Server buffer pool size (all buffer pools) in bytes", 2).
@ -42,7 +48,8 @@ func TestScrapeInnodbMetrics(t *testing.T) {
AddRow("buffer_pool_pages_data", "buffer", "gauge", "Number of data buffer pool pages", 6).
AddRow("buffer_pool_pages_total", "buffer", "gauge", "Number of total buffer pool pages", 7).
AddRow("NOPE", "buffer_page_io", "counter", "An invalid buffer_page_io metric", 999)
mock.ExpectQuery(sanitizeQuery(infoSchemaInnodbMetricsQuery)).WillReturnRows(rows)
query := fmt.Sprintf(infoSchemaInnodbMetricsQuery, "status", "enabled")
mock.ExpectQuery(sanitizeQuery(query)).WillReturnRows(rows)
ch := make(chan prometheus.Metric)
go func() {