fix memory firebird

This commit is contained in:
garnier-quentin 2020-09-18 13:33:52 +02:00
parent 82afc1a187
commit 53bb250d5b
1 changed files with 25 additions and 23 deletions

View File

@ -38,39 +38,39 @@ sub set_counters {
closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'database' }, closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'database' },
closure_custom_output => $self->can('custom_used_output'), closure_custom_output => $self->can('custom_used_output'),
threshold_use => 'prct', threshold_use => 'prct',
closure_custom_perfdata => $self->can('custom_used_perfdata'), closure_custom_perfdata => $self->can('custom_used_perfdata')
} }
}, },
{ label => 'attachment', nlabel => 'attachment.usage.bytes', set => { { label => 'attachment', nlabel => 'attachment.usage.bytes', set => {
key_values => [ { name => 'attachment_used' }, { name => 'database_allocated' } ], key_values => [ { name => 'attachment_used' }, { name => 'attachment_allocated' } ],
closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'attachment' }, closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'attachment' },
closure_custom_output => $self->can('custom_unit_output'), closure_custom_output => $self->can('custom_unit_output'),
threshold_use => 'prct', threshold_use => 'prct',
closure_custom_perfdata => $self->can('custom_unit_perfdata'), closure_custom_perfdata => $self->can('custom_unit_perfdata')
} }
}, },
{ label => 'transaction', nlabel => 'transaction.usage.bytes', set => { { label => 'transaction', nlabel => 'transaction.usage.bytes', set => {
key_values => [ { name => 'transaction_used' }, { name => 'database_allocated' } ], key_values => [ { name => 'transaction_used' }, { name => 'transaction_allocated' } ],
closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'transaction' }, closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'transaction' },
closure_custom_output => $self->can('custom_unit_output'), closure_custom_output => $self->can('custom_unit_output'),
threshold_use => 'prct', threshold_use => 'prct',
closure_custom_perfdata => $self->can('custom_unit_perfdata'), closure_custom_perfdata => $self->can('custom_unit_perfdata')
} }
}, },
{ label => 'statement', nlabel => 'statement.usage.bytes', set => { { label => 'statement', nlabel => 'statement.usage.bytes', set => {
key_values => [ { name => 'statement_used' }, { name => 'database_allocated' } ], key_values => [ { name => 'statement_used' }, { name => 'statement_allocated' } ],
closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'statement' }, closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'statement' },
closure_custom_output => $self->can('custom_unit_output'), closure_custom_output => $self->can('custom_unit_output'),
threshold_use => 'prct', threshold_use => 'prct',
closure_custom_perfdata => $self->can('custom_unit_perfdata'), closure_custom_perfdata => $self->can('custom_unit_perfdata')
} }
}, },
{ label => 'call', nlabel => 'call.usage.bytes', set => { { label => 'call', nlabel => 'call.usage.bytes', set => {
key_values => [ { name => 'call_used' }, { name => 'database_allocated' } ], key_values => [ { name => 'call_used' }, { name => 'call_allocated' } ],
closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'call' }, closure_custom_calc => $self->can('custom_unit_calc'), closure_custom_calc_extra_options => { label_ref => 'call' },
closure_custom_output => $self->can('custom_unit_output'), closure_custom_output => $self->can('custom_unit_output'),
threshold_use => 'prct', threshold_use => 'prct',
closure_custom_perfdata => $self->can('custom_unit_perfdata'), closure_custom_perfdata => $self->can('custom_unit_perfdata')
} }
}, },
]; ];
@ -83,11 +83,12 @@ sub custom_used_output {
my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total});
my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used});
my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $free); my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $free);
my $msg = sprintf("Total: %s Used : %s (%.2f %%) Free : %s (%.2f %%)", return sprintf(
"Total: %s Used : %s (%.2f %%) Free : %s (%.2f %%)",
$total_value . ' ' . $total_unit, $total_value . ' ' . $total_unit,
$used_value . ' ' . $used_unit, $self->{result_values}->{prct}, $used_value . ' ' . $used_unit, $self->{result_values}->{prct},
$free_value . ' ' . $free_unit, 100 - $self->{result_values}->{prct}); $free_value . ' ' . $free_unit, 100 - $self->{result_values}->{prct}
return $msg; );
} }
sub custom_used_perfdata { sub custom_used_perfdata {
@ -120,10 +121,11 @@ sub custom_unit_output {
my ($self, %options) = @_; my ($self, %options) = @_;
my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used});
my $msg = sprintf("%s : %s (%.2f %%)", return sprintf(
"%s : %s (%.2f %%)",
ucfirst($self->{result_values}->{label}), ucfirst($self->{result_values}->{label}),
$used_value . ' ' . $used_unit, $self->{result_values}->{prct}); $used_value . ' ' . $used_unit, $self->{result_values}->{prct}
return $msg; );
} }
sub custom_unit_calc { sub custom_unit_calc {
@ -168,11 +170,11 @@ sub manage_selection {
$self->{global} = {}; $self->{global} = {};
while ((my $row = $options{sql}->fetchrow_hashref())) { while ((my $row = $options{sql}->fetchrow_hashref())) {
if (!defined($self->{firebird}->{$map_group{$row->{MYGROUP}} . '_used'})) { if (!defined($self->{firebird}->{$map_group{$row->{MYGROUP}} . '_used'})) {
$self->{global}->{$map_group{$row->{MYGROUP}} . '_used'} = 0; $self->{global}->{$map_group{ $row->{MYGROUP} } . '_used'} = 0;
$self->{global}->{$map_group{$row->{MYGROUP}} . '_allocated'} = 0; $self->{global}->{$map_group{ $row->{MYGROUP} } . '_allocated'} = 0;
} }
$self->{global}->{$map_group{$row->{MYGROUP}} . '_used'} += $row->{MYUSED}; $self->{global}->{$map_group{ $row->{MYGROUP} } . '_used'} += $row->{MYUSED};
$self->{global}->{$map_group{$row->{MYGROUP}} . '_allocated'} += $row->{MYTOTAL}; $self->{global}->{$map_group{ $row->{MYGROUP} } . '_allocated'} += $row->{MYTOTAL};
} }
} }