This is an automated email from the ASF dual-hosted git repository.
lichaoyong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new b58b1b3 [metrics] Make DorisMetrics to be a real singleton (#3417)
b58b1b3 is described below
commit b58b1b395350530a7cc85b4692b688ee3ca01cb5
Author: Yingchun Lai <[email protected]>
AuthorDate: Mon May 4 09:20:53 2020 +0800
[metrics] Make DorisMetrics to be a real singleton (#3417)
---
be/src/agent/task_worker_pool.cpp | 42 ++--
be/src/common/daemon.cpp | 34 +--
be/src/exec/broker_scan_node.cpp | 2 +-
be/src/exec/hash_table.cpp | 19 +-
be/src/exec/olap_scanner.cpp | 4 +-
be/src/exec/partitioned_hash_table.cc | 4 -
be/src/http/action/stream_load.cpp | 8 +-
be/src/olap/base_compaction.cpp | 4 +-
be/src/olap/cumulative_compaction.cpp | 4 +-
be/src/olap/fs/block_manager_metrics.cpp | 18 +-
be/src/olap/memtable.cpp | 4 +-
be/src/olap/olap_meta.cpp | 12 +-
be/src/olap/rowset/segment_v2/segment_iterator.cpp | 8 +-
be/src/olap/storage_engine.cpp | 8 +-
be/src/olap/tablet_manager.cpp | 18 +-
be/src/olap/task/engine_alter_tablet_task.cpp | 4 +-
be/src/olap/task/engine_batch_load_task.cpp | 18 +-
be/src/olap/task/engine_storage_migration_task.cpp | 2 +-
be/src/runtime/buffered_block_mgr2.cc | 5 -
be/src/runtime/disk_io_mgr.cc | 53 -----
be/src/runtime/disk_io_mgr_scan_range.cc | 10 -
be/src/runtime/exec_env_init.cpp | 12 +-
be/src/runtime/fragment_mgr.cpp | 4 +-
be/src/runtime/mem_pool.cpp | 6 +-
be/src/runtime/memory/chunk_allocator.cpp | 3 +-
be/src/runtime/memory/chunk_allocator.h | 2 +-
.../runtime/stream_load/stream_load_executor.cpp | 12 +-
be/src/runtime/test_env.cc | 1 -
be/src/service/http_service.cpp | 2 +-
be/src/util/doris_metrics.cpp | 224 ++++--------------
be/src/util/doris_metrics.h | 257 +++++++++++----------
be/src/util/system_metrics.h | 1 +
be/test/exec/tablet_sink_test.cpp | 2 -
be/test/http/stream_load_test.cpp | 2 -
be/test/olap/delete_handler_test.cpp | 2 -
be/test/olap/delta_writer_test.cpp | 2 -
be/test/olap/olap_snapshot_converter_test.cpp | 2 -
be/test/olap/rowset/alpha_rowset_test.cpp | 2 -
be/test/olap/rowset/beta_rowset_test.cpp | 2 -
be/test/olap/rowset/rowset_converter_test.cpp | 2 -
be/test/olap/rowset/rowset_meta_manager_test.cpp | 2 -
.../rowset/segment_v2/binary_prefix_page_test.cpp | 2 +-
.../rowset/unique_rowset_id_generator_test.cpp | 9 -
be/test/olap/tablet_mgr_test.cpp | 2 -
be/test/olap/txn_manager_test.cpp | 2 -
be/test/runtime/external_scan_context_mgr_test.cpp | 2 -
be/test/runtime/fragment_mgr_test.cpp | 2 -
be/test/runtime/load_channel_mgr_test.cpp | 2 -
be/test/runtime/memory/chunk_allocator_test.cpp | 1 -
be/test/runtime/memory_scratch_sink_test.cpp | 2 -
be/test/runtime/result_queue_mgr_test.cpp | 12 -
.../runtime/routine_load_task_executor_test.cpp | 2 -
be/test/runtime/small_file_mgr_test.cpp | 2 -
be/test/util/arrow/arrow_row_batch_test.cpp | 4 -
be/test/util/arrow/arrow_work_flow_test.cpp | 2 -
be/test/util/doris_metrics_test.cpp | 55 +++--
be/test/util/zip_util_test.cpp | 2 +-
run-ut.sh | 1 +
58 files changed, 320 insertions(+), 607 deletions(-)
diff --git a/be/src/agent/task_worker_pool.cpp
b/be/src/agent/task_worker_pool.cpp
index 94094a1..42f178a 100644
--- a/be/src/agent/task_worker_pool.cpp
+++ b/be/src/agent/task_worker_pool.cpp
@@ -267,14 +267,14 @@ void TaskWorkerPool::_finish_task(const
TFinishTaskRequest& finish_task_request)
uint32_t try_time = 0;
while (try_time < TASK_FINISH_MAX_RETRY) {
- DorisMetrics::finish_task_requests_total.increment(1);
+ DorisMetrics::instance()->finish_task_requests_total.increment(1);
AgentStatus client_status =
_master_client->finish_task(finish_task_request, &result);
if (client_status == DORIS_SUCCESS) {
LOG(INFO) << "finish task success.";
break;
} else {
- DorisMetrics::finish_task_requests_failed.increment(1);
+ DorisMetrics::instance()->finish_task_requests_failed.increment(1);
LOG(WARNING) << "finish task failed. status_code=" <<
result.status.status_code;
try_time += 1;
}
@@ -694,7 +694,7 @@ void*
TaskWorkerPool::_publish_version_worker_thread_callback(void* arg_this) {
worker_pool_this->_tasks.pop_front();
}
- DorisMetrics::publish_task_request_total.increment(1);
+ DorisMetrics::instance()->publish_task_request_total.increment(1);
LOG(INFO) << "get publish version task, signature:" <<
agent_task_req.signature;
Status st;
@@ -718,7 +718,7 @@ void*
TaskWorkerPool::_publish_version_worker_thread_callback(void* arg_this) {
TFinishTaskRequest finish_task_request;
if (res != OLAP_SUCCESS) {
- DorisMetrics::publish_task_failed_total.increment(1);
+ DorisMetrics::instance()->publish_task_failed_total.increment(1);
// if publish failed, return failed, FE will ignore this error and
// check error tablet ids and FE will also republish this task
LOG(WARNING) << "publish version failed. signature:" <<
agent_task_req.signature
@@ -891,7 +891,7 @@ void* TaskWorkerPool::_clone_worker_thread_callback(void*
arg_this) {
worker_pool_this->_tasks.pop_front();
}
- DorisMetrics::clone_requests_total.increment(1);
+ DorisMetrics::instance()->clone_requests_total.increment(1);
LOG(INFO) << "get clone task. signature:" << agent_task_req.signature;
vector<string> error_msgs;
@@ -908,7 +908,7 @@ void* TaskWorkerPool::_clone_worker_thread_callback(void*
arg_this) {
TStatusCode::type status_code = TStatusCode::OK;
if (status != DORIS_SUCCESS && status != DORIS_CREATE_TABLE_EXIST) {
- DorisMetrics::clone_requests_failed.increment(1);
+ DorisMetrics::instance()->clone_requests_failed.increment(1);
status_code = TStatusCode::RUNTIME_ERROR;
LOG(WARNING) << "clone failed. signature: " <<
agent_task_req.signature;
error_msgs.push_back("clone failed.");
@@ -1052,12 +1052,12 @@ void*
TaskWorkerPool::_report_task_worker_thread_callback(void* arg_this) {
request.__set_tasks(_s_task_signatures);
}
- DorisMetrics::report_task_requests_total.increment(1);
+ DorisMetrics::instance()->report_task_requests_total.increment(1);
TMasterResult result;
AgentStatus status = worker_pool_this->_master_client->report(request,
&result);
if (status != DORIS_SUCCESS) {
- DorisMetrics::report_task_requests_failed.increment(1);
+ DorisMetrics::instance()->report_task_requests_failed.increment(1);
LOG(WARNING) << "finish report task failed. status:" << status <<
", master host:"
<<
worker_pool_this->_master_info.network_address.hostname
<< "port:" <<
worker_pool_this->_master_info.network_address.port;
@@ -1104,23 +1104,23 @@ void*
TaskWorkerPool::_report_disk_state_worker_thread_callback(void* arg_this)
disk.__set_used(root_path_info.is_used);
disks[root_path_info.path] = disk;
- DorisMetrics::disks_total_capacity.set_metric(root_path_info.path,
-
root_path_info.disk_capacity);
- DorisMetrics::disks_avail_capacity.set_metric(root_path_info.path,
-
root_path_info.available);
-
DorisMetrics::disks_data_used_capacity.set_metric(root_path_info.path,
-
root_path_info.data_used_capacity);
- DorisMetrics::disks_state.set_metric(root_path_info.path,
- root_path_info.is_used ? 1L :
0L);
+ DorisMetrics::instance()->disks_total_capacity.set_metric(
+ root_path_info.path, root_path_info.disk_capacity);
+ DorisMetrics::instance()->disks_avail_capacity.set_metric(
+ root_path_info.path, root_path_info.available);
+ DorisMetrics::instance()->disks_data_used_capacity.set_metric(
+ root_path_info.path, root_path_info.data_used_capacity);
+ DorisMetrics::instance()->disks_state.set_metric(
+ root_path_info.path, root_path_info.is_used ? 1L : 0L);
}
request.__set_disks(disks);
- DorisMetrics::report_disk_requests_total.increment(1);
+ DorisMetrics::instance()->report_disk_requests_total.increment(1);
TMasterResult result;
AgentStatus status = worker_pool_this->_master_client->report(request,
&result);
if (status != DORIS_SUCCESS) {
- DorisMetrics::report_disk_requests_failed.increment(1);
+ DorisMetrics::instance()->report_disk_requests_failed.increment(1);
LOG(WARNING) << "finish report disk state failed. status:" <<
status << ", master host:"
<<
worker_pool_this->_master_info.network_address.hostname
<< ", port:" <<
worker_pool_this->_master_info.network_address.port;
@@ -1174,15 +1174,15 @@ void*
TaskWorkerPool::_report_tablet_worker_thread_callback(void* arg_this) {
#endif
}
int64_t max_compaction_score =
-
std::max(DorisMetrics::tablet_cumulative_max_compaction_score.value(),
-
DorisMetrics::tablet_base_max_compaction_score.value());
+
std::max(DorisMetrics::instance()->tablet_cumulative_max_compaction_score.value(),
+
DorisMetrics::instance()->tablet_base_max_compaction_score.value());
request.__set_tablet_max_compaction_score(max_compaction_score);
TMasterResult result;
status = worker_pool_this->_master_client->report(request, &result);
if (status != DORIS_SUCCESS) {
- DorisMetrics::report_all_tablets_requests_failed.increment(1);
+
DorisMetrics::instance()->report_all_tablets_requests_failed.increment(1);
LOG(WARNING) << "finish report olap table state failed. status:"
<< status
<< ", master host:"
<<
worker_pool_this->_master_info.network_address.hostname
diff --git a/be/src/common/daemon.cpp b/be/src/common/daemon.cpp
index db7838d..e8c9d77 100644
--- a/be/src/common/daemon.cpp
+++ b/be/src/common/daemon.cpp
@@ -134,48 +134,48 @@ void* calculate_metrics(void* dummy) {
std::map<std::string, int64_t> lst_net_receive_bytes;
while (true) {
- DorisMetrics::metrics()->trigger_hook();
+ DorisMetrics::instance()->metrics()->trigger_hook();
if (last_ts == -1L) {
last_ts = GetCurrentTimeMicros() / 1000;
- lst_push_bytes = DorisMetrics::push_request_write_bytes.value();
- lst_query_bytes = DorisMetrics::query_scan_bytes.value();
-
DorisMetrics::system_metrics()->get_disks_io_time(&lst_disks_io_time);
-
DorisMetrics::system_metrics()->get_network_traffic(&lst_net_send_bytes,
&lst_net_receive_bytes);
+ lst_push_bytes =
DorisMetrics::instance()->push_request_write_bytes.value();
+ lst_query_bytes =
DorisMetrics::instance()->query_scan_bytes.value();
+
DorisMetrics::instance()->system_metrics()->get_disks_io_time(&lst_disks_io_time);
+
DorisMetrics::instance()->system_metrics()->get_network_traffic(&lst_net_send_bytes,
&lst_net_receive_bytes);
} else {
int64_t current_ts = GetCurrentTimeMicros() / 1000;
long interval = (current_ts - last_ts) / 1000;
last_ts = current_ts;
// 1. push bytes per second
- int64_t current_push_bytes =
DorisMetrics::push_request_write_bytes.value();
+ int64_t current_push_bytes =
DorisMetrics::instance()->push_request_write_bytes.value();
int64_t pps = (current_push_bytes - lst_push_bytes) / (interval +
1);
- DorisMetrics::push_request_write_bytes_per_second.set_value(
+
DorisMetrics::instance()->push_request_write_bytes_per_second.set_value(
pps < 0 ? 0 : pps);
lst_push_bytes = current_push_bytes;
// 2. query bytes per second
- int64_t current_query_bytes =
DorisMetrics::query_scan_bytes.value();
+ int64_t current_query_bytes =
DorisMetrics::instance()->query_scan_bytes.value();
int64_t qps = (current_query_bytes - lst_query_bytes) / (interval
+ 1);
- DorisMetrics::query_scan_bytes_per_second.set_value(
+ DorisMetrics::instance()->query_scan_bytes_per_second.set_value(
qps < 0 ? 0 : qps);
lst_query_bytes = current_query_bytes;
// 3. max disk io util
- DorisMetrics::max_disk_io_util_percent.set_value(
-
DorisMetrics::system_metrics()->get_max_io_util(lst_disks_io_time, 15));
+ DorisMetrics::instance()->max_disk_io_util_percent.set_value(
+
DorisMetrics::instance()->system_metrics()->get_max_io_util(lst_disks_io_time,
15));
// update lst map
-
DorisMetrics::system_metrics()->get_disks_io_time(&lst_disks_io_time);
+
DorisMetrics::instance()->system_metrics()->get_disks_io_time(&lst_disks_io_time);
// 4. max network traffic
int64_t max_send = 0;
int64_t max_receive = 0;
- DorisMetrics::system_metrics()->get_max_net_traffic(
+ DorisMetrics::instance()->system_metrics()->get_max_net_traffic(
lst_net_send_bytes, lst_net_receive_bytes, 15, &max_send,
&max_receive);
- DorisMetrics::max_network_send_bytes_rate.set_value(max_send);
-
DorisMetrics::max_network_receive_bytes_rate.set_value(max_receive);
+
DorisMetrics::instance()->max_network_send_bytes_rate.set_value(max_send);
+
DorisMetrics::instance()->max_network_receive_bytes_rate.set_value(max_receive);
// update lst map
-
DorisMetrics::system_metrics()->get_network_traffic(&lst_net_send_bytes,
&lst_net_receive_bytes);
+
DorisMetrics::instance()->system_metrics()->get_network_traffic(&lst_net_send_bytes,
&lst_net_receive_bytes);
}
sleep(15); // 15 seconds
@@ -205,7 +205,7 @@ static void init_doris_metrics(const
std::vector<StorePath>& store_paths) {
}
}
DorisMetrics::instance()->initialize(
- "doris_be", paths, init_system_metrics, disk_devices,
network_interfaces);
+ paths, init_system_metrics, disk_devices, network_interfaces);
if (config::enable_metric_calculator) {
pthread_t calculator_pid;
diff --git a/be/src/exec/broker_scan_node.cpp b/be/src/exec/broker_scan_node.cpp
index 8fba064..d7fc1b4 100644
--- a/be/src/exec/broker_scan_node.cpp
+++ b/be/src/exec/broker_scan_node.cpp
@@ -420,7 +420,7 @@ void BrokerScanNode::scanner_worker(int start_idx, int
length) {
_scan_ranges[start_idx + i].scan_range.broker_scan_range;
status = scanner_scan(scan_range, scanner_expr_ctxs,
partition_expr_ctxs, &counter);
if (!status.ok()) {
- LOG(WARNING) << "Scanner[" << start_idx + i << "] prcess failed.
status="
+ LOG(WARNING) << "Scanner[" << start_idx + i << "] process failed.
status="
<< status.get_error_msg();
}
}
diff --git a/be/src/exec/hash_table.cpp b/be/src/exec/hash_table.cpp
index 706318a..eab95d4 100644
--- a/be/src/exec/hash_table.cpp
+++ b/be/src/exec/hash_table.cpp
@@ -67,12 +67,6 @@ HashTable::HashTable(const vector<ExprContext*>&
build_expr_ctxs,
_nodes = reinterpret_cast<uint8_t*>(malloc(_nodes_capacity *
_node_byte_size));
memset(_nodes, 0, _nodes_capacity * _node_byte_size);
-#if 0
- if (DorisMetrics::hash_table_total_bytes() != NULL) {
- DorisMetrics::hash_table_total_bytes()->increment(_nodes_capacity *
_node_byte_size);
- }
-#endif
-
_mem_tracker->consume(_nodes_capacity * _node_byte_size);
if (_mem_tracker->limit_exceeded()) {
mem_limit_exceeded(_nodes_capacity * _node_byte_size);
@@ -87,11 +81,6 @@ void HashTable::close() {
delete[] _expr_values_buffer;
delete[] _expr_value_null_bits;
free(_nodes);
-#if 0
- if (DorisMetrics::hash_table_total_bytes() != NULL) {
- DorisMetrics::hash_table_total_bytes()->increment(-_nodes_capacity *
_node_byte_size);
- }
-#endif
_mem_tracker->release(_nodes_capacity * _node_byte_size);
_mem_tracker->release(_buckets.size() * sizeof(Bucket));
}
@@ -257,13 +246,7 @@ void HashTable::grow_node_array() {
memset(new_nodes, 0, new_size);
memcpy(new_nodes, _nodes, old_size);
free(_nodes);
- _nodes = new_nodes;
-
-#if 0
- if (DorisMetrics::hash_table_total_bytes() != NULL) {
- DorisMetrics::hash_table_total_bytes()->increment(new_size - old_size);
- }
-#endif
+ _nodes = new_nodes;
_mem_tracker->consume(new_size - old_size);
if (_mem_tracker->limit_exceeded()) {
diff --git a/be/src/exec/olap_scanner.cpp b/be/src/exec/olap_scanner.cpp
index fbf3bf3..e62a60c 100644
--- a/be/src/exec/olap_scanner.cpp
+++ b/be/src/exec/olap_scanner.cpp
@@ -477,8 +477,8 @@ void OlapScanner::update_counter() {
COUNTER_UPDATE(_parent->_bitmap_index_filter_timer,
_reader->stats().bitmap_index_filter_timer);
COUNTER_UPDATE(_parent->_block_seek_counter,
_reader->stats().block_seek_num);
- DorisMetrics::query_scan_bytes.increment(_compressed_bytes_read);
- DorisMetrics::query_scan_rows.increment(_raw_rows_read);
+
DorisMetrics::instance()->query_scan_bytes.increment(_compressed_bytes_read);
+ DorisMetrics::instance()->query_scan_rows.increment(_raw_rows_read);
_has_update_counter = true;
}
diff --git a/be/src/exec/partitioned_hash_table.cc
b/be/src/exec/partitioned_hash_table.cc
index 9c50754..c6484fc 100644
--- a/be/src/exec/partitioned_hash_table.cc
+++ b/be/src/exec/partitioned_hash_table.cc
@@ -466,9 +466,6 @@ void PartitionedHashTable::Close() {
if ((num_buckets_ > LARGE_HT) || (num_probes_ > HEAVILY_USED)) VLOG(2) <<
PrintStats();
for (auto& data_page : data_pages_) allocator_->Free(move(data_page));
data_pages_.clear();
- //if (DorisMetrics::hash_table_total_bytes() != NULL) {
- //
DorisMetrics::hash_table_total_bytes()->increment(-total_data_page_size_);
- //}
if (bucket_allocation_ != nullptr)
allocator_->Free(move(bucket_allocation_));
}
@@ -546,7 +543,6 @@ bool PartitionedHashTable::GrowNodeArray(Status* status) {
if (!status->ok() || allocation == nullptr) return false;
next_node_ = reinterpret_cast<DuplicateNode*>(allocation->data());
data_pages_.push_back(std::move(allocation));
- //DorisMetrics::hash_table_total_bytes()->increment(DATA_PAGE_SIZE);
node_remaining_current_page_ = DATA_PAGE_SIZE / sizeof(DuplicateNode);
total_data_page_size_ += DATA_PAGE_SIZE;
return true;
diff --git a/be/src/http/action/stream_load.cpp
b/be/src/http/action/stream_load.cpp
index 9df80c6..4686d0d 100644
--- a/be/src/http/action/stream_load.cpp
+++ b/be/src/http/action/stream_load.cpp
@@ -85,13 +85,13 @@ static bool
is_format_support_streaming(TFileFormatType::type format) {
}
StreamLoadAction::StreamLoadAction(ExecEnv* exec_env) : _exec_env(exec_env) {
- DorisMetrics::metrics()->register_metric("streaming_load_requests_total",
+
DorisMetrics::instance()->metrics()->register_metric("streaming_load_requests_total",
&k_streaming_load_requests_total);
- DorisMetrics::metrics()->register_metric("streaming_load_bytes",
+
DorisMetrics::instance()->metrics()->register_metric("streaming_load_bytes",
&k_streaming_load_bytes);
- DorisMetrics::metrics()->register_metric("streaming_load_duration_ms",
+
DorisMetrics::instance()->metrics()->register_metric("streaming_load_duration_ms",
&k_streaming_load_duration_ms);
-
DorisMetrics::metrics()->register_metric("streaming_load_current_processing",
+
DorisMetrics::instance()->metrics()->register_metric("streaming_load_current_processing",
&k_streaming_load_current_processing);
}
diff --git a/be/src/olap/base_compaction.cpp b/be/src/olap/base_compaction.cpp
index 322eeb6..fe244d9 100644
--- a/be/src/olap/base_compaction.cpp
+++ b/be/src/olap/base_compaction.cpp
@@ -50,8 +50,8 @@ OLAPStatus BaseCompaction::compact() {
RETURN_NOT_OK(gc_unused_rowsets());
// 5. add metric to base compaction
-
DorisMetrics::base_compaction_deltas_total.increment(_input_rowsets.size());
- DorisMetrics::base_compaction_bytes_total.increment(_input_rowsets_size);
+
DorisMetrics::instance()->base_compaction_deltas_total.increment(_input_rowsets.size());
+
DorisMetrics::instance()->base_compaction_bytes_total.increment(_input_rowsets_size);
return OLAP_SUCCESS;
}
diff --git a/be/src/olap/cumulative_compaction.cpp
b/be/src/olap/cumulative_compaction.cpp
index 5aa6a8d..a96e8f4 100755
--- a/be/src/olap/cumulative_compaction.cpp
+++ b/be/src/olap/cumulative_compaction.cpp
@@ -58,8 +58,8 @@ OLAPStatus CumulativeCompaction::compact() {
RETURN_NOT_OK(gc_unused_rowsets());
// 7. add metric to cumulative compaction
-
DorisMetrics::cumulative_compaction_deltas_total.increment(_input_rowsets.size());
-
DorisMetrics::cumulative_compaction_bytes_total.increment(_input_rowsets_size);
+
DorisMetrics::instance()->cumulative_compaction_deltas_total.increment(_input_rowsets.size());
+
DorisMetrics::instance()->cumulative_compaction_bytes_total.increment(_input_rowsets_size);
return OLAP_SUCCESS;
}
diff --git a/be/src/olap/fs/block_manager_metrics.cpp
b/be/src/olap/fs/block_manager_metrics.cpp
index 446148e..dabc93d 100644
--- a/be/src/olap/fs/block_manager_metrics.cpp
+++ b/be/src/olap/fs/block_manager_metrics.cpp
@@ -24,16 +24,16 @@ namespace fs {
namespace internal {
BlockManagerMetrics::BlockManagerMetrics() {
- blocks_open_reading = &DorisMetrics::blocks_open_reading;
- blocks_open_writing = &DorisMetrics::blocks_open_writing;
+ blocks_open_reading = &DorisMetrics::instance()->blocks_open_reading;
+ blocks_open_writing = &DorisMetrics::instance()->blocks_open_writing;
- total_readable_blocks = &DorisMetrics::readable_blocks_total;
- total_writable_blocks = &DorisMetrics::writable_blocks_total;
- total_blocks_created = &DorisMetrics::blocks_created_total;
- total_blocks_deleted = &DorisMetrics::blocks_deleted_total;
- total_bytes_read = &DorisMetrics::bytes_read_total;
- total_bytes_written = &DorisMetrics::bytes_written_total;
- total_disk_sync = &DorisMetrics::disk_sync_total;
+ total_readable_blocks = &DorisMetrics::instance()->readable_blocks_total;
+ total_writable_blocks = &DorisMetrics::instance()->writable_blocks_total;
+ total_blocks_created = &DorisMetrics::instance()->blocks_created_total;
+ total_blocks_deleted = &DorisMetrics::instance()->blocks_deleted_total;
+ total_bytes_read = &DorisMetrics::instance()->bytes_read_total;
+ total_bytes_written = &DorisMetrics::instance()->bytes_written_total;
+ total_disk_sync = &DorisMetrics::instance()->disk_sync_total;
}
} // namespace internal
diff --git a/be/src/olap/memtable.cpp b/be/src/olap/memtable.cpp
index a66df8f..2dd059b 100644
--- a/be/src/olap/memtable.cpp
+++ b/be/src/olap/memtable.cpp
@@ -125,8 +125,8 @@ OLAPStatus MemTable::flush() {
}
RETURN_NOT_OK(_rowset_writer->flush());
}
- DorisMetrics::memtable_flush_total.increment(1);
- DorisMetrics::memtable_flush_duration_us.increment(duration_ns / 1000);
+ DorisMetrics::instance()->memtable_flush_total.increment(1);
+ DorisMetrics::instance()->memtable_flush_duration_us.increment(duration_ns
/ 1000);
return OLAP_SUCCESS;
}
diff --git a/be/src/olap/olap_meta.cpp b/be/src/olap/olap_meta.cpp
index 22f7d7e..a912f4f 100755
--- a/be/src/olap/olap_meta.cpp
+++ b/be/src/olap/olap_meta.cpp
@@ -86,7 +86,7 @@ OLAPStatus OlapMeta::init() {
}
OLAPStatus OlapMeta::get(const int column_family_index, const std::string&
key, std::string* value) {
- DorisMetrics::meta_read_request_total.increment(1);
+ DorisMetrics::instance()->meta_read_request_total.increment(1);
rocksdb::ColumnFamilyHandle* handle = _handles[column_family_index];
int64_t duration_ns = 0;
rocksdb::Status s;
@@ -94,7 +94,7 @@ OLAPStatus OlapMeta::get(const int column_family_index, const
std::string& key,
SCOPED_RAW_TIMER(&duration_ns);
s = _db->Get(ReadOptions(), handle, Slice(key), value);
}
- DorisMetrics::meta_read_request_duration_us.increment(duration_ns / 1000);
+
DorisMetrics::instance()->meta_read_request_duration_us.increment(duration_ns /
1000);
if (s.IsNotFound()) {
return OLAP_ERR_META_KEY_NOT_FOUND;
} else if (!s.ok()) {
@@ -105,7 +105,7 @@ OLAPStatus OlapMeta::get(const int column_family_index,
const std::string& key,
}
OLAPStatus OlapMeta::put(const int column_family_index, const std::string&
key, const std::string& value) {
- DorisMetrics::meta_write_request_total.increment(1);
+ DorisMetrics::instance()->meta_write_request_total.increment(1);
rocksdb::ColumnFamilyHandle* handle = _handles[column_family_index];
int64_t duration_ns = 0;
rocksdb::Status s;
@@ -115,7 +115,7 @@ OLAPStatus OlapMeta::put(const int column_family_index,
const std::string& key,
write_options.sync = config::sync_tablet_meta;
s = _db->Put(write_options, handle, Slice(key), Slice(value));
}
- DorisMetrics::meta_write_request_duration_us.increment(duration_ns / 1000);
+
DorisMetrics::instance()->meta_write_request_duration_us.increment(duration_ns
/ 1000);
if (!s.ok()) {
LOG(WARNING) << "rocks db put key:" << key << " failed, reason:" <<
s.ToString();
return OLAP_ERR_META_PUT;
@@ -124,7 +124,7 @@ OLAPStatus OlapMeta::put(const int column_family_index,
const std::string& key,
}
OLAPStatus OlapMeta::remove(const int column_family_index, const std::string&
key) {
- DorisMetrics::meta_write_request_total.increment(1);
+ DorisMetrics::instance()->meta_write_request_total.increment(1);
rocksdb::ColumnFamilyHandle* handle = _handles[column_family_index];
rocksdb::Status s;
int64_t duration_ns = 0;
@@ -134,7 +134,7 @@ OLAPStatus OlapMeta::remove(const int column_family_index,
const std::string& ke
write_options.sync = config::sync_tablet_meta;
s = _db->Delete(write_options, handle, Slice(key));
}
- DorisMetrics::meta_write_request_duration_us.increment(duration_ns / 1000);
+
DorisMetrics::instance()->meta_write_request_duration_us.increment(duration_ns
/ 1000);
if (!s.ok()) {
LOG(WARNING) << "rocks db delete key:" << key << " failed, reason:" <<
s.ToString();
return OLAP_ERR_META_DELETE;
diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
index 16a1ae8..cbb4024 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
@@ -124,7 +124,7 @@ Status SegmentIterator::init(const StorageReadOptions&
opts) {
}
Status SegmentIterator::_init() {
- DorisMetrics::segment_read_total.increment(1);
+ DorisMetrics::instance()->segment_read_total.increment(1);
// get file handle from file descriptor of segment
fs::BlockManager* block_mgr = fs::fs_util::block_manager();
RETURN_IF_ERROR(block_mgr->open_block(_segment->_fname, &_rblock));
@@ -139,7 +139,7 @@ Status SegmentIterator::_init() {
}
Status SegmentIterator::_get_row_ranges_by_keys() {
- DorisMetrics::segment_row_total.increment(num_rows());
+ DorisMetrics::instance()->segment_row_total.increment(num_rows());
// fast path for empty segment or empty key ranges
if (_row_bitmap.isEmpty() || _opts.key_ranges.empty()) {
@@ -167,7 +167,7 @@ Status SegmentIterator::_get_row_ranges_by_keys() {
}
// pre-condition: _row_ranges == [0, num_rows)
_row_bitmap = RowRanges::ranges_to_roaring(result_ranges);
-
DorisMetrics::segment_rows_by_short_key.increment(_row_bitmap.cardinality());
+
DorisMetrics::instance()->segment_rows_by_short_key.increment(_row_bitmap.cardinality());
return Status::OK();
}
@@ -278,7 +278,7 @@ Status
SegmentIterator::_get_row_ranges_from_conditions(RowRanges* condition_row
// intersection different columns's row ranges to get final row ranges
by zone map
RowRanges::ranges_intersection(zone_map_row_ranges, column_row_ranges,
&zone_map_row_ranges);
}
-
DorisMetrics::segment_rows_read_by_zone_map.increment(zone_map_row_ranges.count());
+
DorisMetrics::instance()->segment_rows_read_by_zone_map.increment(zone_map_row_ranges.count());
pre_size = condition_row_ranges->count();
RowRanges::ranges_intersection(*condition_row_ranges, zone_map_row_ranges,
condition_row_ranges);
_opts.stats->rows_stats_filtered += (pre_size -
condition_row_ranges->count());
diff --git a/be/src/olap/storage_engine.cpp b/be/src/olap/storage_engine.cpp
index 3f120b8..cabf6b5 100644
--- a/be/src/olap/storage_engine.cpp
+++ b/be/src/olap/storage_engine.cpp
@@ -512,14 +512,14 @@ void
StorageEngine::_perform_cumulative_compaction(DataDir* data_dir) {
return;
}
- DorisMetrics::cumulative_compaction_request_total.increment(1);
+ DorisMetrics::instance()->cumulative_compaction_request_total.increment(1);
CumulativeCompaction cumulative_compaction(best_tablet);
OLAPStatus res = cumulative_compaction.compact();
if (res != OLAP_SUCCESS) {
best_tablet->set_last_cumu_compaction_failure_time(UnixMillis());
if (res != OLAP_ERR_CUMULATIVE_NO_SUITABLE_VERSIONS) {
- DorisMetrics::cumulative_compaction_request_failed.increment(1);
+
DorisMetrics::instance()->cumulative_compaction_request_failed.increment(1);
LOG(WARNING) << "failed to do cumulative compaction. res=" << res
<< ", table=" << best_tablet->full_name();
}
@@ -535,13 +535,13 @@ void StorageEngine::_perform_base_compaction(DataDir*
data_dir) {
return;
}
- DorisMetrics::base_compaction_request_total.increment(1);
+ DorisMetrics::instance()->base_compaction_request_total.increment(1);
BaseCompaction base_compaction(best_tablet);
OLAPStatus res = base_compaction.compact();
if (res != OLAP_SUCCESS) {
best_tablet->set_last_base_compaction_failure_time(UnixMillis());
if (res != OLAP_ERR_BE_NO_SUITABLE_VERSION) {
- DorisMetrics::base_compaction_request_failed.increment(1);
+
DorisMetrics::instance()->base_compaction_request_failed.increment(1);
LOG(WARNING) << "failed to init base compaction. res=" << res
<< ", table=" << best_tablet->full_name();
}
diff --git a/be/src/olap/tablet_manager.cpp b/be/src/olap/tablet_manager.cpp
index 5239e1c..053d2f7 100644
--- a/be/src/olap/tablet_manager.cpp
+++ b/be/src/olap/tablet_manager.cpp
@@ -207,7 +207,7 @@ bool
TabletManager::_check_tablet_id_exist_unlocked(TTabletId tablet_id) {
OLAPStatus TabletManager::create_tablet(const TCreateTabletReq& request,
std::vector<DataDir*> stores) {
- DorisMetrics::create_tablet_requests_total.increment(1);
+ DorisMetrics::instance()->create_tablet_requests_total.increment(1);
int64_t tablet_id = request.tablet_id;
int32_t schema_hash = request.tablet_schema.schema_hash;
@@ -231,7 +231,7 @@ OLAPStatus TabletManager::create_tablet(const
TCreateTabletReq& request,
} else {
LOG(WARNING) << "fail to create tablet. tablet exist but with
different schema_hash. "
<< "tablet_id=" << tablet_id << ", schema_hash=" <<
schema_hash;
- DorisMetrics::create_tablet_requests_failed.increment(1);
+
DorisMetrics::instance()->create_tablet_requests_failed.increment(1);
return OLAP_ERR_CE_TABLET_ID_EXIST;
}
}
@@ -247,7 +247,7 @@ OLAPStatus TabletManager::create_tablet(const
TCreateTabletReq& request,
<< "new_tablet_id=" << tablet_id << ",
new_schema_hash=" << schema_hash
<< ", base_tablet_id=" << request.base_tablet_id
<< ", base_schema_hash=" << request.base_schema_hash;
- DorisMetrics::create_tablet_requests_failed.increment(1);
+
DorisMetrics::instance()->create_tablet_requests_failed.increment(1);
return OLAP_ERR_TABLE_CREATE_META_ERROR;
}
// If we are doing schema-change, we should use the same data dir
@@ -262,7 +262,7 @@ OLAPStatus TabletManager::create_tablet(const
TCreateTabletReq& request,
AlterTabletType::SCHEMA_CHANGE, request, is_schema_change,
base_tablet.get(), stores);
if (tablet == nullptr) {
LOG(WARNING) << "fail to create tablet. tablet_id=" <<
request.tablet_id;
- DorisMetrics::create_tablet_requests_failed.increment(1);
+ DorisMetrics::instance()->create_tablet_requests_failed.increment(1);
return OLAP_ERR_CE_CMD_PARAMS_ERROR;
}
@@ -459,7 +459,7 @@ OLAPStatus TabletManager::drop_tablet(
OLAPStatus TabletManager::_drop_tablet_unlocked(
TTabletId tablet_id, SchemaHash schema_hash, bool keep_files) {
LOG(INFO) << "begin drop tablet. tablet_id=" << tablet_id << ",
schema_hash=" << schema_hash;
- DorisMetrics::drop_tablet_requests_total.increment(1);
+ DorisMetrics::instance()->drop_tablet_requests_total.increment(1);
// Fetch tablet which need to be droped
TabletSharedPtr to_drop_tablet = _get_tablet_unlocked(tablet_id,
schema_hash);
@@ -762,9 +762,9 @@ TabletSharedPtr
TabletManager::find_best_tablet_to_compaction(CompactionType com
// TODO(lingbin): Remove 'max' from metric name, it would be
misunderstood as the
// biggest in history(like peak), but it is really just the value at
current moment.
if (compaction_type == CompactionType::BASE_COMPACTION) {
-
DorisMetrics::tablet_base_max_compaction_score.set_value(highest_score);
+
DorisMetrics::instance()->tablet_base_max_compaction_score.set_value(highest_score);
} else {
-
DorisMetrics::tablet_cumulative_max_compaction_score.set_value(highest_score);
+
DorisMetrics::instance()->tablet_cumulative_max_compaction_score.set_value(highest_score);
}
}
return best_tablet;
@@ -887,7 +887,7 @@ void TabletManager::release_schema_change_lock(TTabletId
tablet_id) {
}
OLAPStatus TabletManager::report_tablet_info(TTabletInfo* tablet_info) {
- DorisMetrics::report_tablet_requests_total.increment(1);
+ DorisMetrics::instance()->report_tablet_requests_total.increment(1);
LOG(INFO) << "begin to process report tablet info."
<< "tablet_id=" << tablet_info->tablet_id
<< ", schema_hash=" << tablet_info->schema_hash;
@@ -915,7 +915,7 @@ OLAPStatus
TabletManager::report_all_tablets_info(std::map<TTabletId, TTablet>*
StorageEngine::instance()->txn_manager()->build_expire_txn_map(&expire_txn_map);
LOG(INFO) << "find expired transactions for " << expire_txn_map.size() <<
" tablets";
- DorisMetrics::report_all_tablets_requests_total.increment(1);
+ DorisMetrics::instance()->report_all_tablets_requests_total.increment(1);
for (int32 i = 0; i < _tablet_map_lock_shard_size; i++) {
ReadLock rlock(&_tablet_map_lock_array[i]);
diff --git a/be/src/olap/task/engine_alter_tablet_task.cpp
b/be/src/olap/task/engine_alter_tablet_task.cpp
index 057975c..2d76881 100644
--- a/be/src/olap/task/engine_alter_tablet_task.cpp
+++ b/be/src/olap/task/engine_alter_tablet_task.cpp
@@ -33,7 +33,7 @@ EngineAlterTabletTask::EngineAlterTabletTask(const
TAlterTabletReqV2& request,
_process_name(process_name) { }
OLAPStatus EngineAlterTabletTask::execute() {
- DorisMetrics::create_rollup_requests_total.increment(1);
+ DorisMetrics::instance()->create_rollup_requests_total.increment(1);
SchemaChangeHandler handler;
OLAPStatus res = handler.process_alter_tablet_v2(_alter_tablet_req);
@@ -44,7 +44,7 @@ OLAPStatus EngineAlterTabletTask::execute() {
<< ", base_schema_hash=" <<
_alter_tablet_req.base_schema_hash
<< ", new_tablet_id=" << _alter_tablet_req.new_tablet_id
<< ", new_schema_hash=" <<
_alter_tablet_req.new_schema_hash;
- DorisMetrics::create_rollup_requests_failed.increment(1);
+ DorisMetrics::instance()->create_rollup_requests_failed.increment(1);
return res;
}
diff --git a/be/src/olap/task/engine_batch_load_task.cpp
b/be/src/olap/task/engine_batch_load_task.cpp
index d2076a4..9951777 100644
--- a/be/src/olap/task/engine_batch_load_task.cpp
+++ b/be/src/olap/task/engine_batch_load_task.cpp
@@ -294,7 +294,7 @@ OLAPStatus EngineBatchLoadTask::_push(const TPushReq&
request,
if (tablet_info_vec == nullptr) {
LOG(WARNING) << "invalid output parameter which is nullptr pointer.";
- DorisMetrics::push_requests_fail_total.increment(1);
+ DorisMetrics::instance()->push_requests_fail_total.increment(1);
return OLAP_ERR_CE_CMD_PARAMS_ERROR;
}
@@ -303,7 +303,7 @@ OLAPStatus EngineBatchLoadTask::_push(const TPushReq&
request,
if (tablet == nullptr) {
LOG(WARNING) << "false to find tablet. tablet=" << request.tablet_id
<< ", schema_hash=" << request.schema_hash;
- DorisMetrics::push_requests_fail_total.increment(1);
+ DorisMetrics::instance()->push_requests_fail_total.increment(1);
return OLAP_ERR_TABLE_NOT_FOUND;
}
@@ -331,16 +331,16 @@ OLAPStatus EngineBatchLoadTask::_push(const TPushReq&
request,
<< "transaction_id=" << request.transaction_id
<< " tablet=" << tablet->full_name()
<< ", cost=" << PrettyPrinter::print(duration_ns,
TUnit::TIME_NS);
- DorisMetrics::push_requests_fail_total.increment(1);
+ DorisMetrics::instance()->push_requests_fail_total.increment(1);
} else {
LOG(INFO) << "success to push delta, "
<< "transaction_id=" << request.transaction_id
<< " tablet=" << tablet->full_name()
<< ", cost=" << PrettyPrinter::print(duration_ns, TUnit::TIME_NS);
- DorisMetrics::push_requests_success_total.increment(1);
- DorisMetrics::push_request_duration_us.increment(duration_ns / 1000);
-
DorisMetrics::push_request_write_bytes.increment(push_handler.write_bytes());
-
DorisMetrics::push_request_write_rows.increment(push_handler.write_rows());
+ DorisMetrics::instance()->push_requests_success_total.increment(1);
+
DorisMetrics::instance()->push_request_duration_us.increment(duration_ns /
1000);
+
DorisMetrics::instance()->push_request_write_bytes.increment(push_handler.write_bytes());
+
DorisMetrics::instance()->push_request_write_rows.increment(push_handler.write_rows());
}
return res;
}
@@ -349,7 +349,7 @@ OLAPStatus EngineBatchLoadTask::_delete_data(
const TPushReq& request,
vector<TTabletInfo>* tablet_info_vec) {
LOG(INFO) << "begin to process delete data. request=" <<
ThriftDebugString(request);
- DorisMetrics::delete_requests_total.increment(1);
+ DorisMetrics::instance()->delete_requests_total.increment(1);
OLAPStatus res = OLAP_SUCCESS;
@@ -378,7 +378,7 @@ OLAPStatus EngineBatchLoadTask::_delete_data(
OLAP_LOG_WARNING("fail to push empty version for delete data. "
"[res=%d tablet='%s']",
res, tablet->full_name().c_str());
- DorisMetrics::delete_requests_failed.increment(1);
+ DorisMetrics::instance()->delete_requests_failed.increment(1);
return res;
}
diff --git a/be/src/olap/task/engine_storage_migration_task.cpp
b/be/src/olap/task/engine_storage_migration_task.cpp
index 8e26fc7..47538c1 100644
--- a/be/src/olap/task/engine_storage_migration_task.cpp
+++ b/be/src/olap/task/engine_storage_migration_task.cpp
@@ -42,7 +42,7 @@ OLAPStatus
EngineStorageMigrationTask::_storage_medium_migrate(
LOG(INFO) << "begin to process storage media migrate. "
<< "tablet_id=" << tablet_id << ", schema_hash=" << schema_hash
<< ", dest_storage_medium=" << storage_medium;
- DorisMetrics::storage_migrate_requests_total.increment(1);
+ DorisMetrics::instance()->storage_migrate_requests_total.increment(1);
OLAPStatus res = OLAP_SUCCESS;
TabletSharedPtr tablet =
StorageEngine::instance()->tablet_manager()->get_tablet(tablet_id, schema_hash);
diff --git a/be/src/runtime/buffered_block_mgr2.cc
b/be/src/runtime/buffered_block_mgr2.cc
index 2dfad5c..f5772c7 100644
--- a/be/src/runtime/buffered_block_mgr2.cc
+++ b/be/src/runtime/buffered_block_mgr2.cc
@@ -795,11 +795,6 @@ Status BufferedBlockMgr2::write_unpinned_block(Block*
block) {
_bytes_written_counter->update(block->_valid_data_len);
++_writes_issued;
if (_writes_issued == 1) {
-#if 0
- if (DorisMetrics::num_queries_spilled() != NULL) {
- DorisMetrics::num_queries_spilled()->increment(1);
- }
-#endif
}
return Status::OK();
}
diff --git a/be/src/runtime/disk_io_mgr.cc b/be/src/runtime/disk_io_mgr.cc
index dfe7549..529d5a0 100644
--- a/be/src/runtime/disk_io_mgr.cc
+++ b/be/src/runtime/disk_io_mgr.cc
@@ -80,7 +80,6 @@ const int DiskIoMgr::DEFAULT_QUEUE_CAPACITY = 2;
// This method is used to clean up resources upon eviction of a cache file
handle.
// void
DiskIoMgr::HdfsCachedFileHandle::release(DiskIoMgr::HdfsCachedFileHandle** h) {
-// DorisMetrics::IO_MGR_NUM_CACHED_FILE_HANDLES->increment(-1L);
// VLOG_FILE << "Cached file handle evicted, hdfsCloseFile() fid=" <<
(*h)->_hdfs_file;
// delete (*h);
// }
@@ -719,24 +718,11 @@ char* DiskIoMgr::get_free_buffer(int64_t* buffer_size) {
char* buffer = NULL;
if (_free_buffers[idx].empty()) {
++_num_allocated_buffers;
-#if 0
- if (DorisMetrics::io_mgr_num_buffers() != NULL) {
- DorisMetrics::io_mgr_num_buffers()->increment(1L);
- }
- if (DorisMetrics::io_mgr_total_bytes() != NULL) {
- DorisMetrics::io_mgr_total_bytes()->increment(*buffer_size);
- }
-#endif
// Update the process mem usage. This is checked the next time we
start
// a read for the next reader (DiskIoMgr::GetNextScanRange)
_process_mem_tracker->consume(*buffer_size);
buffer = new char[*buffer_size];
} else {
-#if 0
- if (DorisMetrics::io_mgr_num_unused_buffers() != NULL) {
- DorisMetrics::io_mgr_num_unused_buffers()->increment(-1L);
- }
-#endif
buffer = _free_buffers[idx].front();
_free_buffers[idx].pop_front();
}
@@ -761,17 +747,6 @@ void DiskIoMgr::gc_io_buffers() {
}
_free_buffers[idx].clear();
}
-#if 0
- if (DorisMetrics::io_mgr_num_buffers() != NULL) {
- DorisMetrics::io_mgr_num_buffers()->increment(-buffers_freed);
- }
- if (DorisMetrics::io_mgr_total_bytes() != NULL) {
- DorisMetrics::io_mgr_total_bytes()->increment(-bytes_freed);
- }
- if (DorisMetrics::io_mgr_num_unused_buffers() != NULL) {
- DorisMetrics::io_mgr_num_unused_buffers()->update(0);
- }
-#endif
}
void DiskIoMgr::return_free_buffer(BufferDescriptor* desc) {
@@ -789,23 +764,10 @@ void DiskIoMgr::return_free_buffer(char* buffer, int64_t
buffer_size) {
unique_lock<mutex> lock(_free_buffers_lock);
if (!config::disable_mem_pools && _free_buffers[idx].size() <
config::max_free_io_buffers) {
_free_buffers[idx].push_back(buffer);
-#if 0
- if (DorisMetrics::io_mgr_num_unused_buffers() != NULL) {
- DorisMetrics::io_mgr_num_unused_buffers()->increment(1L);
- }
-#endif
} else {
_process_mem_tracker->release(buffer_size);
--_num_allocated_buffers;
delete[] buffer;
-#if 0
- if (DorisMetrics::io_mgr_num_buffers() != NULL) {
- DorisMetrics::io_mgr_num_buffers()->increment(-1L);
- }
- if (DorisMetrics::io_mgr_total_bytes() != NULL) {
- DorisMetrics::io_mgr_total_bytes()->increment(-buffer_size);
- }
-#endif
}
}
@@ -1179,11 +1141,6 @@ Status DiskIoMgr::write_range_helper(FILE* file_handle,
WriteRange* write_range)
<< errno << " description=" << get_str_err_msg();
return Status::InternalError(error_msg.str());
}
-#if 0
- if (DorisMetrics::io_mgr_bytes_written() != NULL) {
- DorisMetrics::io_mgr_bytes_written()->increment(write_range->_len);
- }
-#endif
return Status::OK();
}
@@ -1237,20 +1194,13 @@ Status DiskIoMgr::add_write_range(RequestContext*
writer, WriteRange* write_rang
* // Check if a cached file handle exists and validate the mtime, if the
mtime of the
* // cached handle is not matching the mtime of the requested file, reopen.
* if (detail::is_file_handle_caching_enabled() &&
_file_handle_cache.Pop(fname, &fh)) {
- * DorisMetrics::IO_MGR_NUM_CACHED_FILE_HANDLES->increment(-1L);
* if (fh->mtime() == mtime) {
- * DorisMetrics::IO_MGR_CACHED_FILE_HANDLES_HIT_RATIO->Update(1L);
- * DorisMetrics::IO_MGR_CACHED_FILE_HANDLES_HIT_COUNT->increment(1L);
- * DorisMetrics::IO_MGR_NUM_FILE_HANDLES_OUTSTANDING->increment(1L);
* return fh;
* }
* VLOG_FILE << "mtime mismatch, closing cached file handle. Closing
file=" << fname;
* delete fh;
* }
*
- * // Update cache hit ratio
- * DorisMetrics::IO_MGR_CACHED_FILE_HANDLES_HIT_RATIO->Update(0L);
- * DorisMetrics::IO_MGR_CACHED_FILE_HANDLES_MISS_COUNT->increment(1L);
* fh = new HdfsCachedFileHandle(fs, fname, mtime);
*
* // Check if the file handle was opened correctly
@@ -1260,7 +1210,6 @@ Status DiskIoMgr::add_write_range(RequestContext* writer,
WriteRange* write_rang
* return NULL;
* }
*
- * DorisMetrics::IO_MGR_NUM_FILE_HANDLES_OUTSTANDING->increment(1L);
* return fh;
* }
*/
@@ -1268,7 +1217,6 @@ Status DiskIoMgr::add_write_range(RequestContext* writer,
WriteRange* write_rang
/*
* void DiskIoMgr::cache_or_close_file_handle(const char* fname,
* DiskIoMgr::HdfsCachedFileHandle* fid, bool close) {
- * DorisMetrics::IO_MGR_NUM_FILE_HANDLES_OUTSTANDING->increment(-1L);
* // Try to unbuffer the handle, on filesystems that do not support this
call a non-zero
* // return code indicates that the operation was not successful and thus
the file is
* // closed.
@@ -1277,7 +1225,6 @@ Status DiskIoMgr::add_write_range(RequestContext* writer,
WriteRange* write_rang
* // Clear read statistics before returning
* hdfsFileClearReadStatistics(fid->file());
* _file_handle_cache.Put(fname, fid);
- * DorisMetrics::IO_MGR_NUM_CACHED_FILE_HANDLES->increment(1L);
* } else {
* if (close) {
* VLOG_FILE << "Closing file=" << fname;
diff --git a/be/src/runtime/disk_io_mgr_scan_range.cc
b/be/src/runtime/disk_io_mgr_scan_range.cc
index 5fbaa53..7b6146f 100644
--- a/be/src/runtime/disk_io_mgr_scan_range.cc
+++ b/be/src/runtime/disk_io_mgr_scan_range.cc
@@ -313,11 +313,6 @@ Status DiskIoMgr::ScanRange::open() {
return Status::InternalError(ss.str());
}
// }
-#if 0
- if (DorisMetrics::io_mgr_num_open_files() != NULL) {
- DorisMetrics::io_mgr_num_open_files()->increment(1L);
- }
-#endif
return Status::OK();
}
@@ -363,11 +358,6 @@ void DiskIoMgr::ScanRange::close() {
fclose(_local_file);
_local_file = NULL;
}
-#if 0
- if (DorisMetrics::io_mgr_num_open_files() != NULL) {
- DorisMetrics::io_mgr_num_open_files()->increment(-1L);
- }
-#endif
}
/*
diff --git a/be/src/runtime/exec_env_init.cpp b/be/src/runtime/exec_env_init.cpp
index f0156a5..ea0b830 100644
--- a/be/src/runtime/exec_env_init.cpp
+++ b/be/src/runtime/exec_env_init.cpp
@@ -72,7 +72,7 @@ Status ExecEnv::init(ExecEnv* env, const
std::vector<StorePath>& store_paths) {
Status ExecEnv::_init(const std::vector<StorePath>& store_paths) {
_store_paths = store_paths;
_external_scan_context_mgr = new ExternalScanContextMgr(this);
- _metrics = DorisMetrics::metrics();
+ _metrics = DorisMetrics::instance()->metrics();
_stream_mgr = new DataStreamMgr();
_result_mgr = new ResultBufferMgr();
_result_queue_mgr = new ResultQueueMgr();
@@ -106,10 +106,10 @@ Status ExecEnv::_init(const std::vector<StorePath>&
store_paths) {
_small_file_mgr = new SmallFileMgr(this, config::small_file_dir);
_plugin_mgr = new PluginMgr();
- _backend_client_cache->init_metrics(DorisMetrics::metrics(), "backend");
- _frontend_client_cache->init_metrics(DorisMetrics::metrics(), "frontend");
- _broker_client_cache->init_metrics(DorisMetrics::metrics(), "broker");
- _extdatasource_client_cache->init_metrics(DorisMetrics::metrics(),
"extdatasource");
+ _backend_client_cache->init_metrics(DorisMetrics::instance()->metrics(),
"backend");
+ _frontend_client_cache->init_metrics(DorisMetrics::instance()->metrics(),
"frontend");
+ _broker_client_cache->init_metrics(DorisMetrics::instance()->metrics(),
"broker");
+
_extdatasource_client_cache->init_metrics(DorisMetrics::instance()->metrics(),
"extdatasource");
_result_mgr->init();
_cgroups_mgr->init_cgroups();
_etl_job_mgr->init();
@@ -182,7 +182,7 @@ Status ExecEnv::_init_mem_tracker() {
LOG(INFO) << "Using global memory limit: " <<
PrettyPrinter::print(bytes_limit, TUnit::BYTES);
RETURN_IF_ERROR(_disk_io_mgr->init(_mem_tracker));
- RETURN_IF_ERROR(_tmp_file_mgr->init(DorisMetrics::metrics()));
+ RETURN_IF_ERROR(_tmp_file_mgr->init(DorisMetrics::instance()->metrics()));
int64_t storage_cache_limit = ParseUtil::parse_mem_spec(
config::storage_page_cache_limit, &is_percent);
diff --git a/be/src/runtime/fragment_mgr.cpp b/be/src/runtime/fragment_mgr.cpp
index c709d06..c461c0a 100644
--- a/be/src/runtime/fragment_mgr.cpp
+++ b/be/src/runtime/fragment_mgr.cpp
@@ -212,8 +212,8 @@ Status FragmentExecState::execute() {
_executor.open();
_executor.close();
}
- DorisMetrics::fragment_requests_total.increment(1);
- DorisMetrics::fragment_request_duration_us.increment(duration_ns / 1000);
+ DorisMetrics::instance()->fragment_requests_total.increment(1);
+
DorisMetrics::instance()->fragment_request_duration_us.increment(duration_ns /
1000);
return Status::OK();
}
diff --git a/be/src/runtime/mem_pool.cpp b/be/src/runtime/mem_pool.cpp
index d3dab99..37ca197 100644
--- a/be/src/runtime/mem_pool.cpp
+++ b/be/src/runtime/mem_pool.cpp
@@ -40,7 +40,7 @@ uint32_t MemPool::k_zero_length_region_
alignas(std::max_align_t) = MEM_POOL_POI
MemPool::ChunkInfo::ChunkInfo(const Chunk& chunk_)
: chunk(chunk_),
allocated_bytes(0) {
- DorisMetrics::memory_pool_bytes_total.increment(chunk.size);
+ DorisMetrics::instance()->memory_pool_bytes_total.increment(chunk.size);
}
MemPool::~MemPool() {
@@ -50,7 +50,7 @@ MemPool::~MemPool() {
ChunkAllocator::instance()->free(chunk.chunk);
}
mem_tracker_->release(total_bytes_released);
- DorisMetrics::memory_pool_bytes_total.increment(-total_bytes_released);
+
DorisMetrics::instance()->memory_pool_bytes_total.increment(-total_bytes_released);
}
void MemPool::clear() {
@@ -76,7 +76,7 @@ void MemPool::free_all() {
total_reserved_bytes_ = 0;
mem_tracker_->release(total_bytes_released);
- DorisMetrics::memory_pool_bytes_total.increment(-total_bytes_released);
+
DorisMetrics::instance()->memory_pool_bytes_total.increment(-total_bytes_released);
}
bool MemPool::find_chunk(size_t min_size, bool check_limits) {
diff --git a/be/src/runtime/memory/chunk_allocator.cpp
b/be/src/runtime/memory/chunk_allocator.cpp
index 04484a4..e331ef3 100644
--- a/be/src/runtime/memory/chunk_allocator.cpp
+++ b/be/src/runtime/memory/chunk_allocator.cpp
@@ -46,7 +46,6 @@ static std::mutex s_mutex;
ChunkAllocator* ChunkAllocator::instance() {
std::lock_guard<std::mutex> l(s_mutex);
if (_s_instance == nullptr) {
- DorisMetrics::instance()->initialize("common_ut");
CpuInfo::init();
ChunkAllocator::init_instance(4096);
}
@@ -104,7 +103,7 @@ void ChunkAllocator::init_instance(size_t reserve_limit) {
_s_instance = new ChunkAllocator(reserve_limit);
#define REGISTER_METIRC_WITH_NAME(name, metric) \
- DorisMetrics::metrics()->register_metric(#name, &metric)
+ DorisMetrics::instance()->metrics()->register_metric(#name, &metric)
#define REGISTER_METIRC_WITH_PREFIX(prefix, name) \
REGISTER_METIRC_WITH_NAME(prefix##name, name)
diff --git a/be/src/runtime/memory/chunk_allocator.h
b/be/src/runtime/memory/chunk_allocator.h
index 8ff7768..124e735 100644
--- a/be/src/runtime/memory/chunk_allocator.h
+++ b/be/src/runtime/memory/chunk_allocator.h
@@ -45,7 +45,7 @@ class ChunkArena;
// ChunkArena will keep a separate free list for each chunk size. In common
case, chunk will
// be allocated from current core arena. In this case, there is no lock
contention.
//
-// Must call CpuInfo::init() and DorisMetrics::initialize() to achieve good
performance
+// Must call CpuInfo::init() and DorisMetrics::instance()->initialize() to
achieve good performance
// before first object is created. And call init_instance() before use
instance is called.
class ChunkAllocator {
public:
diff --git a/be/src/runtime/stream_load/stream_load_executor.cpp
b/be/src/runtime/stream_load/stream_load_executor.cpp
index 14e17be..b0ef581 100644
--- a/be/src/runtime/stream_load/stream_load_executor.cpp
+++ b/be/src/runtime/stream_load/stream_load_executor.cpp
@@ -43,7 +43,7 @@ Status k_stream_load_plan_status;
#endif
Status StreamLoadExecutor::execute_plan_fragment(StreamLoadContext* ctx) {
- DorisMetrics::txn_exec_plan_total.increment(1);
+ DorisMetrics::instance()->txn_exec_plan_total.increment(1);
// submit this params
#ifndef BE_TEST
ctx->ref();
@@ -78,8 +78,8 @@ Status
StreamLoadExecutor::execute_plan_fragment(StreamLoadContext* ctx) {
}
if (status.ok()) {
-
DorisMetrics::stream_receive_bytes_total.increment(ctx->receive_bytes);
-
DorisMetrics::stream_load_rows_total.increment(ctx->number_loaded_rows);
+
DorisMetrics::instance()->stream_receive_bytes_total.increment(ctx->receive_bytes);
+
DorisMetrics::instance()->stream_load_rows_total.increment(ctx->number_loaded_rows);
}
} else {
LOG(WARNING) << "fragment execute failed"
@@ -117,7 +117,7 @@ Status
StreamLoadExecutor::execute_plan_fragment(StreamLoadContext* ctx) {
}
Status StreamLoadExecutor::begin_txn(StreamLoadContext* ctx) {
- DorisMetrics::txn_begin_request_total.increment(1);
+ DorisMetrics::instance()->txn_begin_request_total.increment(1);
TLoadTxnBeginRequest request;
set_request_auth(&request, ctx->auth);
@@ -158,7 +158,7 @@ Status StreamLoadExecutor::begin_txn(StreamLoadContext*
ctx) {
}
Status StreamLoadExecutor::commit_txn(StreamLoadContext* ctx) {
- DorisMetrics::txn_commit_request_total.increment(1);
+ DorisMetrics::instance()->txn_commit_request_total.increment(1);
TLoadTxnCommitRequest request;
set_request_auth(&request, ctx->auth);
@@ -206,7 +206,7 @@ Status StreamLoadExecutor::commit_txn(StreamLoadContext*
ctx) {
}
void StreamLoadExecutor::rollback_txn(StreamLoadContext* ctx) {
- DorisMetrics::txn_rollback_request_total.increment(1);
+ DorisMetrics::instance()->txn_rollback_request_total.increment(1);
TNetworkAddress master_addr = _exec_env->master_info()->network_address;
TLoadTxnRollbackRequest request;
diff --git a/be/src/runtime/test_env.cc b/be/src/runtime/test_env.cc
index b0d5048..1369298 100644
--- a/be/src/runtime/test_env.cc
+++ b/be/src/runtime/test_env.cc
@@ -28,7 +28,6 @@ boost::scoped_ptr<MetricRegistry> TestEnv::_s_static_metrics;
TestEnv::TestEnv() {
if (_s_static_metrics == NULL) {
_s_static_metrics.reset(new MetricRegistry("test_env"));
- // DorisMetrics::create_metrics(_s_static_metrics.get());
}
_exec_env.reset(new ExecEnv());
// _exec_env->init_for_tests();
diff --git a/be/src/service/http_service.cpp b/be/src/service/http_service.cpp
index caf6a2c..b1b30bf 100644
--- a/be/src/service/http_service.cpp
+++ b/be/src/service/http_service.cpp
@@ -90,7 +90,7 @@ Status HttpService::start() {
// register metrics
{
- auto action = new MetricsAction(DorisMetrics::metrics());
+ auto action = new MetricsAction(DorisMetrics::instance()->metrics());
_ev_http_server->register_handler(HttpMethod::GET, "/metrics", action);
}
diff --git a/be/src/util/doris_metrics.cpp b/be/src/util/doris_metrics.cpp
index 8b141d8..36c3e3b 100644
--- a/be/src/util/doris_metrics.cpp
+++ b/be/src/util/doris_metrics.cpp
@@ -28,148 +28,8 @@
namespace doris {
-const char* DorisMetrics::_s_hook_name = "doris_metrics";
-
-DorisMetrics DorisMetrics::_s_doris_metrics;
-
-// counters
-IntCounter DorisMetrics::fragment_requests_total;
-IntCounter DorisMetrics::fragment_request_duration_us;
-IntCounter DorisMetrics::http_requests_total;
-IntCounter DorisMetrics::http_request_duration_us;
-IntCounter DorisMetrics::http_request_send_bytes;
-IntCounter DorisMetrics::query_scan_bytes;
-IntCounter DorisMetrics::query_scan_rows;
-IntCounter DorisMetrics::ranges_processed_total;
-IntCounter DorisMetrics::push_requests_success_total;
-IntCounter DorisMetrics::push_requests_fail_total;
-IntCounter DorisMetrics::push_request_duration_us;
-IntCounter DorisMetrics::push_request_write_bytes;
-IntCounter DorisMetrics::push_request_write_rows;
-IntCounter DorisMetrics::create_tablet_requests_total;
-IntCounter DorisMetrics::create_tablet_requests_failed;
-IntCounter DorisMetrics::drop_tablet_requests_total;
-
-IntCounter DorisMetrics::report_all_tablets_requests_total;
-IntCounter DorisMetrics::report_all_tablets_requests_failed;
-IntCounter DorisMetrics::report_tablet_requests_total;
-IntCounter DorisMetrics::report_tablet_requests_failed;
-IntCounter DorisMetrics::report_disk_requests_total;
-IntCounter DorisMetrics::report_disk_requests_failed;
-IntCounter DorisMetrics::report_task_requests_total;
-IntCounter DorisMetrics::report_task_requests_failed;
-
-IntCounter DorisMetrics::schema_change_requests_total;
-IntCounter DorisMetrics::schema_change_requests_failed;
-IntCounter DorisMetrics::create_rollup_requests_total;
-IntCounter DorisMetrics::create_rollup_requests_failed;
-IntCounter DorisMetrics::storage_migrate_requests_total;
-IntCounter DorisMetrics::delete_requests_total;
-IntCounter DorisMetrics::delete_requests_failed;
-IntCounter DorisMetrics::clone_requests_total;
-IntCounter DorisMetrics::clone_requests_failed;
-
-IntCounter DorisMetrics::finish_task_requests_total;
-IntCounter DorisMetrics::finish_task_requests_failed;
-
-IntCounter DorisMetrics::base_compaction_deltas_total;
-IntCounter DorisMetrics::base_compaction_bytes_total;
-IntCounter DorisMetrics::base_compaction_request_total;
-IntCounter DorisMetrics::base_compaction_request_failed;
-IntCounter DorisMetrics::cumulative_compaction_deltas_total;
-IntCounter DorisMetrics::cumulative_compaction_bytes_total;
-IntCounter DorisMetrics::cumulative_compaction_request_total;
-IntCounter DorisMetrics::cumulative_compaction_request_failed;
-
-IntCounter DorisMetrics::publish_task_request_total;
-IntCounter DorisMetrics::publish_task_failed_total;
-
-IntCounter DorisMetrics::meta_write_request_total;
-IntCounter DorisMetrics::meta_write_request_duration_us;
-IntCounter DorisMetrics::meta_read_request_total;
-IntCounter DorisMetrics::meta_read_request_duration_us;
-
-IntCounter DorisMetrics::segment_read_total;
-IntCounter DorisMetrics::segment_row_total;
-IntCounter DorisMetrics::segment_rows_by_short_key;
-IntCounter DorisMetrics::segment_rows_read_by_zone_map;
-
-IntCounter DorisMetrics::txn_begin_request_total;
-IntCounter DorisMetrics::txn_commit_request_total;
-IntCounter DorisMetrics::txn_rollback_request_total;
-IntCounter DorisMetrics::txn_exec_plan_total;
-IntCounter DorisMetrics::stream_receive_bytes_total;
-IntCounter DorisMetrics::stream_load_rows_total;
-
-IntCounter DorisMetrics::memtable_flush_total;
-IntCounter DorisMetrics::memtable_flush_duration_us;
-
-// gauges
-IntGauge DorisMetrics::memory_pool_bytes_total;
-IntGauge DorisMetrics::process_thread_num;
-IntGauge DorisMetrics::process_fd_num_used;
-IntGauge DorisMetrics::process_fd_num_limit_soft;
-IntGauge DorisMetrics::process_fd_num_limit_hard;
-IntGaugeMetricsMap DorisMetrics::disks_total_capacity;
-IntGaugeMetricsMap DorisMetrics::disks_avail_capacity;
-IntGaugeMetricsMap DorisMetrics::disks_data_used_capacity;
-IntGaugeMetricsMap DorisMetrics::disks_state;
-
-IntGauge DorisMetrics::tablet_cumulative_max_compaction_score;
-IntGauge DorisMetrics::tablet_base_max_compaction_score;
-
-IntGauge DorisMetrics::push_request_write_bytes_per_second;
-IntGauge DorisMetrics::query_scan_bytes_per_second;
-IntGauge DorisMetrics::max_disk_io_util_percent;
-IntGauge DorisMetrics::max_network_send_bytes_rate;
-IntGauge DorisMetrics::max_network_receive_bytes_rate;
-
-IntCounter DorisMetrics::readable_blocks_total;
-IntCounter DorisMetrics::writable_blocks_total;
-IntCounter DorisMetrics::blocks_created_total;
-IntCounter DorisMetrics::blocks_deleted_total;
-IntCounter DorisMetrics::bytes_read_total;
-IntCounter DorisMetrics::bytes_written_total;
-IntCounter DorisMetrics::disk_sync_total;
-IntGauge DorisMetrics::blocks_open_reading;
-IntGauge DorisMetrics::blocks_open_writing;
-
-IntCounter DorisMetrics::blocks_push_remote_duration_us;
-
-UIntGauge DorisMetrics::rowset_count_generated_and_in_use;
-UIntGauge DorisMetrics::unused_rowsets_count;
-UIntGauge DorisMetrics::broker_count;
-UIntGauge DorisMetrics::data_stream_receiver_count;
-UIntGauge DorisMetrics::fragment_endpoint_count;
-UIntGauge DorisMetrics::active_scan_context_count;
-UIntGauge DorisMetrics::plan_fragment_count;
-UIntGauge DorisMetrics::load_channel_count;
-UIntGauge DorisMetrics::result_buffer_block_count;
-UIntGauge DorisMetrics::result_block_queue_count;
-UIntGauge DorisMetrics::routine_load_task_count;
-UIntGauge DorisMetrics::small_file_cache_count;
-UIntGauge DorisMetrics::stream_load_pipe_count;
-UIntGauge DorisMetrics::brpc_endpoint_stub_count;
-UIntGauge DorisMetrics::tablet_writer_count;
-
-DorisMetrics::~DorisMetrics() {
- delete _system_metrics;
- delete _metrics;
-}
-
-void DorisMetrics::initialize(
- const std::string& name,
- const std::vector<std::string>& paths,
- bool init_system_metrics,
- const std::set<std::string>& disk_devices,
- const std::vector<std::string>& network_interfaces) {
- if (_metrics != nullptr) {
- return;
- }
- DCHECK(_metrics == nullptr && _system_metrics == nullptr);
- _metrics = new MetricRegistry(name);
-#define REGISTER_DORIS_METRIC(name) _metrics->register_metric(#name, &name)
-
+DorisMetrics::DorisMetrics() : _name("doris_be"), _hook_name("doris_metrics"),
_metrics(_name) {
+#define REGISTER_DORIS_METRIC(name) _metrics.register_metric(#name, &name)
// You can put DorisMetrics's metrics initial code here
REGISTER_DORIS_METRIC(fragment_requests_total);
REGISTER_DORIS_METRIC(fragment_request_duration_us);
@@ -184,10 +44,10 @@ void DorisMetrics::initialize(
REGISTER_DORIS_METRIC(memtable_flush_duration_us);
// push request
- _metrics->register_metric(
+ _metrics.register_metric(
"push_requests_total", MetricLabels().add("status", "SUCCESS"),
&push_requests_success_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"push_requests_total", MetricLabels().add("status", "FAIL"),
&push_requests_fail_total);
REGISTER_DORIS_METRIC(push_request_duration_us);
@@ -195,7 +55,7 @@ void DorisMetrics::initialize(
REGISTER_DORIS_METRIC(push_request_write_rows);
#define REGISTER_ENGINE_REQUEST_METRIC(type, status, metric) \
- _metrics->register_metric( \
+ _metrics.register_metric( \
"engine_requests_total", MetricLabels().add("type",
#type).add("status", #status), &metric)
REGISTER_ENGINE_REQUEST_METRIC(create_tablet, total,
create_tablet_requests_total);
@@ -232,62 +92,62 @@ void DorisMetrics::initialize(
REGISTER_ENGINE_REQUEST_METRIC(publish, total, publish_task_request_total);
REGISTER_ENGINE_REQUEST_METRIC(publish, failed, publish_task_failed_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"compaction_deltas_total", MetricLabels().add("type", "base"),
&base_compaction_deltas_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"compaction_deltas_total", MetricLabels().add("type", "cumulative"),
&cumulative_compaction_deltas_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"compaction_bytes_total", MetricLabels().add("type", "base"),
&base_compaction_bytes_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"compaction_bytes_total", MetricLabels().add("type", "cumulative"),
&cumulative_compaction_bytes_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"meta_request_total", MetricLabels().add("type", "write"),
&meta_write_request_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"meta_request_total", MetricLabels().add("type", "read"),
&meta_read_request_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"meta_request_duration", MetricLabels().add("type", "write"),
&meta_write_request_duration_us);
- _metrics->register_metric(
+ _metrics.register_metric(
"meta_request_duration", MetricLabels().add("type", "read"),
&meta_read_request_duration_us);
- _metrics->register_metric(
+ _metrics.register_metric(
"segment_read", MetricLabels().add("type", "segment_total_read_times"),
&segment_read_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"segment_read", MetricLabels().add("type", "segment_total_row_num"),
&segment_row_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"segment_read", MetricLabels().add("type",
"segment_rows_by_short_key"),
&segment_rows_by_short_key);
- _metrics->register_metric(
+ _metrics.register_metric(
"segment_read", MetricLabels().add("type",
"segment_rows_read_by_zone_map"),
&segment_rows_read_by_zone_map);
- _metrics->register_metric(
+ _metrics.register_metric(
"txn_request", MetricLabels().add("type", "begin"),
&txn_begin_request_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"txn_request", MetricLabels().add("type", "commit"),
&txn_commit_request_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"txn_request", MetricLabels().add("type", "rollback"),
&txn_rollback_request_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"txn_request", MetricLabels().add("type", "exec"),
&txn_exec_plan_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"stream_load", MetricLabels().add("type", "receive_bytes"),
&stream_receive_bytes_total);
- _metrics->register_metric(
+ _metrics.register_metric(
"stream_load", MetricLabels().add("type", "load_rows"),
&stream_load_rows_total);
@@ -301,25 +161,13 @@ void DorisMetrics::initialize(
REGISTER_DORIS_METRIC(tablet_cumulative_max_compaction_score);
REGISTER_DORIS_METRIC(tablet_base_max_compaction_score);
- // disk usage
- for (auto& path : paths) {
- IntGauge* gauge = disks_total_capacity.set_key(path);
- _metrics->register_metric("disks_total_capacity",
MetricLabels().add("path", path), gauge);
- gauge = disks_avail_capacity.set_key(path);
- _metrics->register_metric("disks_avail_capacity",
MetricLabels().add("path", path), gauge);
- gauge = disks_data_used_capacity.set_key(path);
- _metrics->register_metric("disks_data_used_capacity",
MetricLabels().add("path", path), gauge);
- gauge = disks_state.set_key(path);
- _metrics->register_metric("disks_state", MetricLabels().add("path",
path), gauge);
- }
-
REGISTER_DORIS_METRIC(push_request_write_bytes_per_second);
REGISTER_DORIS_METRIC(query_scan_bytes_per_second);
REGISTER_DORIS_METRIC(max_disk_io_util_percent);
REGISTER_DORIS_METRIC(max_network_send_bytes_rate);
REGISTER_DORIS_METRIC(max_network_receive_bytes_rate);
- _metrics->register_hook(_s_hook_name, std::bind(&DorisMetrics::update,
this));
+ _metrics.register_hook(_hook_name, std::bind(&DorisMetrics::_update,
this));
REGISTER_DORIS_METRIC(readable_blocks_total);
REGISTER_DORIS_METRIC(writable_blocks_total);
@@ -330,16 +178,32 @@ void DorisMetrics::initialize(
REGISTER_DORIS_METRIC(disk_sync_total);
REGISTER_DORIS_METRIC(blocks_open_reading);
REGISTER_DORIS_METRIC(blocks_open_writing);
-
REGISTER_DORIS_METRIC(blocks_push_remote_duration_us);
+}
+
+void DorisMetrics::initialize(
+ const std::vector<std::string>& paths,
+ bool init_system_metrics,
+ const std::set<std::string>& disk_devices,
+ const std::vector<std::string>& network_interfaces) {
+ // disk usage
+ for (auto& path : paths) {
+ IntGauge* gauge = disks_total_capacity.set_key(path);
+ _metrics.register_metric("disks_total_capacity",
MetricLabels().add("path", path), gauge);
+ gauge = disks_avail_capacity.set_key(path);
+ _metrics.register_metric("disks_avail_capacity",
MetricLabels().add("path", path), gauge);
+ gauge = disks_data_used_capacity.set_key(path);
+ _metrics.register_metric("disks_data_used_capacity",
MetricLabels().add("path", path), gauge);
+ gauge = disks_state.set_key(path);
+ _metrics.register_metric("disks_state", MetricLabels().add("path",
path), gauge);
+ }
if (init_system_metrics) {
- _system_metrics = new SystemMetrics();
- _system_metrics->install(_metrics, disk_devices, network_interfaces);
+ _system_metrics.install(&_metrics, disk_devices, network_interfaces);
}
}
-void DorisMetrics::update() {
+void DorisMetrics::_update() {
_update_process_thread_num();
_update_process_fd_num();
}
diff --git a/be/src/util/doris_metrics.h b/be/src/util/doris_metrics.h
index 7548c0e..7a3c0bc 100644
--- a/be/src/util/doris_metrics.h
+++ b/be/src/util/doris_metrics.h
@@ -24,11 +24,10 @@
#include <unordered_map>
#include "util/metrics.h"
+#include "util/system_metrics.h"
namespace doris {
-class SystemMetrics;
-
class IntGaugeMetricsMap {
public:
void set_metric(const std::string& key, int64_t val) {
@@ -48,174 +47,176 @@ private:
};
#define REGISTER_GAUGE_DORIS_METRIC(name, func) \
- DorisMetrics::metrics()->register_metric(#name, &DorisMetrics::name); \
- DorisMetrics::metrics()->register_hook(#name, [&]() { \
- DorisMetrics::name.set_value(func()); \
+ DorisMetrics::instance()->metrics()->register_metric(#name,
&DorisMetrics::instance()->name); \
+ DorisMetrics::instance()->metrics()->register_hook(#name, [&]() { \
+ DorisMetrics::instance()->name.set_value(func()); \
});
class DorisMetrics {
public:
// counters
- static IntCounter fragment_requests_total;
- static IntCounter fragment_request_duration_us;
- static IntCounter http_requests_total;
- static IntCounter http_request_duration_us;
- static IntCounter http_request_send_bytes;
- static IntCounter query_scan_bytes;
- static IntCounter query_scan_rows;
- static IntCounter ranges_processed_total;
- static IntCounter push_requests_success_total;
- static IntCounter push_requests_fail_total;
- static IntCounter push_request_duration_us;
- static IntCounter push_request_write_bytes;
- static IntCounter push_request_write_rows;
- static IntCounter create_tablet_requests_total;
- static IntCounter create_tablet_requests_failed;
- static IntCounter drop_tablet_requests_total;
-
- static IntCounter report_all_tablets_requests_total;
- static IntCounter report_all_tablets_requests_failed;
- static IntCounter report_tablet_requests_total;
- static IntCounter report_tablet_requests_failed;
- static IntCounter report_disk_requests_total;
- static IntCounter report_disk_requests_failed;
- static IntCounter report_task_requests_total;
- static IntCounter report_task_requests_failed;
-
- static IntCounter schema_change_requests_total;
- static IntCounter schema_change_requests_failed;
- static IntCounter create_rollup_requests_total;
- static IntCounter create_rollup_requests_failed;
- static IntCounter storage_migrate_requests_total;
- static IntCounter delete_requests_total;
- static IntCounter delete_requests_failed;
- static IntCounter clone_requests_total;
- static IntCounter clone_requests_failed;
-
- static IntCounter finish_task_requests_total;
- static IntCounter finish_task_requests_failed;
-
- static IntCounter base_compaction_request_total;
- static IntCounter base_compaction_request_failed;
- static IntCounter cumulative_compaction_request_total;
- static IntCounter cumulative_compaction_request_failed;
-
- static IntCounter base_compaction_deltas_total;
- static IntCounter base_compaction_bytes_total;
- static IntCounter cumulative_compaction_deltas_total;
- static IntCounter cumulative_compaction_bytes_total;
-
- static IntCounter publish_task_request_total;
- static IntCounter publish_task_failed_total;
-
- static IntCounter meta_write_request_total;
- static IntCounter meta_write_request_duration_us;
- static IntCounter meta_read_request_total;
- static IntCounter meta_read_request_duration_us;
+ IntCounter fragment_requests_total;
+ IntCounter fragment_request_duration_us;
+ IntCounter http_requests_total;
+ IntCounter http_request_duration_us;
+ IntCounter http_request_send_bytes;
+ IntCounter query_scan_bytes;
+ IntCounter query_scan_rows;
+ IntCounter ranges_processed_total;
+ IntCounter push_requests_success_total;
+ IntCounter push_requests_fail_total;
+ IntCounter push_request_duration_us;
+ IntCounter push_request_write_bytes;
+ IntCounter push_request_write_rows;
+ IntCounter create_tablet_requests_total;
+ IntCounter create_tablet_requests_failed;
+ IntCounter drop_tablet_requests_total;
+
+ IntCounter report_all_tablets_requests_total;
+ IntCounter report_all_tablets_requests_failed;
+ IntCounter report_tablet_requests_total;
+ IntCounter report_tablet_requests_failed;
+ IntCounter report_disk_requests_total;
+ IntCounter report_disk_requests_failed;
+ IntCounter report_task_requests_total;
+ IntCounter report_task_requests_failed;
+
+ IntCounter schema_change_requests_total;
+ IntCounter schema_change_requests_failed;
+ IntCounter create_rollup_requests_total;
+ IntCounter create_rollup_requests_failed;
+ IntCounter storage_migrate_requests_total;
+ IntCounter delete_requests_total;
+ IntCounter delete_requests_failed;
+ IntCounter clone_requests_total;
+ IntCounter clone_requests_failed;
+
+ IntCounter finish_task_requests_total;
+ IntCounter finish_task_requests_failed;
+
+ IntCounter base_compaction_request_total;
+ IntCounter base_compaction_request_failed;
+ IntCounter cumulative_compaction_request_total;
+ IntCounter cumulative_compaction_request_failed;
+
+ IntCounter base_compaction_deltas_total;
+ IntCounter base_compaction_bytes_total;
+ IntCounter cumulative_compaction_deltas_total;
+ IntCounter cumulative_compaction_bytes_total;
+
+ IntCounter publish_task_request_total;
+ IntCounter publish_task_failed_total;
+
+ IntCounter meta_write_request_total;
+ IntCounter meta_write_request_duration_us;
+ IntCounter meta_read_request_total;
+ IntCounter meta_read_request_duration_us;
// Counters for segment_v2
// -----------------------
// total number of segments read
- static IntCounter segment_read_total;
+ IntCounter segment_read_total;
// total number of rows in queried segments (before index pruning)
- static IntCounter segment_row_total;
+ IntCounter segment_row_total;
// total number of rows selected by short key index
- static IntCounter segment_rows_by_short_key;
+ IntCounter segment_rows_by_short_key;
// total number of rows selected by zone map index
- static IntCounter segment_rows_read_by_zone_map;
+ IntCounter segment_rows_read_by_zone_map;
- static IntCounter txn_begin_request_total;
- static IntCounter txn_commit_request_total;
- static IntCounter txn_rollback_request_total;
- static IntCounter txn_exec_plan_total;
- static IntCounter stream_receive_bytes_total;
- static IntCounter stream_load_rows_total;
+ IntCounter txn_begin_request_total;
+ IntCounter txn_commit_request_total;
+ IntCounter txn_rollback_request_total;
+ IntCounter txn_exec_plan_total;
+ IntCounter stream_receive_bytes_total;
+ IntCounter stream_load_rows_total;
- static IntCounter memtable_flush_total;
- static IntCounter memtable_flush_duration_us;
+ IntCounter memtable_flush_total;
+ IntCounter memtable_flush_duration_us;
// Gauges
- static IntGauge memory_pool_bytes_total;
- static IntGauge process_thread_num;
- static IntGauge process_fd_num_used;
- static IntGauge process_fd_num_limit_soft;
- static IntGauge process_fd_num_limit_hard;
- static IntGaugeMetricsMap disks_total_capacity;
- static IntGaugeMetricsMap disks_avail_capacity;
- static IntGaugeMetricsMap disks_data_used_capacity;
- static IntGaugeMetricsMap disks_state;
+ IntGauge memory_pool_bytes_total;
+ IntGauge process_thread_num;
+ IntGauge process_fd_num_used;
+ IntGauge process_fd_num_limit_soft;
+ IntGauge process_fd_num_limit_hard;
+ IntGaugeMetricsMap disks_total_capacity;
+ IntGaugeMetricsMap disks_avail_capacity;
+ IntGaugeMetricsMap disks_data_used_capacity;
+ IntGaugeMetricsMap disks_state;
// the max compaction score of all tablets.
// Record base and cumulative scores separately, because
// we need to get the larger of the two.
- static IntGauge tablet_cumulative_max_compaction_score;
- static IntGauge tablet_base_max_compaction_score;
+ IntGauge tablet_cumulative_max_compaction_score;
+ IntGauge tablet_base_max_compaction_score;
// The following metrics will be calculated
// by metric calculator
- static IntGauge push_request_write_bytes_per_second;
- static IntGauge query_scan_bytes_per_second;
- static IntGauge max_disk_io_util_percent;
- static IntGauge max_network_send_bytes_rate;
- static IntGauge max_network_receive_bytes_rate;
+ IntGauge push_request_write_bytes_per_second;
+ IntGauge query_scan_bytes_per_second;
+ IntGauge max_disk_io_util_percent;
+ IntGauge max_network_send_bytes_rate;
+ IntGauge max_network_receive_bytes_rate;
// Metrics related with BlockManager
- static IntCounter readable_blocks_total;
- static IntCounter writable_blocks_total;
- static IntCounter blocks_created_total;
- static IntCounter blocks_deleted_total;
- static IntCounter bytes_read_total;
- static IntCounter bytes_written_total;
- static IntCounter disk_sync_total;
- static IntGauge blocks_open_reading;
- static IntGauge blocks_open_writing;
-
- static IntCounter blocks_push_remote_duration_us;
+ IntCounter readable_blocks_total;
+ IntCounter writable_blocks_total;
+ IntCounter blocks_created_total;
+ IntCounter blocks_deleted_total;
+ IntCounter bytes_read_total;
+ IntCounter bytes_written_total;
+ IntCounter disk_sync_total;
+ IntGauge blocks_open_reading;
+ IntGauge blocks_open_writing;
+
+ IntCounter blocks_push_remote_duration_us;
// Size of some global containers
- static UIntGauge rowset_count_generated_and_in_use;
- static UIntGauge unused_rowsets_count;
- static UIntGauge broker_count;
- static UIntGauge data_stream_receiver_count;
- static UIntGauge fragment_endpoint_count;
- static UIntGauge active_scan_context_count;
- static UIntGauge plan_fragment_count;
- static UIntGauge load_channel_count;
- static UIntGauge result_buffer_block_count;
- static UIntGauge result_block_queue_count;
- static UIntGauge routine_load_task_count;
- static UIntGauge small_file_cache_count;
- static UIntGauge stream_load_pipe_count;
- static UIntGauge brpc_endpoint_stub_count;
- static UIntGauge tablet_writer_count;
-
- ~DorisMetrics();
+ UIntGauge rowset_count_generated_and_in_use;
+ UIntGauge unused_rowsets_count;
+ UIntGauge broker_count;
+ UIntGauge data_stream_receiver_count;
+ UIntGauge fragment_endpoint_count;
+ UIntGauge active_scan_context_count;
+ UIntGauge plan_fragment_count;
+ UIntGauge load_channel_count;
+ UIntGauge result_buffer_block_count;
+ UIntGauge result_block_queue_count;
+ UIntGauge routine_load_task_count;
+ UIntGauge small_file_cache_count;
+ UIntGauge stream_load_pipe_count;
+ UIntGauge brpc_endpoint_stub_count;
+ UIntGauge tablet_writer_count;
+
+ static DorisMetrics* instance() {
+ static DorisMetrics instance;
+ return &instance;
+ }
+
// not thread-safe, call before calling metrics
void initialize(
- const std::string& name,
const std::vector<std::string>& paths = std::vector<std::string>(),
bool init_system_metrics = false,
const std::set<std::string>& disk_devices = std::set<std::string>(),
const std::vector<std::string>& network_interfaces =
std::vector<std::string>());
- static DorisMetrics* instance() { return &_s_doris_metrics; }
- static MetricRegistry* metrics() { return _s_doris_metrics._metrics; }
- static SystemMetrics* system_metrics() { return
_s_doris_metrics._system_metrics; }
+ MetricRegistry* metrics() { return &_metrics; }
+ SystemMetrics* system_metrics() { return &_system_metrics; }
+
private:
// Don't allow constrctor
- DorisMetrics() {}
+ DorisMetrics();
- void update();
+ void _update();
void _update_process_thread_num();
void _update_process_fd_num();
private:
- static const char* _s_hook_name;
-
- static DorisMetrics _s_doris_metrics;
+ const char* _name;
+ const char* _hook_name;
- MetricRegistry* _metrics = nullptr;
- SystemMetrics* _system_metrics = nullptr;
+ MetricRegistry _metrics;
+ SystemMetrics _system_metrics;
};
};
diff --git a/be/src/util/system_metrics.h b/be/src/util/system_metrics.h
index d5a8bc9..05c11b5 100644
--- a/be/src/util/system_metrics.h
+++ b/be/src/util/system_metrics.h
@@ -15,6 +15,7 @@
// specific language governing permissions and limitations
// under the License.
+#pragma once
#include "util/metrics.h"
#include <map>
diff --git a/be/test/exec/tablet_sink_test.cpp
b/be/test/exec/tablet_sink_test.cpp
index 7a6b325..bef0794 100644
--- a/be/test/exec/tablet_sink_test.cpp
+++ b/be/test/exec/tablet_sink_test.cpp
@@ -33,7 +33,6 @@
#include "util/brpc_stub_cache.h"
#include "util/cpu_info.h"
#include "util/debug/leakcheck_disabler.h"
-#include "util/doris_metrics.h"
#include "runtime/descriptor_helper.h"
#include "runtime/bufferpool/reservation_tracker.h"
#include "runtime/exec_env.h"
@@ -50,7 +49,6 @@ public:
OlapTableSinkTest() { }
virtual ~OlapTableSinkTest() { }
void SetUp() override {
- DorisMetrics::instance()->initialize("ut");
k_add_batch_status = Status::OK();
_env = ExecEnv::GetInstance();
_env->_thread_mgr = new ThreadResourceMgr();
diff --git a/be/test/http/stream_load_test.cpp
b/be/test/http/stream_load_test.cpp
index a17c0ad..03f6290 100644
--- a/be/test/http/stream_load_test.cpp
+++ b/be/test/http/stream_load_test.cpp
@@ -33,7 +33,6 @@
#include "runtime/thread_resource_mgr.h"
#include "util/brpc_stub_cache.h"
#include "util/cpu_info.h"
-#include "util/doris_metrics.h"
class mg_connection;
@@ -78,7 +77,6 @@ public:
k_response_str = "";
config::streaming_load_max_mb = 1;
- DorisMetrics::instance()->initialize("ut");
_env._thread_mgr = new ThreadResourceMgr();
_env._master_info = new TMasterInfo();
_env._load_stream_mgr = new LoadStreamMgr();
diff --git a/be/test/olap/delete_handler_test.cpp
b/be/test/olap/delete_handler_test.cpp
index 02b832a..4940b98 100644
--- a/be/test/olap/delete_handler_test.cpp
+++ b/be/test/olap/delete_handler_test.cpp
@@ -32,7 +32,6 @@
#include "olap/push_handler.h"
#include "olap/utils.h"
#include "olap/options.h"
-#include "util/doris_metrics.h"
#include "util/file_utils.h"
#include "util/logging.h"
@@ -47,7 +46,6 @@ static const uint32_t MAX_PATH_LEN = 1024;
static StorageEngine* k_engine = nullptr;
void set_up() {
- DorisMetrics::instance()->initialize("ut");
char buffer[MAX_PATH_LEN];
getcwd(buffer, MAX_PATH_LEN);
config::storage_root_path = string(buffer) + "/data_test";
diff --git a/be/test/olap/delta_writer_test.cpp
b/be/test/olap/delta_writer_test.cpp
index a259b7d..537433f 100644
--- a/be/test/olap/delta_writer_test.cpp
+++ b/be/test/olap/delta_writer_test.cpp
@@ -33,7 +33,6 @@
#include "runtime/exec_env.h"
#include "runtime/mem_pool.h"
#include "runtime/mem_tracker.h"
-#include "util/doris_metrics.h"
#include "util/logging.h"
#include "util/file_utils.h"
#include "olap/options.h"
@@ -59,7 +58,6 @@ void set_up() {
std::vector<StorePath> paths;
paths.emplace_back(config::storage_root_path, -1);
- DorisMetrics::instance()->initialize("ut");
doris::EngineOptions options;
options.store_paths = paths;
doris::StorageEngine::open(options, &k_engine);
diff --git a/be/test/olap/olap_snapshot_converter_test.cpp
b/be/test/olap/olap_snapshot_converter_test.cpp
index c0af392..112756c 100644
--- a/be/test/olap/olap_snapshot_converter_test.cpp
+++ b/be/test/olap/olap_snapshot_converter_test.cpp
@@ -34,7 +34,6 @@
#include "olap/rowset/rowset_meta_manager.h"
#include "olap/storage_engine.h"
#include "olap/txn_manager.h"
-#include "util/doris_metrics.h"
#include "util/file_utils.h"
#ifndef BE_TEST
@@ -56,7 +55,6 @@ public:
config::tablet_map_shard_size = 1;
config::txn_map_shard_size = 1;
config::txn_shard_size = 1;
- DorisMetrics::instance()->initialize("ut");
std::vector<StorePath> paths;
paths.emplace_back("_engine_data_path", -1);
EngineOptions options;
diff --git a/be/test/olap/rowset/alpha_rowset_test.cpp
b/be/test/olap/rowset/alpha_rowset_test.cpp
index 7d065d1..96fd9f4 100644
--- a/be/test/olap/rowset/alpha_rowset_test.cpp
+++ b/be/test/olap/rowset/alpha_rowset_test.cpp
@@ -34,7 +34,6 @@
#include "olap/rowset/alpha_rowset_reader.h"
#include "olap/data_dir.h"
#include "olap/storage_engine.h"
-#include "util/doris_metrics.h"
#ifndef BE_TEST
#define BE_TEST
@@ -50,7 +49,6 @@ namespace doris {
static const uint32_t MAX_PATH_LEN = 1024;
void set_up() {
- DorisMetrics::instance()->initialize("ut");
config::path_gc_check = false;
char buffer[MAX_PATH_LEN];
getcwd(buffer, MAX_PATH_LEN);
diff --git a/be/test/olap/rowset/beta_rowset_test.cpp
b/be/test/olap/rowset/beta_rowset_test.cpp
index 2a9d00a..1c75202 100644
--- a/be/test/olap/rowset/beta_rowset_test.cpp
+++ b/be/test/olap/rowset/beta_rowset_test.cpp
@@ -34,7 +34,6 @@
#include "runtime/exec_env.h"
#include "runtime/mem_tracker.h"
#include "runtime/mem_pool.h"
-#include "util/doris_metrics.h"
#include "util/file_utils.h"
#include "util/slice.h"
@@ -53,7 +52,6 @@ protected:
config::tablet_map_shard_size = 1;
config::txn_map_shard_size = 1;
config::txn_shard_size = 1;
- DorisMetrics::instance()->initialize("ut");
char buffer[MAX_PATH_LEN];
getcwd(buffer, MAX_PATH_LEN);
config::storage_root_path = std::string(buffer) + "/data_test";
diff --git a/be/test/olap/rowset/rowset_converter_test.cpp
b/be/test/olap/rowset/rowset_converter_test.cpp
index 612116a..daf7577 100644
--- a/be/test/olap/rowset/rowset_converter_test.cpp
+++ b/be/test/olap/rowset/rowset_converter_test.cpp
@@ -37,7 +37,6 @@
#include "olap/storage_engine.h"
#include "olap/olap_cond.h"
#include "runtime/exec_env.h"
-#include "util/doris_metrics.h"
#ifndef BE_TEST
#define BE_TEST
@@ -154,7 +153,6 @@ public:
config::tablet_map_shard_size = 1;
config::txn_map_shard_size = 1;
config::txn_shard_size = 1;
- DorisMetrics::instance()->initialize("ut");
config::path_gc_check = false;
char buffer[MAX_PATH_LEN];
getcwd(buffer, MAX_PATH_LEN);
diff --git a/be/test/olap/rowset/rowset_meta_manager_test.cpp
b/be/test/olap/rowset/rowset_meta_manager_test.cpp
index 84e210e..8cbc272 100644
--- a/be/test/olap/rowset/rowset_meta_manager_test.cpp
+++ b/be/test/olap/rowset/rowset_meta_manager_test.cpp
@@ -26,7 +26,6 @@
#include "olap/storage_engine.h"
#include "boost/filesystem.hpp"
#include "json2pb/json_to_pb.h"
-#include "util/doris_metrics.h"
#ifndef BE_TEST
#define BE_TEST
@@ -49,7 +48,6 @@ public:
config::tablet_map_shard_size = 1;
config::txn_map_shard_size = 1;
config::txn_shard_size = 1;
- DorisMetrics::instance()->initialize("ut");
std::vector<StorePath> paths;
paths.emplace_back("_engine_data_path", -1);
EngineOptions options;
diff --git a/be/test/olap/rowset/segment_v2/binary_prefix_page_test.cpp
b/be/test/olap/rowset/segment_v2/binary_prefix_page_test.cpp
index 1a3f3d2..6d85ac5 100644
--- a/be/test/olap/rowset/segment_v2/binary_prefix_page_test.cpp
+++ b/be/test/olap/rowset/segment_v2/binary_prefix_page_test.cpp
@@ -177,4 +177,4 @@ TEST_F(BinaryPrefixPageTest, TestEncodeAndDecode2) {
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
-}
\ No newline at end of file
+}
diff --git a/be/test/olap/rowset/unique_rowset_id_generator_test.cpp
b/be/test/olap/rowset/unique_rowset_id_generator_test.cpp
index 6f20563..dc9388d 100644
--- a/be/test/olap/rowset/unique_rowset_id_generator_test.cpp
+++ b/be/test/olap/rowset/unique_rowset_id_generator_test.cpp
@@ -20,21 +20,12 @@
#include <gtest/gtest.h>
#include <iostream>
-#include "util/doris_metrics.h"
#include "util/runtime_profile.h"
#include "util/threadpool.h"
#include "util/pretty_printer.h"
namespace doris {
class UniqueRowsetIdGeneratorTest : public testing::Test {
-public:
- UniqueRowsetIdGeneratorTest() { }
- virtual ~UniqueRowsetIdGeneratorTest() {
- }
-
- virtual void SetUp() {
- DorisMetrics::instance()->initialize("ut");
- }
};
TEST_F(UniqueRowsetIdGeneratorTest, RowsetIdFormatTest) {
diff --git a/be/test/olap/tablet_mgr_test.cpp b/be/test/olap/tablet_mgr_test.cpp
index 0a11edf..297de4c 100644
--- a/be/test/olap/tablet_mgr_test.cpp
+++ b/be/test/olap/tablet_mgr_test.cpp
@@ -31,7 +31,6 @@
#include "boost/filesystem.hpp"
#include "json2pb/json_to_pb.h"
#include "util/file_utils.h"
-#include "util/doris_metrics.h"
#ifndef BE_TEST
#define BE_TEST
@@ -52,7 +51,6 @@ public:
config::tablet_map_shard_size = 1;
config::txn_map_shard_size = 1;
config::txn_shard_size = 1;
- DorisMetrics::instance()->initialize("ut");
string test_engine_data_path =
"./be/test/olap/test_data/converter_test_data/data";
_engine_data_path = "./be/test/olap/test_data/converter_test_data/tmp";
boost::filesystem::remove_all(_engine_data_path);
diff --git a/be/test/olap/txn_manager_test.cpp
b/be/test/olap/txn_manager_test.cpp
index 750607a..4bb2065 100644
--- a/be/test/olap/txn_manager_test.cpp
+++ b/be/test/olap/txn_manager_test.cpp
@@ -30,7 +30,6 @@
#include "olap/txn_manager.h"
#include "boost/filesystem.hpp"
#include "json2pb/json_to_pb.h"
-#include "util/doris_metrics.h"
#ifndef BE_TEST
#define BE_TEST
@@ -99,7 +98,6 @@ public:
config::txn_shard_size = 1;
config::max_runnings_transactions_per_txn_map = 500;
_txn_mgr.reset(new TxnManager(64, 1024));
- DorisMetrics::instance()->initialize("ut");
std::vector<StorePath> paths;
paths.emplace_back("_engine_data_path", -1);
EngineOptions options;
diff --git a/be/test/runtime/external_scan_context_mgr_test.cpp
b/be/test/runtime/external_scan_context_mgr_test.cpp
index 8a2da6e..52d2790 100644
--- a/be/test/runtime/external_scan_context_mgr_test.cpp
+++ b/be/test/runtime/external_scan_context_mgr_test.cpp
@@ -24,14 +24,12 @@
#include "runtime/fragment_mgr.h"
#include "runtime/result_queue_mgr.h"
#include "runtime/thread_resource_mgr.h"
-#include "util/doris_metrics.h"
namespace doris {
class ExternalScanContextMgrTest : public testing::Test {
public:
ExternalScanContextMgrTest() {
- DorisMetrics::instance()->initialize("ut");
FragmentMgr* fragment_mgr = new FragmentMgr(&_exec_env);
ThreadResourceMgr* thread_mgr = new ThreadResourceMgr();
ResultQueueMgr* result_queue_mgr = new ResultQueueMgr();
diff --git a/be/test/runtime/fragment_mgr_test.cpp
b/be/test/runtime/fragment_mgr_test.cpp
index cfb9e72..683ee59 100644
--- a/be/test/runtime/fragment_mgr_test.cpp
+++ b/be/test/runtime/fragment_mgr_test.cpp
@@ -23,7 +23,6 @@
#include "exec/data_sink.h"
#include "runtime/plan_fragment_executor.h"
#include "runtime/row_batch.h"
-#include "util/doris_metrics.h"
#include "util/monotime.h"
namespace doris {
@@ -62,7 +61,6 @@ protected:
<< ", pool_size=" << config::fragment_pool_queue_size;
config::fragment_pool_thread_num = 32;
config::fragment_pool_queue_size = 1024;
- DorisMetrics::instance()->initialize("ut");
}
virtual void TearDown() {}
};
diff --git a/be/test/runtime/load_channel_mgr_test.cpp
b/be/test/runtime/load_channel_mgr_test.cpp
index ef4aaa1..bda51c4 100644
--- a/be/test/runtime/load_channel_mgr_test.cpp
+++ b/be/test/runtime/load_channel_mgr_test.cpp
@@ -30,7 +30,6 @@
#include "runtime/row_batch.h"
#include "runtime/tuple_row.h"
#include "runtime/descriptor_helper.h"
-#include "util/doris_metrics.h"
#include "util/thrift_util.h"
#include "olap/delta_writer.h"
#include "olap/memtable_flush_executor.h"
@@ -104,7 +103,6 @@ public:
add_status = OLAP_SUCCESS;
close_status = OLAP_SUCCESS;
config::streaming_load_rpc_max_alive_time_sec = 120;
- DorisMetrics::instance()->initialize("ut");
}
private:
};
diff --git a/be/test/runtime/memory/chunk_allocator_test.cpp
b/be/test/runtime/memory/chunk_allocator_test.cpp
index 470c3de..b5505a7 100644
--- a/be/test/runtime/memory/chunk_allocator_test.cpp
+++ b/be/test/runtime/memory/chunk_allocator_test.cpp
@@ -40,7 +40,6 @@ TEST(ChunkAllocatorTest, Normal) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
- doris::DorisMetrics::instance()->initialize("chunk_allocator_ut");
doris::CpuInfo::init();
doris::ChunkAllocator::init_instance(1024 * 1024);
return RUN_ALL_TESTS();
diff --git a/be/test/runtime/memory_scratch_sink_test.cpp
b/be/test/runtime/memory_scratch_sink_test.cpp
index 6b67636..293e234 100644
--- a/be/test/runtime/memory_scratch_sink_test.cpp
+++ b/be/test/runtime/memory_scratch_sink_test.cpp
@@ -41,7 +41,6 @@
#include "runtime/thread_resource_mgr.h"
#include "runtime/tuple_row.h"
#include "util/blocking_queue.hpp"
-#include "util/doris_metrics.h"
#include "util/logging.h"
#include "testutil/desc_tbl_builder.h"
@@ -78,7 +77,6 @@ public:
virtual void SetUp() {
config::periodic_counter_update_period_ms = 500;
config::storage_root_path = "./data";
- DorisMetrics::instance()->initialize("ut");
system("mkdir -p ./test_run/output/");
system("pwd");
diff --git a/be/test/runtime/result_queue_mgr_test.cpp
b/be/test/runtime/result_queue_mgr_test.cpp
index f994179..2b9c52b 100644
--- a/be/test/runtime/result_queue_mgr_test.cpp
+++ b/be/test/runtime/result_queue_mgr_test.cpp
@@ -25,22 +25,10 @@
#include "gen_cpp/DorisExternalService_types.h"
#include "runtime/result_queue_mgr.h"
#include "util/blocking_queue.hpp"
-#include "util/doris_metrics.h"
namespace doris {
class ResultQueueMgrTest : public testing::Test {
-public:
- ResultQueueMgrTest() {
- }
- virtual ~ResultQueueMgrTest() {
- }
-
-protected:
- virtual void SetUp() {
- DorisMetrics::instance()->initialize("ut");
- }
-
};
TEST_F(ResultQueueMgrTest, create_normal) {
diff --git a/be/test/runtime/routine_load_task_executor_test.cpp
b/be/test/runtime/routine_load_task_executor_test.cpp
index 84fe93f..6f50496 100644
--- a/be/test/runtime/routine_load_task_executor_test.cpp
+++ b/be/test/runtime/routine_load_task_executor_test.cpp
@@ -21,7 +21,6 @@
#include "runtime/stream_load/load_stream_mgr.h"
#include "runtime/stream_load/stream_load_executor.h"
#include "util/cpu_info.h"
-#include "util/doris_metrics.h"
#include "util/logging.h"
#include <gtest/gtest.h>
@@ -50,7 +49,6 @@ public:
k_stream_load_rollback_result = TLoadTxnRollbackResult();
k_stream_load_put_result = TStreamLoadPutResult();
- DorisMetrics::instance()->initialize("ut");
_env._master_info = new TMasterInfo();
_env._load_stream_mgr = new LoadStreamMgr();
_env._stream_load_executor = new StreamLoadExecutor(&_env);
diff --git a/be/test/runtime/small_file_mgr_test.cpp
b/be/test/runtime/small_file_mgr_test.cpp
index a6c5367..c03fe83 100644
--- a/be/test/runtime/small_file_mgr_test.cpp
+++ b/be/test/runtime/small_file_mgr_test.cpp
@@ -29,7 +29,6 @@
#include "http/http_request.h"
#include "gen_cpp/HeartbeatService_types.h"
#include "runtime/exec_env.h"
-#include "util/doris_metrics.h"
int main(int argc, char* argv[]);
@@ -87,7 +86,6 @@ public:
static void SetUpTestCase() {
s_server = new EvHttpServer(0);
- DorisMetrics::instance()->initialize("ut");
s_server->register_handler(GET, "/api/get_small_file",
&s_test_handler);
s_server->start();
real_port = s_server->get_real_port();
diff --git a/be/test/util/arrow/arrow_row_batch_test.cpp
b/be/test/util/arrow/arrow_row_batch_test.cpp
index 42de9ca..0c8daa4 100644
--- a/be/test/util/arrow/arrow_row_batch_test.cpp
+++ b/be/test/util/arrow/arrow_row_batch_test.cpp
@@ -38,10 +38,6 @@
namespace doris {
class ArrowRowBatchTest : public testing::Test {
-public:
- ArrowRowBatchTest() { }
- virtual ~ArrowRowBatchTest() {
- }
};
std::string test_str() {
diff --git a/be/test/util/arrow/arrow_work_flow_test.cpp
b/be/test/util/arrow/arrow_work_flow_test.cpp
index 4309e33..fb6f814 100644
--- a/be/test/util/arrow/arrow_work_flow_test.cpp
+++ b/be/test/util/arrow/arrow_work_flow_test.cpp
@@ -40,7 +40,6 @@
#include "util/arrow/row_batch.h"
#include "util/debug_util.h"
#include "util/disk_info.h"
-#include "util/doris_metrics.h"
#include "util/cpu_info.h"
#include "util/logging.h"
@@ -55,7 +54,6 @@ protected:
virtual void SetUp() {
config::periodic_counter_update_period_ms = 500;
config::storage_root_path = "./data";
- DorisMetrics::instance()->initialize("ut");
system("mkdir -p ./test_run/output/");
system("pwd");
diff --git a/be/test/util/doris_metrics_test.cpp
b/be/test/util/doris_metrics_test.cpp
index 08631c8..e308f45 100644
--- a/be/test/util/doris_metrics_test.cpp
+++ b/be/test/util/doris_metrics_test.cpp
@@ -77,94 +77,93 @@ private:
TEST_F(DorisMetricsTest, Normal) {
TestMetricsVisitor visitor;
- DorisMetrics::instance()->initialize("test");
- auto metrics = DorisMetrics::metrics();
+ auto metrics = DorisMetrics::instance()->metrics();
metrics->collect(&visitor);
LOG(INFO) << "\n" << visitor.to_string();
// check metric
{
- DorisMetrics::fragment_requests_total.increment(12);
+ DorisMetrics::instance()->fragment_requests_total.increment(12);
auto metric = metrics->get_metric("fragment_requests_total");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("12", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::fragment_request_duration_us.increment(101);
+ DorisMetrics::instance()->fragment_request_duration_us.increment(101);
auto metric = metrics->get_metric("fragment_request_duration_us");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("101", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::http_requests_total.increment(102);
+ DorisMetrics::instance()->http_requests_total.increment(102);
auto metric = metrics->get_metric("http_requests_total");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("102", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::http_request_duration_us.increment(103);
+ DorisMetrics::instance()->http_request_duration_us.increment(103);
auto metric = metrics->get_metric("http_request_duration_us");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("103", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::http_request_send_bytes.increment(104);
+ DorisMetrics::instance()->http_request_send_bytes.increment(104);
auto metric = metrics->get_metric("http_request_send_bytes");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("104", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::query_scan_bytes.increment(104);
+ DorisMetrics::instance()->query_scan_bytes.increment(104);
auto metric = metrics->get_metric("query_scan_bytes");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("104", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::query_scan_rows.increment(105);
+ DorisMetrics::instance()->query_scan_rows.increment(105);
auto metric = metrics->get_metric("query_scan_rows");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("105", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::ranges_processed_total.increment(13);
+ DorisMetrics::instance()->ranges_processed_total.increment(13);
auto metric = metrics->get_metric("ranges_processed_total");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("13", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::push_requests_success_total.increment(106);
+ DorisMetrics::instance()->push_requests_success_total.increment(106);
auto metric = metrics->get_metric("push_requests_total",
MetricLabels().add("status",
"SUCCESS"));
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("106", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::push_requests_fail_total.increment(107);
+ DorisMetrics::instance()->push_requests_fail_total.increment(107);
auto metric = metrics->get_metric("push_requests_total",
MetricLabels().add("status",
"FAIL"));
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("107", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::push_request_duration_us.increment(108);
+ DorisMetrics::instance()->push_request_duration_us.increment(108);
auto metric = metrics->get_metric("push_request_duration_us");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("108", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::push_request_write_bytes.increment(109);
+ DorisMetrics::instance()->push_request_write_bytes.increment(109);
auto metric = metrics->get_metric("push_request_write_bytes");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("109", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::push_request_write_rows.increment(110);
+ DorisMetrics::instance()->push_request_write_rows.increment(110);
auto metric = metrics->get_metric("push_request_write_rows");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("110", ((SimpleMetric*)metric)->to_string().c_str());
}
// engine request
{
- DorisMetrics::create_tablet_requests_total.increment(15);
+ DorisMetrics::instance()->create_tablet_requests_total.increment(15);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type",
"create_tablet")
.add("status", "total"));
@@ -172,7 +171,7 @@ TEST_F(DorisMetricsTest, Normal) {
ASSERT_STREQ("15", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::drop_tablet_requests_total.increment(16);
+ DorisMetrics::instance()->drop_tablet_requests_total.increment(16);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type",
"drop_tablet")
.add("status", "total"));
@@ -180,7 +179,7 @@ TEST_F(DorisMetricsTest, Normal) {
ASSERT_STREQ("16", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::report_all_tablets_requests_total.increment(17);
+
DorisMetrics::instance()->report_all_tablets_requests_total.increment(17);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type",
"report_all_tablets")
.add("status", "total"));
@@ -188,7 +187,7 @@ TEST_F(DorisMetricsTest, Normal) {
ASSERT_STREQ("17", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::report_tablet_requests_total.increment(18);
+ DorisMetrics::instance()->report_tablet_requests_total.increment(18);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type",
"report_tablet")
.add("status", "total"));
@@ -196,7 +195,7 @@ TEST_F(DorisMetricsTest, Normal) {
ASSERT_STREQ("18", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::schema_change_requests_total.increment(19);
+ DorisMetrics::instance()->schema_change_requests_total.increment(19);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type",
"schema_change")
.add("status", "total"));
@@ -204,7 +203,7 @@ TEST_F(DorisMetricsTest, Normal) {
ASSERT_STREQ("19", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::create_rollup_requests_total.increment(20);
+ DorisMetrics::instance()->create_rollup_requests_total.increment(20);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type",
"create_rollup")
.add("status", "total"));
@@ -212,7 +211,7 @@ TEST_F(DorisMetricsTest, Normal) {
ASSERT_STREQ("20", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::storage_migrate_requests_total.increment(21);
+ DorisMetrics::instance()->storage_migrate_requests_total.increment(21);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type",
"storage_migrate")
.add("status", "total"));
@@ -220,7 +219,7 @@ TEST_F(DorisMetricsTest, Normal) {
ASSERT_STREQ("21", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::delete_requests_total.increment(22);
+ DorisMetrics::instance()->delete_requests_total.increment(22);
auto metric = metrics->get_metric("engine_requests_total",
MetricLabels().add("type", "delete")
.add("status", "total"));
@@ -229,28 +228,28 @@ TEST_F(DorisMetricsTest, Normal) {
}
// comapction
{
- DorisMetrics::base_compaction_deltas_total.increment(30);
+ DorisMetrics::instance()->base_compaction_deltas_total.increment(30);
auto metric = metrics->get_metric("compaction_deltas_total",
MetricLabels().add("type", "base"));
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("30", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::cumulative_compaction_deltas_total.increment(31);
+
DorisMetrics::instance()->cumulative_compaction_deltas_total.increment(31);
auto metric = metrics->get_metric("compaction_deltas_total",
MetricLabels().add("type",
"cumulative"));
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("31", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::base_compaction_bytes_total.increment(32);
+ DorisMetrics::instance()->base_compaction_bytes_total.increment(32);
auto metric = metrics->get_metric("compaction_bytes_total",
MetricLabels().add("type", "base"));
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("32", ((SimpleMetric*)metric)->to_string().c_str());
}
{
- DorisMetrics::cumulative_compaction_bytes_total.increment(33);
+
DorisMetrics::instance()->cumulative_compaction_bytes_total.increment(33);
auto metric = metrics->get_metric("compaction_bytes_total",
MetricLabels().add("type",
"cumulative"));
ASSERT_TRUE(metric != nullptr);
@@ -258,7 +257,7 @@ TEST_F(DorisMetricsTest, Normal) {
}
// Gauge
{
- DorisMetrics::memory_pool_bytes_total.increment(40);
+ DorisMetrics::instance()->memory_pool_bytes_total.increment(40);
auto metric = metrics->get_metric("memory_pool_bytes_total");
ASSERT_TRUE(metric != nullptr);
ASSERT_STREQ("40", ((SimpleMetric*)metric)->to_string().c_str());
diff --git a/be/test/util/zip_util_test.cpp b/be/test/util/zip_util_test.cpp
index fc56022..4a0a76f 100644
--- a/be/test/util/zip_util_test.cpp
+++ b/be/test/util/zip_util_test.cpp
@@ -120,4 +120,4 @@ TEST(ZipUtilTest, notzip) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
-}
\ No newline at end of file
+}
diff --git a/run-ut.sh b/run-ut.sh
index a66af13..89ae3c0 100755
--- a/run-ut.sh
+++ b/run-ut.sh
@@ -205,6 +205,7 @@ ${DORIS_TEST_BINARY_DIR}/exec/broker_scanner_test
${DORIS_TEST_BINARY_DIR}/exec/parquet_scanner_test
${DORIS_TEST_BINARY_DIR}/exec/orc_scanner_test
${DORIS_TEST_BINARY_DIR}/exec/broker_scan_node_test
+#${DORIS_TEST_BINARY_DIR}/exec/es_scan_node_test
${DORIS_TEST_BINARY_DIR}/exec/es_http_scan_node_test
${DORIS_TEST_BINARY_DIR}/exec/es_predicate_test
${DORIS_TEST_BINARY_DIR}/exec/es_scan_reader_test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]