Tim Landscheidt has uploaded a new change for review. https://gerrit.wikimedia.org/r/64511
Change subject: Add Ganglia statistics to grid engine. ...................................................................... Add Ganglia statistics to grid engine. Statistics for the grid jobs in pending, running and error state are forwarded every minute to Ganglia via gmetric under the "SGE" grouping. Bug: 48338 Change-Id: I48a65620d2fa5ee0fa3d147f9157af60c44c31c3 --- A modules/gridengine/files/grid-ganglia-report M modules/gridengine/manifests/master.pp 2 files changed, 56 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/11/64511/1 diff --git a/modules/gridengine/files/grid-ganglia-report b/modules/gridengine/files/grid-ganglia-report new file mode 100755 index 0000000..86b54c1 --- /dev/null +++ b/modules/gridengine/files/grid-ganglia-report @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w + +use encoding 'utf8'; +use strict; +use warnings; + +use XML::LibXML; + +# Read qstat information into XML DOM. +open (QSTAT, '-|', '/usr/bin/qstat', '-u', '*', '-xml') or die ("Couldn't read qstat"); +my $DOM = XML::LibXML->load_xml (IO => *QSTAT) or die ($!); +close (QSTAT); + +# Initialize counters. +my %Counters = ('sge_pending' => 0, + 'sge_running' => 0, + 'sge_error' => 0); + +# Iterate over all jobs. +foreach my $Node ($DOM->findnodes (q!//job_list/state!)) { + my $State = $Node->textContent (); + if ($State =~ /^qw/) { + $Counters {'sge_pending'}++; + } elsif ($State =~ /[rRt]/) { + $Counters {'sge_running'}++; + } elsif ($State =~ /E/) { + $Counters {'sge_error'}++; + } +} + +# Update Ganglia. +for my $Name (keys (%Counters)) { + system ('/usr/bin/gmetric', '--group', 'SGE', '--name', $Name, '--value', $Counters {$Name}, '--type', 'uint16') and die ($!); +} diff --git a/modules/gridengine/manifests/master.pp b/modules/gridengine/manifests/master.pp index eb7cd12..e31e491 100644 --- a/modules/gridengine/manifests/master.pp +++ b/modules/gridengine/manifests/master.pp @@ -1,12 +1,28 @@ -# gridengine.pp - +# gridengine/master.pp class gridengine::master { - class { 'gridengine': - gridmaster => $fqdn, - } + class { 'gridengine': + gridmaster => $fqdn, + } package { "gridengine-master": - ensure => latest, + ensure => latest, } + + class monitoring { + file { "/usr/local/sbin/grid-ganglia-report": + mode => 0555, + source => "puppet:///files/gridengine/grid-ganglia-report", + ensure => present; + } + + cron { "grid-ganglia-report": + command => "/usr/local/sbin/grid-ganglia-report", + user => root, + ensure => present, + require => File["/usr/local/sbin/grid-ganglia-report"]; + } + } + + include monitoring } -- To view, visit https://gerrit.wikimedia.org/r/64511 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I48a65620d2fa5ee0fa3d147f9157af60c44c31c3 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Tim Landscheidt <t...@tim-landscheidt.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits