diff --git a/net/server/cli_server/dap_cli_server.c b/net/server/cli_server/dap_cli_server.c
index 5c67c2ba34235d4d91817dda37c8c533cdbbe11d..ea2f5dfbc4a0ac1fd663710609ec2594d6ba9ba4 100644
--- a/net/server/cli_server/dap_cli_server.c
+++ b/net/server/cli_server/dap_cli_server.c
@@ -510,8 +510,10 @@ char *dap_cli_cmd_exec(char *a_req_str) {
         }
         // Call the command function
         if(l_cmd &&  l_argv && l_cmd->func) {
-            if (s_stat_callback)
-                s_stat_callback(l_cmd->id, true);
+            dap_time_t l_call_time = 0;
+            if (s_stat_callback) {
+                l_call_time = dap_nanotime_now();
+            }
             if (json_commands(cmd_name)) {
                 res = l_cmd->func(l_argc, l_argv, (void *)&l_json_arr_reply);
             } else if (l_cmd->arg_func) {
@@ -519,8 +521,9 @@ char *dap_cli_cmd_exec(char *a_req_str) {
             } else {
                 res = l_cmd->func(l_argc, l_argv, (void *)&str_reply);
             }
-            if (s_stat_callback)
-                s_stat_callback(l_cmd->id, false);
+            if (s_stat_callback) {
+                s_stat_callback(l_cmd->id, (dap_nanotime_now() - l_call_time) / 1000000);
+            }
         } else if (l_cmd) {
             log_it(L_WARNING,"NULL arguments for input for command \"%s\"", str_cmd);
             dap_json_rpc_error_add(l_json_arr_reply, -1, "NULL arguments for input for command \"%s\"", str_cmd);
diff --git a/net/server/cli_server/include/dap_cli_server.h b/net/server/cli_server/include/dap_cli_server.h
index 187f2e6d648dfb4a84fd05178ae4754349ccbe94..5ea264c4420650643a97b0a4428b484e8b086d54 100644
--- a/net/server/cli_server/include/dap_cli_server.h
+++ b/net/server/cli_server/include/dap_cli_server.h
@@ -32,7 +32,7 @@
 
 typedef int (*dap_cli_server_cmd_callback_ex_t)(int argc, char ** argv, void *arg_func, void **a_str_reply);
 typedef int (*dap_cli_server_cmd_callback_t)(int argc, char ** argv, void **a_str_reply);
-typedef void (*dap_cli_server_cmd_stat_callback_t)(int16_t a_cmd_num, bool a_flag);  // use to statistic collect
+typedef void (*dap_cli_server_cmd_stat_callback_t)(int16_t a_cmd_num, int64_t a_call_time);  // use to statistic collect
 
 typedef void (*dap_cli_server_override_log_cmd_callback_t)(const char*);