mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-21 18:41:03 +00:00
Category Tree: Reduce number of categories
gunicorn -> appserver (gunicorn) websphere -> appserver (websphere) hadoop -> fs (hdfs)
This commit is contained in:
parent
e08a6448ce
commit
7cd10950aa
8 changed files with 6 additions and 6 deletions
121
plugins/hdfs/hadoop-dfs-plugin
Executable file
121
plugins/hdfs/hadoop-dfs-plugin
Executable file
|
@ -0,0 +1,121 @@
|
|||
#!/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.
|
||||
#
|
||||
#
|
||||
# Needs following minimal configuration in plugin-conf.d/munin-node:
|
||||
# [hadoop_hdfs_block]
|
||||
# user hdfs
|
||||
#
|
||||
# [hadoop_hdfs_capacity]
|
||||
# user hdfs
|
||||
#
|
||||
# Author: KARASZI Istvan <muninexchange@spam.raszi.hu>
|
||||
#
|
||||
|
||||
use strict;
|
||||
use File::Basename qw(basename);
|
||||
use Munin::Plugin;
|
||||
|
||||
|
||||
#
|
||||
# main
|
||||
#
|
||||
my $type = &getType($0);
|
||||
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 fs
|
||||
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 fs
|
||||
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, "hdfs dfsadmin -report|") || die("Cannot open dfsadmin: $!");
|
||||
while(defined(my $line = <DFSADMIN>)) {
|
||||
chomp($line);
|
||||
if ($line =~ /-------------------------------------------------/) {
|
||||
last
|
||||
}
|
||||
|
||||
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