mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-09 18:30:16 +00:00
Updated modules for pt-summary
This commit is contained in:
@@ -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}"
|
||||
|
Reference in New Issue
Block a user