mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
feat: add scoped manual usage cleanup
This commit is contained in:
@@ -18,12 +18,12 @@ pub use types::{
|
||||
UsageAuditListQuery, UsageAuditSummaryQuery, UsageBodyCaptureResult, UsageBodyCaptureState,
|
||||
UsageBodyCaptureStorage, UsageBodyField, UsageBreakdownGroupBy, UsageBreakdownSummaryQuery,
|
||||
UsageCacheAffinityHitSummaryQuery, UsageCacheAffinityIntervalGroupBy,
|
||||
UsageCacheAffinityIntervalQuery, UsageCacheHitSummaryQuery, UsageCleanupPreviewCounts,
|
||||
UsageCleanupSummary, UsageCleanupWindow, UsageCostSavingsSummaryQuery, UsageDailyHeatmapQuery,
|
||||
UsageDashboardDailyBreakdownQuery, UsageDashboardProviderCountsQuery,
|
||||
UsageDashboardSummaryQuery, UsageErrorDistributionQuery, UsageLeaderboardGroupBy,
|
||||
UsageLeaderboardQuery, UsageMonitoringErrorCountQuery, UsageMonitoringErrorListQuery,
|
||||
UsagePerformancePercentilesQuery, UsageProviderPerformanceQuery, UsageReadRepository,
|
||||
UsageRepository, UsageSettledCostSummaryQuery, UsageTimeSeriesGranularity,
|
||||
UsageCacheAffinityIntervalQuery, UsageCacheHitSummaryQuery, UsageCleanupExecutionMode,
|
||||
UsageCleanupPreviewCounts, UsageCleanupSummary, UsageCleanupTargets, UsageCleanupWindow,
|
||||
UsageCostSavingsSummaryQuery, UsageDailyHeatmapQuery, UsageDashboardDailyBreakdownQuery,
|
||||
UsageDashboardProviderCountsQuery, UsageDashboardSummaryQuery, UsageErrorDistributionQuery,
|
||||
UsageLeaderboardGroupBy, UsageLeaderboardQuery, UsageMonitoringErrorCountQuery,
|
||||
UsageMonitoringErrorListQuery, UsagePerformancePercentilesQuery, UsageProviderPerformanceQuery,
|
||||
UsageReadRepository, UsageRepository, UsageSettledCostSummaryQuery, UsageTimeSeriesGranularity,
|
||||
UsageTimeSeriesQuery, UsageWriteRepository,
|
||||
};
|
||||
|
||||
@@ -1688,16 +1688,20 @@ pub trait UsageWriteRepository: Send + Sync {
|
||||
window: &UsageCleanupWindow,
|
||||
batch_size: usize,
|
||||
auto_delete_expired_keys: bool,
|
||||
targets: UsageCleanupTargets,
|
||||
mode: UsageCleanupExecutionMode,
|
||||
) -> Result<UsageCleanupSummary, crate::DataLayerError> {
|
||||
let _ = (window, batch_size, auto_delete_expired_keys);
|
||||
let _ = (window, batch_size, auto_delete_expired_keys, targets, mode);
|
||||
Ok(UsageCleanupSummary::default())
|
||||
}
|
||||
|
||||
async fn preview_usage_cleanup(
|
||||
&self,
|
||||
window: &UsageCleanupWindow,
|
||||
targets: UsageCleanupTargets,
|
||||
mode: UsageCleanupExecutionMode,
|
||||
) -> Result<UsageCleanupPreviewCounts, crate::DataLayerError> {
|
||||
let _ = window;
|
||||
let _ = (window, targets, mode);
|
||||
Ok(UsageCleanupPreviewCounts::default())
|
||||
}
|
||||
}
|
||||
@@ -1730,6 +1734,58 @@ pub struct UsageCleanupWindow {
|
||||
pub log_cutoff: DateTime<Utc>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||
pub struct UsageCleanupTargets {
|
||||
pub detail_body: bool,
|
||||
pub compressed_body: bool,
|
||||
pub headers: bool,
|
||||
pub records: bool,
|
||||
pub expired_keys: bool,
|
||||
}
|
||||
|
||||
impl UsageCleanupTargets {
|
||||
pub const fn all_policy_targets() -> Self {
|
||||
Self {
|
||||
detail_body: true,
|
||||
compressed_body: true,
|
||||
headers: true,
|
||||
records: true,
|
||||
expired_keys: true,
|
||||
}
|
||||
}
|
||||
|
||||
pub const fn body_targets() -> Self {
|
||||
Self {
|
||||
detail_body: true,
|
||||
compressed_body: true,
|
||||
headers: false,
|
||||
records: false,
|
||||
expired_keys: false,
|
||||
}
|
||||
}
|
||||
|
||||
pub const fn any_selected(self) -> bool {
|
||||
self.detail_body
|
||||
|| self.compressed_body
|
||||
|| self.headers
|
||||
|| self.records
|
||||
|| self.expired_keys
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for UsageCleanupTargets {
|
||||
fn default() -> Self {
|
||||
Self::all_policy_targets()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, serde::Serialize, serde::Deserialize)]
|
||||
pub enum UsageCleanupExecutionMode {
|
||||
#[default]
|
||||
Policy,
|
||||
BeforeNowBodyFields,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||
pub struct UsageCleanupPreviewCounts {
|
||||
pub detail: u64,
|
||||
|
||||
Reference in New Issue
Block a user