add tracking::mining-prct
This commit is contained in:
parent
8434d52901
commit
78e7a839e0
|
@ -25,6 +25,7 @@ use base qw(centreon::plugins::templates::counter);
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use bigint;
|
use bigint;
|
||||||
|
use Math::BigFloat;
|
||||||
use Digest::MD5 qw(md5_hex);
|
use Digest::MD5 qw(md5_hex);
|
||||||
|
|
||||||
sub set_counters {
|
sub set_counters {
|
||||||
|
@ -57,6 +58,18 @@ sub set_counters {
|
||||||
{ template => '%.2f', label_extra_instance => 1, instance_use => 'display' }
|
{ template => '%.2f', label_extra_instance => 1, instance_use => 'display' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{ label => 'mining-prct', nlabel => 'parity.tracking.mined.block.prct', display_ok => 0, set => {
|
||||||
|
key_values => [],
|
||||||
|
manual_keys => 1,
|
||||||
|
closure_custom_calc => $self->can('custom_mining_prct_calc'),
|
||||||
|
closure_custom_output => $self->can('custom_mining_prct_output'),
|
||||||
|
threshold_use => 'mining_prct',
|
||||||
|
perfdatas => [
|
||||||
|
{ value => 'mining_prct', template => '%.2f', unit => '%',
|
||||||
|
min => 0, label_extra_instance => 1, instance_use => 'display' }
|
||||||
|
],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -64,8 +77,8 @@ sub set_counters {
|
||||||
{ label => 'balance-fluctuation-prct', nlabel => 'parity.tracking.balances.fluctuation', display_ok => 0, set => {
|
{ label => 'balance-fluctuation-prct', nlabel => 'parity.tracking.balances.fluctuation', display_ok => 0, set => {
|
||||||
key_values => [],
|
key_values => [],
|
||||||
manual_keys => 1,
|
manual_keys => 1,
|
||||||
closure_custom_calc => $self->can('custom_prct_calc'),
|
closure_custom_calc => $self->can('custom_balance_prct_calc'),
|
||||||
closure_custom_output => $self->can('custom_balance_output'),
|
closure_custom_output => $self->can('custom_balance_prct_output'),
|
||||||
threshold_use => 'balance_fluctuation_prct',
|
threshold_use => 'balance_fluctuation_prct',
|
||||||
perfdatas => [
|
perfdatas => [
|
||||||
{ value => 'balance_fluctuation_prct', template => '%.2f', unit => '%',
|
{ value => 'balance_fluctuation_prct', template => '%.2f', unit => '%',
|
||||||
|
@ -94,7 +107,31 @@ sub prefix_output_mining {
|
||||||
return "Miner '" . $options{instance_value}->{display} . "' ";
|
return "Miner '" . $options{instance_value}->{display} . "' ";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_balance_output {
|
sub custom_mining_prct_output {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return sprintf(
|
||||||
|
"Mined: %d blocks, witch corresponds to %.2f %% of total validated block",
|
||||||
|
$self->{result_values}->{mined_block_count},
|
||||||
|
$self->{result_values}->{mining_prct}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub custom_mining_prct_calc {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||||
|
$self->{result_values}->{mined_block_count} = Math::BigFloat->new($options{new_datas}->{$self->{instance} . '_mined_block_count'});
|
||||||
|
$self->{result_values}->{total_block} = Math::BigFloat->new($options{new_datas}->{$self->{instance} . '_total_block'});
|
||||||
|
$self->{result_values}->{mining_prct} = (defined($self->{result_values}->{total_block}) && $self->{result_values}->{total_block} != 0) ?
|
||||||
|
$self->{result_values}->{mined_block_count} / $self->{result_values}->{total_block} * 100 : 0;
|
||||||
|
use Data::Dumper;
|
||||||
|
print Dumper($self->{result_values}->{mined_block_count});
|
||||||
|
print Dumper($self->{result_values}->{total_block});
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub custom_balance_prct_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return sprintf(
|
return sprintf(
|
||||||
|
@ -104,12 +141,12 @@ sub custom_balance_output {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_prct_calc {
|
sub custom_balance_prct_calc {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||||
$self->{result_values}->{balance} = $options{new_datas}->{$self->{instance} . '_balance'};
|
$self->{result_values}->{balance} = Math::BigFloat->new($options{new_datas}->{$self->{instance} . '_balance'});
|
||||||
$self->{result_values}->{balance_old} = $options{old_datas}->{$self->{instance} . '_balance'};
|
$self->{result_values}->{balance_old} = Math::BigFloat->new($options{old_datas}->{$self->{instance} . '_balance'});
|
||||||
$self->{result_values}->{balance_fluctuation_prct} = (defined($self->{result_values}->{balance_old}) && $self->{result_values}->{balance_old} != 0) ?
|
$self->{result_values}->{balance_fluctuation_prct} = (defined($self->{result_values}->{balance_old}) && $self->{result_values}->{balance_old} != 0) ?
|
||||||
($self->{result_values}->{balance} - $self->{result_values}->{balance_old}) /
|
($self->{result_values}->{balance} - $self->{result_values}->{balance_old}) /
|
||||||
$self->{result_values}->{balance_old} * 100 : 0;
|
$self->{result_values}->{balance_old} * 100 : 0;
|
||||||
|
@ -205,7 +242,9 @@ sub manage_selection {
|
||||||
mining_count => $miner->{count},
|
mining_count => $miner->{count},
|
||||||
last_mining => $miner->{count},
|
last_mining => $miner->{count},
|
||||||
last_mining_block => $miner->{block},
|
last_mining_block => $miner->{block},
|
||||||
last_mining_ts => $last_mining_timestamp
|
last_mining_ts => $last_mining_timestamp,
|
||||||
|
total_block => $miner->{currentBlock},
|
||||||
|
mined_block_count => $miner->{count}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ sub set_counters {
|
||||||
},
|
},
|
||||||
{ label => 'block-usage', nlabel => 'parity.eth.block.usage', set => {
|
{ label => 'block-usage', nlabel => 'parity.eth.block.usage', set => {
|
||||||
key_values => [ { name => 'block_usage' } ],
|
key_values => [ { name => 'block_usage' } ],
|
||||||
output_template => "Block usage: %d %%",
|
output_template => "Block usage: %.2f %%",
|
||||||
perfdatas => [
|
perfdatas => [
|
||||||
{ label => 'block_usage', value => 'block_usage', template => '%.2f', unit => '%', min => 0 }
|
{ label => 'block_usage', value => 'block_usage', template => '%.2f', unit => '%', min => 0 }
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in New Issue