This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 95073053bc2 [chore] Add bvar for meta operations of BE (#28374)
95073053bc2 is described below
commit 95073053bc28be8a696fd4781cafc0f746f00a51
Author: Gavin Chou <[email protected]>
AuthorDate: Tue Dec 19 15:54:19 2023 +0800
[chore] Add bvar for meta operations of BE (#28374)
---
be/src/olap/olap_meta.cpp | 35 ++++++++++++-----------------------
be/src/util/doris_metrics.cpp | 15 ---------------
be/src/util/doris_metrics.h | 5 -----
3 files changed, 12 insertions(+), 43 deletions(-)
diff --git a/be/src/olap/olap_meta.cpp b/be/src/olap/olap_meta.cpp
index f393d4a2629..58a5123993a 100644
--- a/be/src/olap/olap_meta.cpp
+++ b/be/src/olap/olap_meta.cpp
@@ -17,6 +17,7 @@
#include "olap/olap_meta.h"
+#include <bvar/latency_recorder.h>
#include <fmt/format.h>
#include <fmt/ranges.h>
#include <rocksdb/env.h>
@@ -56,6 +57,10 @@ using namespace ErrorCode;
const std::string META_POSTFIX = "/meta";
const size_t PREFIX_LENGTH = 4;
+bvar::LatencyRecorder g_meta_put_latency("meta_put");
+bvar::LatencyRecorder g_meta_get_latency("meta_get");
+bvar::LatencyRecorder g_meta_remove_latency("meta_remove");
+
OlapMeta::OlapMeta(const std::string& root_path) : _root_path(root_path) {}
OlapMeta::~OlapMeta() = default;
@@ -117,7 +122,6 @@ Status OlapMeta::init() {
}
Status OlapMeta::get(const int column_family_index, const std::string& key,
std::string* value) {
- DorisMetrics::instance()->meta_read_request_total->increment(1);
auto& handle = _handles[column_family_index];
int64_t duration_ns = 0;
rocksdb::Status s;
@@ -125,7 +129,7 @@ Status OlapMeta::get(const int column_family_index, const
std::string& key, std:
SCOPED_RAW_TIMER(&duration_ns);
s = _db->Get(ReadOptions(), handle.get(), rocksdb::Slice(key), value);
}
-
DorisMetrics::instance()->meta_read_request_duration_us->increment(duration_ns
/ 1000);
+ g_meta_get_latency << (duration_ns / 1000);
if (s.IsNotFound()) {
return Status::Error<META_KEY_NOT_FOUND>("OlapMeta::get meet not found
key");
} else if (!s.ok()) {
@@ -137,7 +141,6 @@ Status OlapMeta::get(const int column_family_index, const
std::string& key, std:
bool OlapMeta::key_may_exist(const int column_family_index, const std::string&
key,
std::string* value) {
- DorisMetrics::instance()->meta_read_request_total->increment(1);
auto& handle = _handles[column_family_index];
int64_t duration_ns = 0;
bool is_exist = false;
@@ -145,15 +148,13 @@ bool OlapMeta::key_may_exist(const int
column_family_index, const std::string& k
SCOPED_RAW_TIMER(&duration_ns);
is_exist = _db->KeyMayExist(ReadOptions(), handle.get(),
rocksdb::Slice(key), value);
}
-
DorisMetrics::instance()->meta_read_request_duration_us->increment(duration_ns
/ 1000);
+ g_meta_get_latency << (duration_ns / 1000);
return is_exist;
}
Status OlapMeta::put(const int column_family_index, const std::string& key,
const std::string& value) {
- DorisMetrics::instance()->meta_write_request_total->increment(1);
-
// log all params
VLOG_DEBUG << "column_family_index: " << column_family_index << ", key: "
<< key
<< ", value: " << value;
@@ -162,9 +163,7 @@ Status OlapMeta::put(const int column_family_index, const
std::string& key,
rocksdb::Status s;
{
int64_t duration_ns = 0;
- Defer defer([&] {
-
DorisMetrics::instance()->meta_write_request_duration_us->increment(duration_ns
/ 1000);
- });
+ Defer defer([&] { g_meta_put_latency << (duration_ns / 1000); });
SCOPED_RAW_TIMER(&duration_ns);
WriteOptions write_options;
@@ -180,15 +179,11 @@ Status OlapMeta::put(const int column_family_index, const
std::string& key,
}
Status OlapMeta::put(const int column_family_index, const
std::vector<BatchEntry>& entries) {
- DorisMetrics::instance()->meta_write_request_total->increment(1);
-
auto* handle = _handles[column_family_index].get();
rocksdb::Status s;
{
int64_t duration_ns = 0;
- Defer defer([&] {
-
DorisMetrics::instance()->meta_write_request_duration_us->increment(duration_ns
/ 1000);
- });
+ Defer defer([&] { g_meta_put_latency << (duration_ns / 1000); });
SCOPED_RAW_TIMER(&duration_ns);
// construct write batch
@@ -212,14 +207,10 @@ Status OlapMeta::put(const int column_family_index, const
std::vector<BatchEntry
}
Status OlapMeta::put(rocksdb::WriteBatch* batch) {
- DorisMetrics::instance()->meta_write_request_total->increment(1);
-
rocksdb::Status s;
{
int64_t duration_ns = 0;
- Defer defer([&] {
-
DorisMetrics::instance()->meta_write_request_duration_us->increment(duration_ns
/ 1000);
- });
+ Defer defer([&] { g_meta_put_latency << (duration_ns / 1000); });
SCOPED_RAW_TIMER(&duration_ns);
WriteOptions write_options;
@@ -234,7 +225,6 @@ Status OlapMeta::put(rocksdb::WriteBatch* batch) {
}
Status OlapMeta::remove(const int column_family_index, const std::string& key)
{
- DorisMetrics::instance()->meta_write_request_total->increment(1);
auto& handle = _handles[column_family_index];
rocksdb::Status s;
int64_t duration_ns = 0;
@@ -244,7 +234,7 @@ Status OlapMeta::remove(const int column_family_index,
const std::string& key) {
write_options.sync = config::sync_tablet_meta;
s = _db->Delete(write_options, handle.get(), rocksdb::Slice(key));
}
-
DorisMetrics::instance()->meta_write_request_duration_us->increment(duration_ns
/ 1000);
+ g_meta_remove_latency << (duration_ns / 1000);
if (!s.ok()) {
return Status::Error<META_DELETE_ERROR>("rocks db delete key: {},
failed, reason: {}", key,
s.ToString());
@@ -253,7 +243,6 @@ Status OlapMeta::remove(const int column_family_index,
const std::string& key) {
}
Status OlapMeta::remove(const int column_family_index, const
std::vector<std::string>& keys) {
- DorisMetrics::instance()->meta_write_request_total->increment(1);
auto& handle = _handles[column_family_index];
rocksdb::Status s;
int64_t duration_ns = 0;
@@ -267,7 +256,7 @@ Status OlapMeta::remove(const int column_family_index,
const std::vector<std::st
}
s = _db->Write(write_options, &batch);
}
-
DorisMetrics::instance()->meta_write_request_duration_us->increment(duration_ns
/ 1000);
+ g_meta_remove_latency << (duration_ns / 1000);
if (!s.ok()) {
return Status::Error<META_DELETE_ERROR>("rocks db delete keys:{}
failed, reason:{}", keys,
s.ToString());
diff --git a/be/src/util/doris_metrics.cpp b/be/src/util/doris_metrics.cpp
index 53ae69e6db2..0773ed68bd5 100644
--- a/be/src/util/doris_metrics.cpp
+++ b/be/src/util/doris_metrics.cpp
@@ -92,16 +92,6 @@
DEFINE_COUNTER_METRIC_PROTOTYPE_5ARG(base_compaction_bytes_total, MetricUnit::BY
DEFINE_COUNTER_METRIC_PROTOTYPE_5ARG(cumulative_compaction_bytes_total,
MetricUnit::BYTES, "",
compaction_bytes_total, Labels({{"type",
"cumulative"}}));
-DEFINE_COUNTER_METRIC_PROTOTYPE_5ARG(meta_write_request_total,
MetricUnit::REQUESTS, "",
- meta_request_total, Labels({{"type",
"write"}}));
-DEFINE_COUNTER_METRIC_PROTOTYPE_5ARG(meta_read_request_total,
MetricUnit::REQUESTS, "",
- meta_request_total, Labels({{"type",
"read"}}));
-
-DEFINE_COUNTER_METRIC_PROTOTYPE_5ARG(meta_write_request_duration_us,
MetricUnit::MICROSECONDS, "",
- meta_request_duration, Labels({{"type",
"write"}}));
-DEFINE_COUNTER_METRIC_PROTOTYPE_5ARG(meta_read_request_duration_us,
MetricUnit::MICROSECONDS, "",
- meta_request_duration, Labels({{"type",
"read"}}));
-
DEFINE_COUNTER_METRIC_PROTOTYPE_5ARG(segment_read_total,
MetricUnit::OPERATIONS,
"(segment_v2) total number of segments
read", segment_read,
Labels({{"type", "segment_read_total"}}));
@@ -237,11 +227,6 @@ DorisMetrics::DorisMetrics() :
_metric_registry(_s_registry_name) {
INT_COUNTER_METRIC_REGISTER(_server_metric_entity,
cumulative_compaction_deltas_total);
INT_COUNTER_METRIC_REGISTER(_server_metric_entity,
cumulative_compaction_bytes_total);
- INT_COUNTER_METRIC_REGISTER(_server_metric_entity,
meta_write_request_total);
- INT_COUNTER_METRIC_REGISTER(_server_metric_entity,
meta_write_request_duration_us);
- INT_COUNTER_METRIC_REGISTER(_server_metric_entity,
meta_read_request_total);
- INT_COUNTER_METRIC_REGISTER(_server_metric_entity,
meta_read_request_duration_us);
-
INT_COUNTER_METRIC_REGISTER(_server_metric_entity, segment_read_total);
INT_COUNTER_METRIC_REGISTER(_server_metric_entity, segment_row_total);
diff --git a/be/src/util/doris_metrics.h b/be/src/util/doris_metrics.h
index da68f530af3..db52ceb405d 100644
--- a/be/src/util/doris_metrics.h
+++ b/be/src/util/doris_metrics.h
@@ -90,11 +90,6 @@ public:
IntCounter* publish_task_request_total = nullptr;
IntCounter* publish_task_failed_total = nullptr;
- IntCounter* meta_write_request_total = nullptr;
- IntCounter* meta_write_request_duration_us = nullptr;
- IntCounter* meta_read_request_total = nullptr;
- IntCounter* meta_read_request_duration_us = nullptr;
-
// Counters for segment_v2
// -----------------------
// total number of segments read
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]