@@ -38,6 +38,24 @@ def _cmd_stats(args: argparse.Namespace) -> None:
3838 f" { key :<12} { d ['count' ]:>8,} blobs "
3939 f"{ d ['raw' ]:>12,} raw { d ['stored' ]:>12,} stored ({ r :.1f} x)"
4040 )
41+ if st .storage_class_distribution :
42+ classes = sorted (
43+ st .storage_class_distribution .items (),
44+ key = lambda kv : kv [1 ]["stored" ],
45+ reverse = True ,
46+ )
47+ if not args .verbose :
48+ classes = classes [:10 ]
49+ print ("\n Storage class distribution:" )
50+ for key , d in classes :
51+ r = d ["raw" ] / d ["stored" ] if d ["stored" ] else 0
52+ print (
53+ f" { key :<12} { d ['count' ]:>8,} blobs "
54+ f"{ d ['raw' ]:>12,} raw { d ['stored' ]:>12,} stored ({ r :.1f} x)"
55+ )
56+ if not args .verbose and len (st .storage_class_distribution ) > 10 :
57+ remaining = len (st .storage_class_distribution ) - 10
58+ print (f" ... and { remaining } more class(es) (use --verbose to show all)" )
4159
4260
4361def _cmd_history (args : argparse .Namespace ) -> None :
@@ -205,6 +223,9 @@ def main(argv: list[str] | None = None) -> None:
205223 # stats
206224 p = sub .add_parser ("stats" , help = "Show archive statistics" )
207225 p .add_argument ("db" , nargs = "?" , default = _DEFAULT_DB , help = "DB path" )
226+ p .add_argument (
227+ "-v" , "--verbose" , action = "store_true" , help = "Show all storage classes"
228+ )
208229
209230 # history
210231 p = sub .add_parser ("history" , help = "Show span history for a locator" )
0 commit comments