void Stats::SendSummary()

in platform/statistic/stats.cpp [299:365]


void Stats::SendSummary() {
  if (!enable_resview) {
    return;
  }
  transaction_summary_.execution_time = std::chrono::system_clock::now();

  // Convert Transaction Summary to JSON
  summary_json_["replica_id"] = transaction_summary_.replica_id;
  summary_json_["ip"] = transaction_summary_.ip;
  summary_json_["port"] = transaction_summary_.port;
  summary_json_["primary_id"] = transaction_summary_.primary_id;
  summary_json_["propose_pre_prepare_time"] =
      transaction_summary_.request_pre_prepare_state_time.time_since_epoch()
          .count();
  summary_json_["prepare_time"] =
      transaction_summary_.prepare_state_time.time_since_epoch().count();
  summary_json_["commit_time"] =
      transaction_summary_.commit_state_time.time_since_epoch().count();
  summary_json_["execution_time"] =
      transaction_summary_.execution_time.time_since_epoch().count();
  for (size_t i = 0;
       i < transaction_summary_.prepare_message_count_times_list.size(); i++) {
    summary_json_["prepare_message_timestamps"].push_back(
        transaction_summary_.prepare_message_count_times_list[i]
            .time_since_epoch()
            .count());
  }
  for (size_t i = 0;
       i < transaction_summary_.commit_message_count_times_list.size(); i++) {
    summary_json_["commit_message_timestamps"].push_back(
        transaction_summary_.commit_message_count_times_list[i]
            .time_since_epoch()
            .count());
  }
  summary_json_["txn_number"] = transaction_summary_.txn_number;
  for (size_t i = 0; i < transaction_summary_.txn_command.size(); i++) {
    summary_json_["txn_commands"].push_back(
        transaction_summary_.txn_command[i]);
  }
  for (size_t i = 0; i < transaction_summary_.txn_key.size(); i++) {
    summary_json_["txn_keys"].push_back(transaction_summary_.txn_key[i]);
  }
  for (size_t i = 0; i < transaction_summary_.txn_value.size(); i++) {
    summary_json_["txn_values"].push_back(transaction_summary_.txn_value[i]);
  }

  summary_json_["ext_cache_hit_ratio"] =
      transaction_summary_.ext_cache_hit_ratio_;
  consensus_history_[std::to_string(transaction_summary_.txn_number)] =
      summary_json_;

  LOG(ERROR) << summary_json_.dump();

  // Reset Transaction Summary Parameters
  transaction_summary_.request_pre_prepare_state_time =
      std::chrono::system_clock::time_point::min();
  transaction_summary_.prepare_state_time =
      std::chrono::system_clock::time_point::min();
  transaction_summary_.commit_state_time =
      std::chrono::system_clock::time_point::min();
  transaction_summary_.execution_time =
      std::chrono::system_clock::time_point::min();
  transaction_summary_.prepare_message_count_times_list.clear();
  transaction_summary_.commit_message_count_times_list.clear();

  summary_json_.clear();
}