This is an automated email from the ASF dual-hosted git repository. laiyingchun pushed a commit to tag kudu-1.12.0-mdh1.0.0-4c2c075-centos-release in repository https://gitbox.apache.org/repos/asf/kudu.git
commit d5162ad09b989d899569381c3966aad648d6c237 Author: zhangyifan27 <[email protected]> AuthorDate: Thu Apr 9 19:27:32 2020 +0800 [metrics] make 'merged_entities_count_of_tablet' visible when only one entity merged Before this patch, the metric 'merged_entities_count_of_tablet' is hidden when tablet server aggregate metrics by the same attribute and there is only one entity merged, because it's modification epoch is not updated. We should expose the metric in this condition. Change-Id: Ia74cae25b5bde7d61db1186e44abdff487d3f23f Reviewed-on: http://gerrit.cloudera.org:8080/15707 Tested-by: Kudu Jenkins Reviewed-by: Alexey Serbin <[email protected]> --- src/kudu/tserver/tablet_server-test.cc | 13 +++++++++++++ src/kudu/util/metrics.cc | 3 +++ 2 files changed, 16 insertions(+) diff --git a/src/kudu/tserver/tablet_server-test.cc b/src/kudu/tserver/tablet_server-test.cc index fab5ad4..a42fdf9 100644 --- a/src/kudu/tserver/tablet_server-test.cc +++ b/src/kudu/tserver/tablet_server-test.cc @@ -659,6 +659,19 @@ TEST_F(TabletServerTest, TestTombstonedTabletOnWebUI) { ASSERT_STR_NOT_CONTAINS(s, mini_server_->bound_rpc_addr().ToString()); } +// When tablet server merge metrics by the same attributes, the metric +// 'merged_entities_count_of_tablet' should be visible +TEST_F(TabletServerTest, TestMergedEntitiesCount) { + EasyCurl c; + faststring buf; + const string addr = mini_server_->bound_http_addr().ToString(); + ASSERT_OK(c.FetchURL(Substitute("http://$0/metrics", addr), &buf)); + ASSERT_STR_NOT_CONTAINS(buf.ToString(), "merged_entities_count_of_tablet"); + ASSERT_OK(c.FetchURL(Substitute("http://$0/metrics?merge_rules=tablet|table|table_name", addr), + &buf)); + ASSERT_STR_CONTAINS(buf.ToString(), "merged_entities_count_of_tablet"); +} + class TabletServerDiskSpaceTest : public TabletServerTestBase, public testing::WithParamInterface<string> { public: diff --git a/src/kudu/util/metrics.cc b/src/kudu/util/metrics.cc index f84edab..a48f870 100644 --- a/src/kudu/util/metrics.cc +++ b/src/kudu/util/metrics.cc @@ -426,6 +426,9 @@ Status MetricEntity::CollectTo(MergedEntityMetrics* collections, scoped_refptr<Metric> entry = FindPtrOrNull(entity_collection, prototype); if (!entry) { scoped_refptr<Metric> new_metric = metric->snapshot(); + if (!new_metric->invalid_for_merge_) { + new_metric->UpdateModificationEpoch(); + } InsertOrDie(&entity_collection, new_metric->prototype(), new_metric); } else { entry->MergeFrom(metric);
