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 <405403...@qq.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org