aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/tests/persistence/apply_bucket_diff_state_test.cpp
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-11-23 23:14:49 +0100
committerTor Egge <Tor.Egge@online.no>2021-11-23 23:14:49 +0100
commit3af9cb3c0bc51db7baa434c1a6d8354e79af94a2 (patch)
tree97d1e0f34c360fed7581257e0f7290267f8d6b58 /storage/src/tests/persistence/apply_bucket_diff_state_test.cpp
parentd8b60f5658e9305ae29b2ed8442b5fc74cfff29c (diff)
Update merge latency metrics after async writes have completed.
Diffstat (limited to 'storage/src/tests/persistence/apply_bucket_diff_state_test.cpp')
-rw-r--r--storage/src/tests/persistence/apply_bucket_diff_state_test.cpp39
1 files changed, 37 insertions, 2 deletions
diff --git a/storage/src/tests/persistence/apply_bucket_diff_state_test.cpp b/storage/src/tests/persistence/apply_bucket_diff_state_test.cpp
index 701e8a80d3a..cdf7ac817fa 100644
--- a/storage/src/tests/persistence/apply_bucket_diff_state_test.cpp
+++ b/storage/src/tests/persistence/apply_bucket_diff_state_test.cpp
@@ -2,11 +2,14 @@
#include <vespa/storage/persistence/apply_bucket_diff_state.h>
#include <vespa/storage/persistence/merge_bucket_info_syncer.h>
+#include <vespa/storage/persistence/filestorage/merge_handler_metrics.h>
#include <vespa/document/base/documentid.h>
#include <vespa/document/bucket/bucketid.h>
#include <vespa/document/bucket/bucketidfactory.h>
#include <vespa/document/test/make_document_bucket.h>
+#include <vespa/metrics/metricset.h>
#include <vespa/persistence/spi/result.h>
+#include <vespa/storageframework/defaultimplementation/clock/fakeclock.h>
#include <gtest/gtest.h>
using document::DocumentId;
@@ -75,19 +78,26 @@ class ApplyBucketDiffStateTestBase : public ::testing::Test
public:
uint32_t sync_count;
DummyMergeBucketInfoSyncer syncer;
+ metrics::MetricSet merge_handler_metrics_owner;
+ MergeHandlerMetrics merge_handler_metrics;
+ framework::defaultimplementation::FakeClock clock;
MonitoredRefCount monitored_ref_count;
ApplyBucketDiffStateTestBase()
: ::testing::Test(),
sync_count(0u),
- syncer(sync_count)
+ syncer(sync_count),
+ merge_handler_metrics_owner("owner", {}, "owner"),
+ merge_handler_metrics(&merge_handler_metrics_owner),
+ clock(),
+ monitored_ref_count()
{
}
~ApplyBucketDiffStateTestBase();
std::shared_ptr<ApplyBucketDiffState> make_state() {
- return ApplyBucketDiffState::create(syncer, spi::Bucket(dummy_document_bucket), RetainGuard(monitored_ref_count));
+ return ApplyBucketDiffState::create(syncer, merge_handler_metrics, clock, spi::Bucket(dummy_document_bucket), RetainGuard(monitored_ref_count));
}
};
@@ -168,4 +178,29 @@ TEST_F(ApplyBucketDiffStateTest, failed_sync_bucket_info_is_detected)
check_failure(fail);
}
+TEST_F(ApplyBucketDiffStateTest, data_write_latency_is_updated)
+{
+ clock.addMilliSecondsToTime(10);
+ state.reset();
+ EXPECT_EQ(10.0, merge_handler_metrics.mergeDataWriteLatency.getLast());
+ EXPECT_EQ(1, merge_handler_metrics.mergeDataWriteLatency.getCount());
+}
+
+TEST_F(ApplyBucketDiffStateTest, total_latency_is_not_updated)
+{
+ clock.addMilliSecondsToTime(14);
+ state.reset();
+ EXPECT_EQ(0.0, merge_handler_metrics.mergeLatencyTotal.getLast());
+ EXPECT_EQ(0, merge_handler_metrics.mergeLatencyTotal.getCount());
+}
+
+TEST_F(ApplyBucketDiffStateTest, total_latency_is_updated)
+{
+ state->set_merge_start_time(framework::MilliSecTimer(clock));
+ clock.addMilliSecondsToTime(14);
+ state.reset();
+ EXPECT_EQ(14.0, merge_handler_metrics.mergeLatencyTotal.getLast());
+ EXPECT_EQ(1, merge_handler_metrics.mergeLatencyTotal.getCount());
+}
+
}