Updated modules for pt-summary

This commit is contained in:
Brian Fraser
2012-08-24 17:03:26 -03:00
parent 24ae24a64e
commit 1d3bf2c82b

View File

@@ -792,6 +792,7 @@ setup_commands () {
CMD_LSB_RELEASE="$( _which lsb_release 2>/dev/null )"
CMD_ETHTOOL="$( _which ethtool 2>/dev/null )"
CMD_GETCONF="$( _which getconf 2>/dev/null )"
CMD_FIO_STATUS="$( _which fio-status 2>/dev/null )"
}
collect_system_data () { local PTFUNCNAME=collect_system_data;
@@ -859,12 +860,67 @@ collect_system_data () { local PTFUNCNAME=collect_system_data;
fi
fi
fio_status_minus_a "$data_dir/fusion-io_card"
for file in $data_dir/*; do
[ "$file" = "vmstat" ] && continue
[ ! -s "$file" ] && rm "$file"
done
}
fio_status_minus_a () {
local file="$1"
local full_output="${file}_original_output"
[ -z "$CMD_FIO_STATUS" ] && return;
$CMD_FIO_STATUS -a > "$full_output"
cat <<'EOP' > "$PT_TMPDIR/fio_status_format.pl"
my $tmp_adapter;
while (<>) {
if ( /Fusion-io driver version:\s*(.+)/ ) {
print "driver_version $1"
}
next unless /^Adapter:(.+)/;
$tmp_adapter = $1;
last;
}
$/ = "\nAdapter: ";
$_ = $tmp_adapter . "\n" . scalar(<>);
my @adapters;
do {
my ($adapter, $adapter_general) = /\s*(.+)\s*\n\s*(.+)/m;
$adapter =~ tr/ /:/;
$adapter .= "::" . scalar(@adapters); # To differentiate two adapters with the same name
push @adapters, $adapter;
my ($connected_modules) = /Connected ioDimm modules?:\s*\n(.+?\n)\n/smg;
my @connected_modules = $connected_modules =~ /\s+([^:]+):.+\n/g;
print "${adapter}_general $adapter_general";
print "${adapter}_modules @connected_modules";
for my $module (@connected_modules) {
my ($attached, $general, $firmware, $media_status) = /
^ \s* $module \s+ (Attached[^\n]+) \n
\s+ ([^\n]+) \n # All the second line
.+? (Firmware\s+[^\n]+) \n
.+? (Media \s+ status:[^\n]+)
/xsm;
print "${adapter}_${module}_attached_as $attached";
print "${adapter}_${module}_general $general";
print "${adapter}_${module}_firmware $firmware";
print "${adapter}_${module}_media_status $media_status";
}
} while <>;
print "adapters @adapters\n";
exit;
EOP
perl -wln "$PT_TMPDIR/fio_status_format.pl" "$full_output" > "$file"
}
linux_exclusive_collection () { local PTFUNCNAME=linux_exclusive_collection;
local data_dir="$1"
@@ -1997,6 +2053,28 @@ parse_uptime () {
' "$file"
}
report_fio_minus_a () {
local file="$1"
name_val "fio Driver" "$(get_var driver_version "$file")"
local adapters="$( get_var "adapters" "$file" )"
for adapter in $( echo $adapters | awk '{for (i=1; i<=NF; i++) print $i;}' ); do
name_val "$(echo "$adapter" | sed 's/:/ /' | sed 's/::[0-9]*$//')" "$(get_var "${adapter}_general" "$file")"
local modules="$(get_var "${adapter}_modules" "$file")"
for module in $( echo $modules | awk '{for (i=1; i<=NF; i++) print $i;}' ); do
local name_val_len_orig=$NAME_VAL_LEN;
local NAME_VAL_LEN=16
name_val "$module" "$(get_var "${adapter}_${module}_attached_as" "$file")"
name_val "" "$(get_var "${adapter}_${module}_general" "$file")"
name_val "" "$(get_var "${adapter}_${module}_firmware" "$file")"
name_val "" "$(get_var "${adapter}_${module}_media_status" "$file")"
local NAME_VAL_LEN=$name_val_len_orig;
done
done
}
report_system_summary () { local PTFUNCNAME=report_system_summary;
local data_dir="$1"
@@ -2040,6 +2118,11 @@ report_system_summary () { local PTFUNCNAME=report_system_summary;
section_Memory "$platform" "$data_dir"
if [ -s "$data_dir/fusion-io_card" ]; then
section "Fusion-io Card"
report_fio_minus_a "$data_dir/fusion-io_card"
fi
if [ -s "$data_dir/mounted_fs" ]; then
section "Mounted Filesystems"
parse_filesystems "$data_dir/mounted_fs" "${platform}"