use std::collections::BTreeMap;
#[derive(Debug, Clone, Default, PartialEq, Eq)]
#[non_exhaustive]
pub struct AgentStats {
pub session_duration_ns: u64,
pub lookups: u64,
pub unconsulted: u64,
pub hits: u64,
pub stores: u64,
pub stored_bytes: u64,
pub verifications: u64,
pub divergences: u64,
pub downloaded_bytes: u64,
pub uploaded_bytes: u64,
pub background_uploads: u64,
pub background_upload_failures: u64,
pub remote_blob_pack_uploads: u64,
pub remote_blob_pack_upload_blobs: u64,
pub upload_drain_duration_ns: u64,
pub prefetched_actions: u64,
pub predictions_loaded: u64,
pub bypasses: BTreeMap<String, u64>,
pub avoided_compiler_duration_ns: u64,
pub compiler: BTreeMap<String, CompilerStats>,
pub slow_compilations: BTreeMap<String, u64>,
pub remote_failures: u64,
pub remote_manifest_lookups: u64,
pub remote_manifest_lookup_duration_ns: u64,
pub remote_action_lookups: u64,
pub remote_action_lookup_duration_ns: u64,
pub remote_blob_requests: u64,
pub remote_blob_pack_requests: u64,
pub remote_blob_pack_blobs: u64,
pub remote_blob_transfer_duration_ns: u64,
pub local_cas_write_duration_ns: u64,
pub prefetch_runs: u64,
pub prefetch_duration_ns: u64,
pub materialization_duration_ns: u64,
pub restored_output_files: u64,
pub restored_output_bytes: u64,
pub reflinked_output_files: u64,
pub reflinked_output_bytes: u64,
pub copied_output_files: u64,
pub copied_output_bytes: u64,
pub reused_output_files: u64,
pub reused_output_bytes: u64,
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
#[non_exhaustive]
pub struct CompilerStats {
pub invocations: u64,
pub duration_ns: u64,
}
impl CompilerStats {
pub fn new(invocations: u64, duration_ns: u64) -> Self {
Self {
invocations,
duration_ns,
}
}
}