From ea1435ad6e4621607247f9435bd2b363a1aaa03c Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 9 Jul 2024 16:32:51 -0400 Subject: [PATCH] doc queue stats --- .../web/storyteller_web/src/docs/api_doc.rs | 31 ++++++++++++------- ....rs => get_unified_queue_stats_handler.rs} | 24 +++++++++----- .../src/http_server/endpoints/stats/mod.rs | 2 +- .../src/http_server/routes/add_routes.rs | 2 +- 4 files changed, 38 insertions(+), 21 deletions(-) rename crates/service/web/storyteller_web/src/http_server/endpoints/stats/{get_unified_queue_stats.rs => get_unified_queue_stats_handler.rs} (93%) diff --git a/crates/service/web/storyteller_web/src/docs/api_doc.rs b/crates/service/web/storyteller_web/src/docs/api_doc.rs index 15ca23ff2c..dd9b3da24d 100644 --- a/crates/service/web/storyteller_web/src/docs/api_doc.rs +++ b/crates/service/web/storyteller_web/src/docs/api_doc.rs @@ -70,6 +70,7 @@ use crate::http_server::endpoints::inference_job::terminate_inference_job_handle use crate::http_server::endpoints::media_files::delete::delete_media_file_handler::*; use crate::http_server::endpoints::media_files::edit::change_media_file_animation_type_handler::*; use crate::http_server::endpoints::media_files::edit::change_media_file_engine_category_handler::*; +use crate::http_server::endpoints::stats::get_unified_queue_stats_handler::*; use crate::http_server::endpoints::media_files::edit::change_media_file_visibility_handler::*; use crate::http_server::endpoints::media_files::edit::rename_media_file_handler::*; use crate::http_server::endpoints::media_files::edit::set_media_file_cover_image_handler::*; @@ -159,6 +160,7 @@ use crate::http_server::web_utils::response_success_helpers::*; crate::http_server::endpoints::media_files::edit::rename_media_file_handler::rename_media_file_handler, crate::http_server::endpoints::media_files::edit::set_media_file_cover_image_handler::set_media_file_cover_image_handler, crate::http_server::endpoints::media_files::get::batch_get_media_files_handler::batch_get_media_files_handler, + crate::http_server::endpoints::stats::get_unified_queue_stats_handler::get_unified_queue_stats_handler, crate::http_server::endpoints::media_files::get::get_media_file_handler::get_media_file_handler, crate::http_server::endpoints::media_files::list::list_featured_media_files_handler::list_featured_media_files_handler, crate::http_server::endpoints::media_files::list::list_media_files_by_batch_token_handler::list_media_files_by_batch_token_handler, @@ -290,6 +292,7 @@ use crate::http_server::web_utils::response_success_helpers::*; BatchStatusDetailsResponse, BetaKeyItem, BookmarkRow, + ByQueueStats, ChangeMediaFileAnimationTypeError, ChangeMediaFileAnimationTypeRequest, ChangeMediaFileEngineCategoryError, @@ -311,14 +314,6 @@ use crate::http_server::web_utils::response_success_helpers::*; CreateSceneError, CreateSceneSuccessResponse, CreateUserBookmarkError, - SearchFeaturedMediaFileListItem, - SearchFeaturedMediaFilesError, - SearchFeaturedMediaFilesQueryParams, - SearchFeaturedMediaFilesSuccessResponse, - SearchMediaFileListItem, - SearchMediaFilesError, - SearchMediaFilesQueryParams, - SearchMediaFilesSuccessResponse, CreateUserBookmarkRequest, CreateUserBookmarkSuccessResponse, DeleteCommentError, @@ -380,16 +375,19 @@ use crate::http_server::web_utils::response_success_helpers::*; GetPromptError, GetPromptPathInfo, GetPromptSuccessResponse, + GetUnifiedQueueStatsError, + GetUnifiedQueueStatsSuccessResponse, GetUserRatingError, GetUserRatingResponse, GetWeightError, GetWeightPathInfo, GetWeightResponse, + InferenceJobStatusResponsePayload, + InferenceJobTokenType, InferTtsError, InferTtsRequest, InferTtsSuccessResponse, - InferenceJobStatusResponsePayload, - InferenceJobTokenType, + LegacyQueueDetails, ListActiveUserSubscriptionsError, ListActiveUserSubscriptionsResponse, ListAvailableWeightsQuery, @@ -410,7 +408,6 @@ use crate::http_server::web_utils::response_success_helpers::*; ListFeaturedWeightsError, ListFeaturedWeightsQueryParams, ListFeaturedWeightsSuccessResponse, - SubscriptionProductKey, ListMediaFilesByBatchError, ListMediaFilesByBatchPathInfo, ListMediaFilesByBatchSuccessResponse, @@ -455,10 +452,11 @@ use crate::http_server::web_utils::response_success_helpers::*; MediaFileForUserListItem, MediaFileInfo, MediaFileListItem, - MediaFileUploadError, MediaFilesByBatchListItem, + MediaFileUploadError, ModelWeightForList, ModelWeightSearchResult, + ModernInferenceQueueStats, PinnedMediaFile, PinnedModelWeightForList, ProfileError, @@ -471,6 +469,14 @@ use crate::http_server::web_utils::response_success_helpers::*; RenameMediaFileRequest, RequestDetailsResponse, ResultDetailsResponse, + SearchFeaturedMediaFileListItem, + SearchFeaturedMediaFilesError, + SearchFeaturedMediaFilesQueryParams, + SearchFeaturedMediaFilesSuccessResponse, + SearchMediaFileListItem, + SearchMediaFilesError, + SearchMediaFilesQueryParams, + SearchMediaFilesSuccessResponse, SearchModelWeightsError, SearchModelWeightsRequest, SearchModelWeightsSuccessResponse, @@ -492,6 +498,7 @@ use crate::http_server::web_utils::response_success_helpers::*; StatusAlertResponse, StatusDetailsResponse, StorytellerStreamPlan, + SubscriptionProductKey, TerminateInferenceJobError, TerminateInferenceJobPathInfo, TerminateInferenceJobSuccessResponse, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/stats/get_unified_queue_stats.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/stats/get_unified_queue_stats_handler.rs similarity index 93% rename from crates/service/web/storyteller_web/src/http_server/endpoints/stats/get_unified_queue_stats.rs rename to crates/service/web/storyteller_web/src/http_server/endpoints/stats/get_unified_queue_stats_handler.rs index 841a9669aa..b439326834 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/stats/get_unified_queue_stats.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/stats/get_unified_queue_stats_handler.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::{http::StatusCode, HttpRequest, HttpResponse, ResponseError, web}; use chrono::NaiveDateTime; use log::{debug, error, warn}; - +use utoipa::ToSchema; use mysql_queries::queries::stats::get_unified_queue_stats::get_unified_queue_stats; use redis_common::redis_cache_keys::RedisCacheKeys; @@ -11,7 +11,7 @@ use crate::http_server::endpoints::stats::result_transformer::{CacheableQueueSta use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; use crate::state::server_state::ServerState; -#[derive(Serialize)] +#[derive(Serialize, ToSchema)] pub struct GetUnifiedQueueStatsSuccessResponse { pub success: bool, pub cache_time: NaiveDateTime, @@ -24,12 +24,12 @@ pub struct GetUnifiedQueueStatsSuccessResponse { pub legacy_tts: LegacyQueueDetails, } -#[derive(Serialize)] +#[derive(Serialize, ToSchema)] pub struct LegacyQueueDetails { pub pending_job_count: u64, } -#[derive(Serialize)] +#[derive(Serialize, ToSchema)] pub struct ModernInferenceQueueStats { pub total_pending_job_count: u64, @@ -39,7 +39,7 @@ pub struct ModernInferenceQueueStats { pub by_queue: ByQueueStats, } -#[derive(Serialize)] +#[derive(Serialize, ToSchema)] pub struct ByQueueStats { pub pending_face_animation_jobs: u64, pub pending_rvc_jobs: u64, @@ -49,7 +49,7 @@ pub struct ByQueueStats { pub pending_stable_diffusion: u64, } -#[derive(Debug)] +#[derive(Debug, ToSchema)] pub enum GetUnifiedQueueStatsError { ServerError, } @@ -77,6 +77,16 @@ impl std::fmt::Display for GetUnifiedQueueStatsError { } } +/// Get queue stats for most inference jobs (tts, voice conversion, comfy, etc.) +#[utoipa::path( + get, + tag = "Stats", + path = "/v1/stats/queues", + responses( + (status = 200, description = "Success", body = GetUnifiedQueueStatsSuccessResponse), + (status = 500, description = "Server error", body = GetUnifiedQueueStatsError), + ), +)] pub async fn get_unified_queue_stats_handler( http_request: HttpRequest, server_state: web::Data> @@ -204,7 +214,7 @@ pub async fn get_unified_queue_stats_handler( pending_stable_diffusion: cacheable_stats_result.queues.stable_diffusion, } }, - legacy_tts: LegacyQueueDetails { + legacy_tts: LegacyQueueDetails { pending_job_count: cacheable_stats_result.queues.legacy_tts, }, }) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/stats/mod.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/stats/mod.rs index 9f0eb8062b..db3d774ebd 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/stats/mod.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/stats/mod.rs @@ -1,2 +1,2 @@ -pub mod get_unified_queue_stats; +pub mod get_unified_queue_stats_handler; pub mod result_transformer; \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs index d72081ade2..c05a89dd2b 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs @@ -54,7 +54,7 @@ use crate::http_server::endpoints::prompts::get_prompt_handler::get_prompt_handl use crate::http_server::endpoints::service::health_check_handler::get_health_check_handler; use crate::http_server::endpoints::service::public_info_handler::get_public_info_handler; use crate::http_server::endpoints::service::status_alert_handler::status_alert_handler; -use crate::http_server::endpoints::stats::get_unified_queue_stats::get_unified_queue_stats_handler; +use crate::http_server::endpoints::stats::get_unified_queue_stats_handler::get_unified_queue_stats_handler; use crate::http_server::endpoints::stubs::app_model_downloads::get_app_model_downloads_handler; use crate::http_server::endpoints::stubs::app_news::get_app_news_handler; use crate::http_server::endpoints::stubs::app_plans::get_app_plans_handler;