diff --git a/src/facade/reply_builder.cc b/src/facade/reply_builder.cc index 161df5f0f78f..34e99451bbb5 100644 --- a/src/facade/reply_builder.cc +++ b/src/facade/reply_builder.cc @@ -181,7 +181,7 @@ void SinkReplyBuilder::Send() { uint64_t after_ns = util::fb2::ProactorBase::GetMonotonicTimeNs(); reply_stats.send_stats.count++; - reply_stats.send_stats.total_duration += (after_ns - pin.timestamp_ns) / 1'000; + reply_stats.send_stats.total_duration += (after_ns - pin.timestamp_ns); DVLOG(2) << "Finished writing " << total_size_ << " bytes"; } diff --git a/src/server/server_family.cc b/src/server/server_family.cc index c8ed05d08b0c..002ed3c44147 100644 --- a/src/server/server_family.cc +++ b/src/server/server_family.cc @@ -1713,7 +1713,7 @@ void PrintPrometheusMetrics(uint64_t uptime, const Metrics& m, DflyCmd* dfly_cmd MetricType::COUNTER, &resp->body()); { AppendMetricWithoutLabels("reply_duration_seconds", "", - m.facade_stats.reply_stats.send_stats.total_duration * 1e-6, + m.facade_stats.reply_stats.send_stats.total_duration * 1e-9, MetricType::COUNTER, &resp->body()); AppendMetricWithoutLabels("reply_total", "", m.facade_stats.reply_stats.send_stats.count, MetricType::COUNTER, &resp->body()); @@ -3015,8 +3015,6 @@ string ServerFamily::FormatInfoMetrics(const Metrics& m, std::string_view sectio append("defrag_attempt_total", m.shard_stats.defrag_attempt_total); append("defrag_realloc_total", m.shard_stats.defrag_realloc_total); append("defrag_task_invocation_total", m.shard_stats.defrag_task_invocation_total); - append("reply_count", reply_stats.send_stats.count); - append("reply_latency_usec", reply_stats.send_stats.total_duration); // Number of connections that are currently blocked on grabbing interpreter. append("blocked_on_interpreter", m.coordinator_stats.blocked_on_interpreter); diff --git a/tests/dragonfly/connection_test.py b/tests/dragonfly/connection_test.py index 6d4240145b17..14e89c01412b 100644 --- a/tests/dragonfly/connection_test.py +++ b/tests/dragonfly/connection_test.py @@ -607,21 +607,23 @@ async def test_keyspace_events_config_set(async_client: aioredis.Redis): @dfly_args({"max_busy_read_usec": 50000}) -async def test_reply_count(async_client: aioredis.Redis): +async def test_reply_count(df_server: DflyInstance): """Make sure reply aggregations reduce reply counts for common cases""" async def get_reply_count(): - return (await async_client.info("STATS"))["reply_count"] + metrics = await df_server.metrics() + return int(metrics["dragonfly_reply"].samples[0].value) async def measure(aw): before = await get_reply_count() await aw - return await get_reply_count() - before - 1 + return await get_reply_count() - before + async_client = df_server.client() await async_client.config_resetstat() base = await get_reply_count() info_diff = await get_reply_count() - base - assert info_diff == 1 + assert info_diff == 0 # no commands yet # Warm client buffer up await async_client.lpush("warmup", *(i for i in range(500)))