Make some internal values show up nicer in --output json

This commit is contained in:
Brian Fraser
2013-03-05 02:50:13 -03:00
parent 310867b301
commit 91052e7198
4 changed files with 28 additions and 130 deletions

View File

@@ -7541,8 +7541,8 @@ use constant PTDEBUG => $ENV{PTDEBUG} || 0;
my $have_json = eval { require JSON }; my $have_json = eval { require JSON };
our $pretty_json = undef; our $pretty_json = 0;
our $sorted_json = undef; our $sorted_json = 0;
extends qw(QueryReportFormatter); extends qw(QueryReportFormatter);
@@ -7589,6 +7589,8 @@ override query_report => sub {
my @attribs = @{$ea->get_attributes()}; my @attribs = @{$ea->get_attributes()};
my %string_args = map { $_ => 1 } qw( db host arg user bytes pos_in_log );
my @queries; my @queries;
foreach my $worst_info ( @$worst ) { foreach my $worst_info ( @$worst ) {
my $item = $worst_info->[0]; my $item = $worst_info->[0];
@@ -7628,6 +7630,9 @@ override query_report => sub {
$class{ts_min} = $ts->{min}; $class{ts_min} = $ts->{min};
$class{ts_max} = $ts->{max}; $class{ts_max} = $ts->{max};
} }
elsif ( $string_args{$attrib} ) {
$metrics{$attrib} = { value => $metrics{$attrib}{max} };
}
elsif ( ($ea->{type_for}->{$attrib} || '') eq 'num' ) { elsif ( ($ea->{type_for}->{$attrib} || '') eq 'num' ) {
for my $value ( values %{$metrics{$attrib}} ) { for my $value ( values %{$metrics{$attrib}} ) {
next unless $value; next unless $value;

View File

@@ -9,8 +9,8 @@ use constant PTDEBUG => $ENV{PTDEBUG} || 0;
my $have_json = eval { require JSON }; my $have_json = eval { require JSON };
our $pretty_json = undef; our $pretty_json = 0;
our $sorted_json = undef; our $sorted_json = 0;
extends qw(QueryReportFormatter); extends qw(QueryReportFormatter);
@@ -57,6 +57,8 @@ override query_report => sub {
my @attribs = @{$ea->get_attributes()}; my @attribs = @{$ea->get_attributes()};
my %string_args = map { $_ => 1 } qw( db host arg user bytes pos_in_log );
my @queries; my @queries;
foreach my $worst_info ( @$worst ) { foreach my $worst_info ( @$worst ) {
my $item = $worst_info->[0]; my $item = $worst_info->[0];
@@ -96,6 +98,9 @@ override query_report => sub {
$class{ts_min} = $ts->{min}; $class{ts_min} = $ts->{min};
$class{ts_max} = $ts->{max}; $class{ts_max} = $ts->{max};
} }
elsif ( $string_args{$attrib} ) {
$metrics{$attrib} = { value => $metrics{$attrib}{max} };
}
elsif ( ($ea->{type_for}->{$attrib} || '') eq 'num' ) { elsif ( ($ea->{type_for}->{$attrib} || '') eq 'num' ) {
# Avoid scientific notation in the metrics by forcing it to use # Avoid scientific notation in the metrics by forcing it to use
# six decimal places. # six decimal places.

View File

@@ -135,59 +135,19 @@
"sum" : 0 "sum" : 0
}, },
"bytes" : { "bytes" : {
"avg" : "129.000000", "value" : 129
"cnt" : "1.000000",
"max" : "129.000000",
"median" : "129.000000",
"min" : "129.000000",
"pct" : "0.12",
"pct_95" : "129.000000",
"stddev" : 0,
"sum" : "129.000000"
}, },
"db" : { "db" : {
"avg" : 0, "value" : "db1"
"cnt" : 1,
"max" : "db1",
"median" : 0,
"min" : "db1",
"pct" : 0.142857142857143,
"pct_95" : 0,
"stddev" : 0,
"sum" : null
}, },
"host" : { "host" : {
"avg" : 0, "value" : ""
"cnt" : 1,
"max" : "",
"median" : 0,
"min" : "",
"pct" : 0.125,
"pct_95" : 0,
"stddev" : 0,
"sum" : null
}, },
"pos_in_log" : { "pos_in_log" : {
"avg" : "338.000000", "value" : 338
"cnt" : "1.000000",
"max" : "338.000000",
"median" : "338.000000",
"min" : "338.000000",
"pct" : "0.12",
"pct_95" : "338.000000",
"stddev" : 0,
"sum" : "338.000000"
}, },
"user" : { "user" : {
"avg" : 0, "value" : "[SQL_SLAVE]"
"cnt" : 1,
"max" : "[SQL_SLAVE]",
"median" : 0,
"min" : "[SQL_SLAVE]",
"pct" : 0.125,
"pct_95" : 0,
"stddev" : 0,
"sum" : null
} }
}, },
"class" : { "class" : {

View File

@@ -69,37 +69,13 @@
"sum" : 0 "sum" : 0
}, },
"bytes" : { "bytes" : {
"avg" : "35.000000", "value" : 35
"cnt" : "1.000000",
"max" : "35.000000",
"median" : "35.000000",
"min" : "35.000000",
"pct" : "0.33",
"pct_95" : "35.000000",
"stddev" : 0,
"sum" : "35.000000"
}, },
"host" : { "host" : {
"avg" : 0, "value" : "127.0.0.1"
"cnt" : 1,
"max" : "127.0.0.1",
"median" : 0,
"min" : "127.0.0.1",
"pct" : 0.333333333333333,
"pct_95" : 0,
"stddev" : 0,
"sum" : null
}, },
"pos_in_log" : { "pos_in_log" : {
"avg" : 0, "value" : 0
"cnt" : "1.000000",
"max" : 0,
"median" : 0,
"min" : 0,
"pct" : "0.33",
"pct_95" : 0,
"stddev" : 0,
"sum" : 0
} }
}, },
"class" : { "class" : {
@@ -180,37 +156,13 @@
"sum" : 0 "sum" : 0
}, },
"bytes" : { "bytes" : {
"avg" : "37.000000", "value" : 37
"cnt" : "1.000000",
"max" : "37.000000",
"median" : "37.000000",
"min" : "37.000000",
"pct" : "0.33",
"pct_95" : "37.000000",
"stddev" : 0,
"sum" : "37.000000"
}, },
"host" : { "host" : {
"avg" : 0, "value" : "127.0.0.1"
"cnt" : 1,
"max" : "127.0.0.1",
"median" : 0,
"min" : "127.0.0.1",
"pct" : 0.333333333333333,
"pct_95" : 0,
"stddev" : 0,
"sum" : null
}, },
"pos_in_log" : { "pos_in_log" : {
"avg" : "1106.000000", "value" : 1106
"cnt" : "1.000000",
"max" : "1106.000000",
"median" : "1106.000000",
"min" : "1106.000000",
"pct" : "0.33",
"pct_95" : "1106.000000",
"stddev" : 0,
"sum" : "1106.000000"
} }
}, },
"class" : { "class" : {
@@ -280,37 +232,13 @@
"sum" : 0 "sum" : 0
}, },
"bytes" : { "bytes" : {
"avg" : "27.000000", "value" : 27
"cnt" : "1.000000",
"max" : "27.000000",
"median" : "27.000000",
"min" : "27.000000",
"pct" : "0.33",
"pct_95" : "27.000000",
"stddev" : 0,
"sum" : "27.000000"
}, },
"host" : { "host" : {
"avg" : 0, "value" : "127.0.0.1"
"cnt" : 1,
"max" : "127.0.0.1",
"median" : 0,
"min" : "127.0.0.1",
"pct" : 0.333333333333333,
"pct_95" : 0,
"stddev" : 0,
"sum" : null
}, },
"pos_in_log" : { "pos_in_log" : {
"avg" : "1850.000000", "value" : 1850
"cnt" : "1.000000",
"max" : "1850.000000",
"median" : "1850.000000",
"min" : "1850.000000",
"pct" : "0.33",
"pct_95" : "1850.000000",
"stddev" : 0,
"sum" : "1850.000000"
} }
}, },
"class" : { "class" : {