mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-07-29 16:45:04 +02:00
add option add-unlimited-disk (#2457)
This commit is contained in:
parent
c1515a3822
commit
8f6c301ed5
@ -237,6 +237,7 @@ sub new {
|
|||||||
'logfiles-maxsize:s' => { name => 'logfiles_maxsize' },
|
'logfiles-maxsize:s' => { name => 'logfiles_maxsize' },
|
||||||
'datafiles-maxsize-unlimited:s' => { name => 'datafiles_maxsize_unlimited' },
|
'datafiles-maxsize-unlimited:s' => { name => 'datafiles_maxsize_unlimited' },
|
||||||
'logfiles-maxsize-unlimited:s' => { name => 'logfiles_maxsize_unlimited' },
|
'logfiles-maxsize-unlimited:s' => { name => 'logfiles_maxsize_unlimited' },
|
||||||
|
'add-unlimited-disk' => { name => 'add_unlimited_disk' },
|
||||||
'ignore-unlimited' => { name => 'ignore_unlimited' }
|
'ignore-unlimited' => { name => 'ignore_unlimited' }
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -247,7 +248,14 @@ sub manage_selection {
|
|||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$options{sql}->connect();
|
$options{sql}->connect();
|
||||||
$options{sql}->query(query => q{
|
|
||||||
|
my ($extra_fields, $join) = ('', '');
|
||||||
|
if (defined($self->{option_results}->{add_unlimited_disk})) {
|
||||||
|
$extra_fields = ', volume_mount_point, total_bytes, available_bytes';
|
||||||
|
$join = 'CROSS APPLY sys.dm_os_volume_stats(DB_ID(sys.database_files.name), sys.database_files.file_id)';
|
||||||
|
}
|
||||||
|
|
||||||
|
$options{sql}->query(query => qq{
|
||||||
EXEC sp_MSforeachdb 'USE ?
|
EXEC sp_MSforeachdb 'USE ?
|
||||||
SELECT
|
SELECT
|
||||||
DB_NAME(),
|
DB_NAME(),
|
||||||
@ -264,10 +272,14 @@ sub manage_selection {
|
|||||||
ELSE CAST(growth*8/1024 AS varchar(20)) + ''Mb''
|
ELSE CAST(growth*8/1024 AS varchar(20)) + ''Mb''
|
||||||
END,
|
END,
|
||||||
[max_size]
|
[max_size]
|
||||||
|
$extra_fields
|
||||||
FROM sys.database_files
|
FROM sys.database_files
|
||||||
|
$join
|
||||||
ORDER BY [File_Type], [file_id]'
|
ORDER BY [File_Type], [file_id]'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
my $unlimited_disk = {};
|
||||||
|
|
||||||
# limit can be: 'unlimited', 'overload', 'other'.
|
# limit can be: 'unlimited', 'overload', 'other'.
|
||||||
$self->{databases} = {};
|
$self->{databases} = {};
|
||||||
my $result;
|
my $result;
|
||||||
@ -303,14 +315,19 @@ sub manage_selection {
|
|||||||
|
|
||||||
$self->{databases}->{ $row->[0] }->{$row->[3] . 'files'}->{used_space} += ($row->[5] * 8 * 1024);
|
$self->{databases}->{ $row->[0] }->{$row->[3] . 'files'}->{used_space} += ($row->[5] * 8 * 1024);
|
||||||
|
|
||||||
my $size = $row->[4];
|
my $size = $row->[4] * 8 * 1024;
|
||||||
#max_size = -1 (=unlimited)
|
#max_size = -1 (=unlimited)
|
||||||
if ($row->[7] == -1) {
|
if ($row->[7] == -1) {
|
||||||
$self->{databases}->{ $row->[0] }->{$row->[3] . 'files'}->{limit} = 'unlimited';
|
$self->{databases}->{ $row->[0] }->{$row->[3] . 'files'}->{limit} = 'unlimited';
|
||||||
} elsif ($row->[7] > 0) {
|
if (defined($self->{option_results}->{add_unlimited_disk}) &&
|
||||||
$size = $row->[7];
|
!defined($unlimited_disk->{ $row->[0] . '_' . $row->[3] . 'files_' . $row->[8] })) {
|
||||||
|
$size += $row->[9];
|
||||||
|
$unlimited_disk->{ $row->[0] . '_' . $row->[3] . 'files_' . $row->[8] } = 1;
|
||||||
}
|
}
|
||||||
$self->{databases}->{ $row->[0] }->{$row->[3] . 'files'}->{total_space} += ($size * 8 * 1024);
|
} elsif ($row->[7] > 0) {
|
||||||
|
$size = $row->[7] * 8 * 1024;
|
||||||
|
}
|
||||||
|
$self->{databases}->{ $row->[0] }->{$row->[3] . 'files'}->{total_space} += $size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -367,6 +384,10 @@ Overload only unlimited autogrowth data files max size (in MB).
|
|||||||
|
|
||||||
Overload only unlimited autogrowth log files max size (in MB).
|
Overload only unlimited autogrowth log files max size (in MB).
|
||||||
|
|
||||||
|
=item B<--add-unlimited-disk>
|
||||||
|
|
||||||
|
Add available space on disks for unlimited autogrowth data and log files.
|
||||||
|
|
||||||
=item B<--ignore-unlimited>
|
=item B<--ignore-unlimited>
|
||||||
|
|
||||||
Thresholds not applied on unlimited autogrowth data and log files.
|
Thresholds not applied on unlimited autogrowth data and log files.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user