From 22939bc8199d730e7efceef0c226b267d320945d Mon Sep 17 00:00:00 2001 From: Elizabeth Mattijsen Date: Sun, 5 Nov 2017 18:20:30 +0100 Subject: [PATCH] Telemetry report now removes columns without any data - only for the human readable case, though: :csv output unchanged --- lib/Telemetry.pm6 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/Telemetry.pm6 b/lib/Telemetry.pm6 index c2346978fef..c65705eebe6 100644 --- a/lib/Telemetry.pm6 +++ b/lib/Telemetry.pm6 @@ -802,13 +802,14 @@ multi sub report( !! (%default_format := prepare-format(@default_format)); # some initializations - my @formats = %format{@columns}; my $text := nqp::list_s; + my @periods = periods(@s); # only want CSV ready output if $csv { + my @formats = %format{@columns}; nqp::push_s($text,%format{@columns}>>.[COLUMN].join(' ')); - for periods(@s) -> $period { + for @periods -> $period { nqp::push_s($text, @formats.map( -> @info { $period."@info[METHOD]"() @@ -822,7 +823,13 @@ multi sub report( my $first = @s[0]; my $last = @s[*-1]; my $total = $last - $first; + + # remove the columns that don't have any values + @columns = @columns.grep: -> $column { + @periods.first: { ."%format{$column}[METHOD]"() } + }; my $header = "\n%format{@columns}>>.[HEADER].join(' ')"; + my @formats = %format{@columns}; nqp::push_s($text,qq:to/HEADER/.chomp); Telemetry Report of Process #$*PID ({Instant.from-posix(nqp::time_i).DateTime}) @@ -860,7 +867,7 @@ HEADER nqp::push_s($text,$header) unless $header-repeat; - for periods(@s).kv -> $index, $period { + for @periods.kv -> $index, $period { nqp::push_s($text,$header) if $header-repeat && $index %% $header-repeat; push-period($period)