fix memory firebird
This commit is contained in:
parent
82afc1a187
commit
53bb250d5b
|
@ -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_value . ' ' . $total_unit,
|
"Total: %s Used : %s (%.2f %%) Free : %s (%.2f %%)",
|
||||||
$used_value . ' ' . $used_unit, $self->{result_values}->{prct},
|
$total_value . ' ' . $total_unit,
|
||||||
$free_value . ' ' . $free_unit, 100 - $self->{result_values}->{prct});
|
$used_value . ' ' . $used_unit, $self->{result_values}->{prct},
|
||||||
return $msg;
|
$free_value . ' ' . $free_unit, 100 - $self->{result_values}->{prct}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
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(
|
||||||
ucfirst($self->{result_values}->{label}),
|
"%s : %s (%.2f %%)",
|
||||||
$used_value . ' ' . $used_unit, $self->{result_values}->{prct});
|
ucfirst($self->{result_values}->{label}),
|
||||||
return $msg;
|
$used_value . ' ' . $used_unit, $self->{result_values}->{prct}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_unit_calc {
|
sub custom_unit_calc {
|
||||||
|
@ -164,15 +166,15 @@ sub manage_selection {
|
||||||
$options{sql}->query(query => q{SELECT MON$STAT_GROUP as MYGROUP, MON$MEMORY_ALLOCATED AS MYTOTAL, MON$MEMORY_USED AS MYUSED FROM MON$MEMORY_USAGE});
|
$options{sql}->query(query => q{SELECT MON$STAT_GROUP as MYGROUP, MON$MEMORY_ALLOCATED AS MYTOTAL, MON$MEMORY_USED AS MYUSED FROM MON$MEMORY_USAGE});
|
||||||
|
|
||||||
my %map_group = (0 => 'database', 1 => 'attachment', 2 => 'transaction', 3 => 'statement', 4 => 'call');
|
my %map_group = (0 => 'database', 1 => 'attachment', 2 => 'transaction', 3 => 'statement', 4 => 'call');
|
||||||
|
|
||||||
$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};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue