From 8eb4d0e6e0e0fec2bc566ab4b85283baa37cadc4 Mon Sep 17 00:00:00 2001 From: Oleg Babin Date: Fri, 16 Oct 2020 11:06:39 +0300 Subject: [PATCH 1/2] fix default metrics collection after metrics.clear This metrics was cleared from global registry but was still saved in local registry (in utils.lua). But actually after f73c0eeda053e94be74edb2a1ac39b54bebe0363 this cache was redundant. This patch removes it and introduces a test to check enable_default_metrics works correctly after clear. Closes #130 --- metrics/utils.lua | 12 +++--------- test/default_metrics_test.lua | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 test/default_metrics_test.lua diff --git a/metrics/utils.lua b/metrics/utils.lua index 5b7c4c74..b04aa75b 100644 --- a/metrics/utils.lua +++ b/metrics/utils.lua @@ -1,7 +1,5 @@ local metrics = require('metrics') -local gauges_storage = {} - local TNT_PREFIX = 'tnt_' local function prefix_name(name) @@ -9,14 +7,10 @@ local function prefix_name(name) end local function set_gauge(name, description, value, labels) - if (gauges_storage[name] == nil) then - gauges_storage[name] = metrics.gauge(prefix_name(name), description) - end - - gauges_storage[name]:set(value, labels or {}) + local gauge = metrics.gauge(prefix_name(name), description) + gauge:set(value, labels or {}) end - local function box_is_configured() return type(box.cfg) ~= 'function' end @@ -25,4 +19,4 @@ return { set_gauge = set_gauge, box_is_configured = box_is_configured, prefix_name = prefix_name, -} \ No newline at end of file +} diff --git a/test/default_metrics_test.lua b/test/default_metrics_test.lua new file mode 100644 index 00000000..40a853b5 --- /dev/null +++ b/test/default_metrics_test.lua @@ -0,0 +1,34 @@ +#!/usr/bin/env tarantool + +require('strict').on() + +local t = require('luatest') +local g = t.group('default_metrics') + +local metrics = require('metrics') + +g.before_all(function() + box.cfg{} + metrics.clear() +end) + +g.after_each(function() + -- Delete all collectors and global labels + metrics.clear() +end) + +g.test_default_metrics_clear = function() + metrics.clear() + metrics.enable_default_metrics() + t.assert_equals(#metrics.collect(), 0) + + metrics.invoke_callbacks() + t.assert(#metrics.collect() > 0) + + metrics.clear() + t.assert_equals(#metrics.collect(), 0) + + metrics.enable_default_metrics() + metrics.invoke_callbacks() + t.assert(#metrics.collect() > 0) +end From 2a2cf0d4eb21b9e67762099956a51a6720887b6f Mon Sep 17 00:00:00 2001 From: Vasiliy Tyubek Date: Mon, 19 Oct 2020 21:14:43 +0300 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1872e964..49f5b760 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed +- metrics.clear() disables default metrics ## [0.5.0] - 2020-09-18 ### Added