diff --git a/tools/server/server-context.cpp b/tools/server/server-context.cpp index 3dbda50df2..2facd71bd1 100644 --- a/tools/server/server-context.cpp +++ b/tools/server/server-context.cpp @@ -4435,7 +4435,6 @@ void server_routes::init_routes() { return res; } - // TODO: get rid of this dynamic_cast auto res_task = dynamic_cast(result.get()); GGML_ASSERT(res_task != nullptr); @@ -4473,7 +4472,6 @@ void server_routes::init_routes() { return res; } - // TODO: get rid of this dynamic_cast auto * res_task = dynamic_cast(result.get()); GGML_ASSERT(res_task != nullptr); @@ -4485,7 +4483,7 @@ void server_routes::init_routes() { } } - res->ok(res_task->slots_data); + res->ok(res_task->to_json()); return res; }; diff --git a/tools/server/server-task.cpp b/tools/server/server-task.cpp index ceaaf44d81..817cb778b8 100644 --- a/tools/server/server-task.cpp +++ b/tools/server/server-task.cpp @@ -1513,36 +1513,7 @@ json server_task_result_error::to_json() { // server_task_result_metrics // json server_task_result_metrics::to_json() { - return json { - { "idle", n_idle_slots }, - { "processing", n_processing_slots }, - { "deferred", n_tasks_deferred }, - { "t_start", metrics.t_start }, - - { "n_prompt_tokens_processed_total", metrics.prompt.count }, - { "n_prompt_tokens_cached_total", metrics.n_prompt_cached }, - { "t_tokens_generation_total", metrics.predict.time / 1e3 }, - { "n_tokens_predicted_total", metrics.predict.count }, - { "t_prompt_processing_total", metrics.prompt.time / 1e3 }, - - { "n_tokens_max", metrics.n_tokens_max }, - - { "n_prompt_tokens_processed", metrics.prompt_bucket.count }, - { "n_prompt_tokens_cached", metrics.n_prompt_cached_bucket }, - { "t_prompt_processing", metrics.prompt_bucket.time / 1e3 }, - { "n_tokens_predicted", metrics.predict_bucket.count }, - { "t_tokens_generation", metrics.predict_bucket.time / 1e3 }, - - { "n_decode_total", metrics.n_decode }, - { "n_busy_slots_total", metrics.n_busy_slots }, - - { "n_draft_tokens_total", metrics.n_draft_tokens }, - { "n_draft_accepted_total", metrics.n_draft_accepted }, - { "n_draft_verif_steps_total", metrics.n_draft_verif_steps }, - { "n_accepted_per_pos_total", metrics.n_accepted_per_pos }, - - { "slots", slots_data }, - }; + return slots_data; } // metrics definition: https://prometheus.io/docs/practices/naming/#metric-names diff --git a/tools/server/server-task.h b/tools/server/server-task.h index 674f99746f..9200dbf49d 100644 --- a/tools/server/server-task.h +++ b/tools/server/server-task.h @@ -490,6 +490,7 @@ struct server_task_result_error : server_task_result { }; struct server_task_result_metrics : server_task_result { + // these are immediate stats, not accumulated (server_metrics is cumulative) int n_idle_slots; int n_processing_slots; int n_tasks_deferred;