refactor: 拆分 gateway 单体为独立 crate,新增 systemd 部署方案

将 gateway 内部的 model-fetch、provider-transport、scheduler-core、
usage-runtime、video-tasks-core 模块提取为独立 crate;重构 gateway
内部模块结构(state/router/cache/data/query 等);移除大量遗留模块
文件;新增 systemd 二进制部署骨架及相关文档;更新前端 usage 相关
API 和组件。
This commit is contained in:
fawney19
2026-04-05 20:23:16 +08:00
parent cbc811f6ce
commit 763ff03a7b
777 changed files with 42654 additions and 21464 deletions
@@ -20,7 +20,9 @@ use super::{
build_admin_monitoring_trace_provider_stats_response,
build_admin_monitoring_trace_request_response, build_admin_monitoring_user_behavior_response,
};
use crate::gateway::{AppState, GatewayError, GatewayPublicRequestContext};
use crate::control::GatewayPublicRequestContext;
use crate::handlers::admin::misc_helpers::attach_admin_audit_response;
use crate::{AppState, GatewayError};
use axum::{body::Body, http, response::Response};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
@@ -63,9 +65,13 @@ pub(super) async fn maybe_build_local_admin_monitoring_response(
};
match route {
AdminMonitoringRoute::AuditLogs => Ok(Some(
AdminMonitoringRoute::AuditLogs => Ok(Some(attach_admin_audit_response(
build_admin_monitoring_audit_logs_response(state, request_context).await?,
)),
"admin_monitoring_audit_logs_viewed",
"view_admin_audit_logs",
"audit_log",
&admin_monitoring_audit_target_id(request_context),
))),
AdminMonitoringRoute::ResilienceStatus => Ok(Some(
build_admin_monitoring_resilience_status_response(state).await?,
)),
@@ -79,12 +85,20 @@ pub(super) async fn maybe_build_local_admin_monitoring_response(
AdminMonitoringRoute::CacheStats => Ok(Some(
build_admin_monitoring_cache_stats_response(state).await?,
)),
AdminMonitoringRoute::CacheAffinities => Ok(Some(
AdminMonitoringRoute::CacheAffinities => Ok(Some(attach_admin_audit_response(
build_admin_monitoring_cache_affinities_response(state, request_context).await?,
)),
AdminMonitoringRoute::CacheAffinity => Ok(Some(
"admin_monitoring_cache_affinities_viewed",
"view_cache_affinities",
"cache_affinity",
&admin_monitoring_audit_target_id(request_context),
))),
AdminMonitoringRoute::CacheAffinity => Ok(Some(attach_admin_audit_response(
build_admin_monitoring_cache_affinity_response(state, request_context).await?,
)),
"admin_monitoring_cache_affinity_viewed",
"view_cache_affinity",
"cache_affinity",
&admin_monitoring_audit_target_id(request_context),
))),
AdminMonitoringRoute::CacheUsersDelete => Ok(Some(
build_admin_monitoring_cache_users_delete_response(state, request_context).await?,
)),
@@ -126,18 +140,43 @@ pub(super) async fn maybe_build_local_admin_monitoring_response(
AdminMonitoringRoute::SystemStatus => Ok(Some(
build_admin_monitoring_system_status_response(state).await?,
)),
AdminMonitoringRoute::SuspiciousActivities => Ok(Some(
AdminMonitoringRoute::SuspiciousActivities => Ok(Some(attach_admin_audit_response(
build_admin_monitoring_suspicious_activities_response(state, request_context).await?,
)),
AdminMonitoringRoute::UserBehavior => Ok(Some(
"admin_monitoring_suspicious_activities_viewed",
"view_suspicious_activities",
"suspicious_activity",
&admin_monitoring_audit_target_id(request_context),
))),
AdminMonitoringRoute::UserBehavior => Ok(Some(attach_admin_audit_response(
build_admin_monitoring_user_behavior_response(state, request_context).await?,
)),
AdminMonitoringRoute::TraceRequest => Ok(Some(
"admin_monitoring_user_behavior_viewed",
"view_user_behavior",
"user",
&admin_monitoring_audit_target_id(request_context),
))),
AdminMonitoringRoute::TraceRequest => Ok(Some(attach_admin_audit_response(
build_admin_monitoring_trace_request_response(state, request_context).await?,
)),
AdminMonitoringRoute::TraceProviderStats => Ok(Some(
"admin_monitoring_request_trace_viewed",
"view_request_trace",
"request_trace",
&admin_monitoring_audit_target_id(request_context),
))),
AdminMonitoringRoute::TraceProviderStats => Ok(Some(attach_admin_audit_response(
build_admin_monitoring_trace_provider_stats_response(state, request_context).await?,
)),
"admin_monitoring_provider_trace_stats_viewed",
"view_provider_trace_stats",
"provider",
&admin_monitoring_audit_target_id(request_context),
))),
}
}
fn admin_monitoring_audit_target_id(request_context: &GatewayPublicRequestContext) -> String {
match request_context.request_query_string.as_deref() {
Some(query) if !query.trim().is_empty() => {
format!("{}?{query}", request_context.request_path)
}
_ => request_context.request_path.clone(),
}
}