aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcmd/arcstat/arcstat.in38
-rw-r--r--man/man1/arcstat.122
2 files changed, 52 insertions, 8 deletions
diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in
index df0eb0c22..40ab975c6 100755
--- a/cmd/arcstat/arcstat.in
+++ b/cmd/arcstat/arcstat.in
@@ -134,12 +134,13 @@ opfile = None
sep = " " # Default separator is 2 spaces
version = "0.4"
l2exist = False
-cmd = ("Usage: arcstat [-hvx] [-f fields] [-o file] [-s string] [interval "
+cmd = ("Usage: arcstat [-havxp] [-f fields] [-o file] [-s string] [interval "
"[count]]\n")
cur = {}
d = {}
out = None
kstat = None
+pretty_print = True
if sys.platform.startswith('freebsd'):
@@ -197,6 +198,7 @@ def detailed_usage():
def usage():
sys.stderr.write("%s\n" % cmd)
sys.stderr.write("\t -h : Print this help message\n")
+ sys.stderr.write("\t -a : Print all possible stats\n")
sys.stderr.write("\t -v : List all possible field headers and definitions"
"\n")
sys.stderr.write("\t -x : Print extended stats\n")
@@ -204,6 +206,7 @@ def usage():
sys.stderr.write("\t -o : Redirect output to the specified file\n")
sys.stderr.write("\t -s : Override default field separator with custom "
"character or string\n")
+ sys.stderr.write("\t -p : Disable auto-scaling of numerical fields\n")
sys.stderr.write("\nExamples:\n")
sys.stderr.write("\tarcstat -o /tmp/a.log 2 10\n")
sys.stderr.write("\tarcstat -s \",\" -o /tmp/a.log 2 10\n")
@@ -262,10 +265,14 @@ def print_values():
global hdr
global sep
global v
+ global pretty_print
- sys.stdout.write(sep.join(
- prettynum(cols[col][0], cols[col][1], v[col]) for col in hdr))
+ if pretty_print:
+ fmt = lambda col: prettynum(cols[col][0], cols[col][1], v[col])
+ else:
+ fmt = lambda col: v[col]
+ sys.stdout.write(sep.join(fmt(col) for col in hdr))
sys.stdout.write("\n")
sys.stdout.flush()
@@ -273,9 +280,14 @@ def print_values():
def print_header():
global hdr
global sep
+ global pretty_print
- sys.stdout.write(sep.join("%*s" % (cols[col][0], col) for col in hdr))
+ if pretty_print:
+ fmt = lambda col: "%*s" % (cols[col][0], col)
+ else:
+ fmt = lambda col: col
+ sys.stdout.write(sep.join(fmt(col) for col in hdr))
sys.stdout.write("\n")
@@ -312,8 +324,10 @@ def init():
global sep
global out
global l2exist
+ global pretty_print
desired_cols = None
+ aflag = False
xflag = False
hflag = False
vflag = False
@@ -322,14 +336,16 @@ def init():
try:
opts, args = getopt.getopt(
sys.argv[1:],
- "xo:hvs:f:",
+ "axo:hvs:f:p",
[
+ "all",
"extended",
"outfile",
"help",
"verbose",
"separator",
- "columns"
+ "columns",
+ "parsable"
]
)
except getopt.error as msg:
@@ -338,6 +354,8 @@ def init():
opts = None
for opt, arg in opts:
+ if opt in ('-a', '--all'):
+ aflag = True
if opt in ('-x', '--extended'):
xflag = True
if opt in ('-o', '--outfile'):
@@ -353,6 +371,8 @@ def init():
if opt in ('-f', '--columns'):
desired_cols = arg
i += 1
+ if opt in ('-p', '--parsable'):
+ pretty_print = False
i += 1
argv = sys.argv[i:]
@@ -397,6 +417,12 @@ def init():
incompat)
usage()
+ if aflag:
+ if l2exist:
+ hdr = cols.keys()
+ else:
+ hdr = [col for col in cols.keys() if not col.startswith("l2")]
+
if opfile:
try:
out = open(opfile, "w")
diff --git a/man/man1/arcstat.1 b/man/man1/arcstat.1
index 497c50ada..de63206e2 100644
--- a/man/man1/arcstat.1
+++ b/man/man1/arcstat.1
@@ -13,13 +13,13 @@
.\" Copyright (c) 2015 by Delphix. All rights reserved.
.\" Copyright (c) 2020 by AJ Jordan. All rights reserved.
.\"
-.TH ARCSTAT 1 "Aug 24, 2020" OpenZFS
+.TH ARCSTAT 1 "Oct 20, 2020" OpenZFS
.SH NAME
arcstat \- report ZFS ARC and L2ARC statistics
.SH SYNOPSIS
.LP
.nf
-\fBarcstat\fR [\fB-hvx\fR] [\fB-f field[,field]...\fR] [\fB-o file\fR] [\fB-s string\fR] [\fBinterval\fR [\fBcount\fR]]
+\fBarcstat\fR [\fB-havxp\fR] [\fB-f field[,field]...\fR] [\fB-o file\fR] [\fB-s string\fR] [\fBinterval\fR [\fBcount\fR]]
.fi
.SH DESCRIPTION
@@ -513,6 +513,15 @@ The following options are supported:
.sp
.ne 2
.na
+\fB\fB-a\fR\fR
+.ad
+.RS 12n
+Print all possible stats.
+.RE
+
+.sp
+.ne 2
+.na
\fB\fB-f\fR\fR
.ad
.RS 12n
@@ -540,6 +549,15 @@ Report statistics to a file instead of the standard output.
.sp
.ne 2
.na
+\fB\fB-p\fR\fR
+.ad
+.RS 12n
+Disable auto-scaling of numerical fields (for raw, machine-parsable values).
+.RE
+
+.sp
+.ne 2
+.na
\fB\fB-s\fR\fR
.ad
.RS 12n