mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 02:51:03 +00:00
- have some dirs
This commit is contained in:
parent
0b089ea777
commit
08346aac58
687 changed files with 0 additions and 0 deletions
109
plugins/hadoop/hadoop-dfs-plugin
Executable file
109
plugins/hadoop/hadoop-dfs-plugin
Executable file
|
@ -0,0 +1,109 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
#
|
||||
# Description:
|
||||
# This plugin shows basic filesystem information and statistics about the HDFS
|
||||
# filesystem.
|
||||
#
|
||||
# Installation notes:
|
||||
# Symlink this file to hadoop_hdfs_block or hadoop_hdfs_capacity to get block
|
||||
# or capacity informations about the DFS.
|
||||
#
|
||||
# Author: KARASZI Istvan <muninexchange@spam.raszi.hu>
|
||||
#
|
||||
|
||||
use strict;
|
||||
use File::Basename qw(basename);
|
||||
|
||||
my $type = &getType($0);
|
||||
|
||||
#
|
||||
# main
|
||||
#
|
||||
if ($ARGV[0]) {
|
||||
if ($ARGV[0] eq "autoconf") {
|
||||
print "yes\n";
|
||||
} elsif ($ARGV[0] eq "config") {
|
||||
&printConfig();
|
||||
} else {
|
||||
exit(1);
|
||||
}
|
||||
} else {
|
||||
&getStatistics();
|
||||
}
|
||||
|
||||
#
|
||||
# methods
|
||||
#
|
||||
sub getType {
|
||||
my($command) = @_;
|
||||
|
||||
my $scriptname = &File::Basename::basename($command);
|
||||
if ($scriptname =~ /_([^_]+)$/) {
|
||||
if (grep($1, ('block', 'capacity'))) {
|
||||
return $1;
|
||||
}
|
||||
}
|
||||
|
||||
die("Invalid command type '$scriptname'");
|
||||
}
|
||||
|
||||
sub printConfig {
|
||||
if ($type eq "block") {
|
||||
print <<EOT;
|
||||
graph_title DFS Statistics
|
||||
graph_category hadoop
|
||||
graph_vlabel count
|
||||
block.label Under replicated blocks
|
||||
corrupt.label Blocks with corrupt replicas
|
||||
missing.label Missing blocks
|
||||
EOT
|
||||
} elsif ($type eq "capacity") {
|
||||
print <<EOT;
|
||||
graph_title DFS Capacity
|
||||
graph_category hadoop
|
||||
graph_vlabel capacity
|
||||
configured.label Configured
|
||||
present.label Present
|
||||
remaining.label DFS Remaining
|
||||
EOT
|
||||
}
|
||||
}
|
||||
|
||||
sub getBlock {
|
||||
my($line) = @_;
|
||||
|
||||
if ($line =~ /^Under replicated blocks: (\d+)/) {
|
||||
printf("block.value %d\n", $1);
|
||||
} elsif ($line =~ /^Blocks with corrupt replicas: (\d+)/) {
|
||||
printf("corrupt.value %d\n", $1);
|
||||
} elsif ($line =~ /^Missing blocks: (\d+)/) {
|
||||
printf("missing.value %d\n", $1);
|
||||
}
|
||||
}
|
||||
|
||||
sub getCapacity {
|
||||
my($line) = @_;
|
||||
|
||||
if ($line =~ /^Configured Capacity: (\d+)/) {
|
||||
printf("configured.value %d\n", $1);
|
||||
} elsif ($line =~ /^Present Capacity: (\d+)/) {
|
||||
printf("present.value %d\n", $1);
|
||||
} elsif ($line =~ /^DFS Remaining: (\d+)/) {
|
||||
printf("remaining.value %d\n", $1);
|
||||
}
|
||||
}
|
||||
|
||||
sub getStatistics {
|
||||
open(DFSADMIN, "hadoop dfsadmin -report|") || die("Cannot open dfsadmin: $!");
|
||||
while(defined(my $line = <DFSADMIN>)) {
|
||||
chomp($line);
|
||||
|
||||
if ($type eq "block") {
|
||||
&getBlock($line);
|
||||
} elsif ($type eq "capacity") {
|
||||
&getCapacity($line);
|
||||
}
|
||||
}
|
||||
close(DFSADMIN)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue