From 0d2857875f9e96878924845e8767c1a4e6c32afe Mon Sep 17 00:00:00 2001 From: Dafydd Date: Thu, 19 Nov 2020 17:56:45 +0000 Subject: [PATCH] allow perf_schema.memory summary current_bytes to be negative Signed-off-by: Dafydd --- collector/perf_schema_memory_events.go | 2 +- collector/perf_schema_memory_events_test.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/collector/perf_schema_memory_events.go b/collector/perf_schema_memory_events.go index f413817a..ac5ba938 100644 --- a/collector/perf_schema_memory_events.go +++ b/collector/perf_schema_memory_events.go @@ -90,7 +90,7 @@ func (ScrapePerfMemoryEvents) Scrape(ctx context.Context, db *sql.DB, ch chan<- eventName string bytesAlloc uint64 bytesFree uint64 - currentBytes uint64 + currentBytes int64 ) for perfSchemaMemoryEventsRows.Next() { diff --git a/collector/perf_schema_memory_events_test.go b/collector/perf_schema_memory_events_test.go index 7e476549..d8fa4fc6 100644 --- a/collector/perf_schema_memory_events_test.go +++ b/collector/perf_schema_memory_events_test.go @@ -47,6 +47,7 @@ func TestScrapePerfMemoryEvents(t *testing.T) { rows := sqlmock.NewRows(columns). AddRow("memory/innodb/event1", "1001", "500", "501"). + AddRow("memory/performance_schema/event1", "6000", "7", "-83904"). AddRow("memory/innodb/event2", "2002", "1000", "1002"). AddRow("memory/sql/event1", "30", "4", "26") mock.ExpectQuery(sanitizeQuery(perfMemoryEventsQuery)).WillReturnRows(rows) @@ -63,6 +64,9 @@ func TestScrapePerfMemoryEvents(t *testing.T) { {labels: labelMap{"event_name": "innodb/event1"}, value: 1001, metricType: dto.MetricType_COUNTER}, {labels: labelMap{"event_name": "innodb/event1"}, value: 500, metricType: dto.MetricType_COUNTER}, {labels: labelMap{"event_name": "innodb/event1"}, value: 501, metricType: dto.MetricType_GAUGE}, + {labels: labelMap{"event_name": "performance_schema/event1"}, value: 6000, metricType: dto.MetricType_COUNTER}, + {labels: labelMap{"event_name": "performance_schema/event1"}, value: 7, metricType: dto.MetricType_COUNTER}, + {labels: labelMap{"event_name": "performance_schema/event1"}, value: -83904, metricType: dto.MetricType_GAUGE}, {labels: labelMap{"event_name": "innodb/event2"}, value: 2002, metricType: dto.MetricType_COUNTER}, {labels: labelMap{"event_name": "innodb/event2"}, value: 1000, metricType: dto.MetricType_COUNTER}, {labels: labelMap{"event_name": "innodb/event2"}, value: 1002, metricType: dto.MetricType_GAUGE},