- Repository
 - Munin (contrib)
 - Last change
 - 2018-08-02
 - Graph Categories
 - Keywords
 - Language
 - Perl
 - License
 - GPL-3.0-only
 - Authors
 
joomla-sessions
Name
joomla-sessions - Munin plugin for different stats over a Joomla MySQL database
Configuration
env.mysql
Optional, path to the MySQL binary. Defaults to
/usr/bin/mysql.env.mysqlopts
Optional, command line options for “mysql”. May be used to set username and password. No default value.
env.database
Optional, name of the joomla database name. Defaults to
mydatabase.
Configuration Example
[joomla_sessions*]
  env.mysql /usr/bin/mysql                               # MySQL binary (optional)
  env.mysqlopts -u <MYSQL_USERNAME> -p<MYSQL_PASSWORD>   # How to connect to the database (optional if no password is set)
  env.database databasename                              # Joomla database (optional)
Authors
Copyright (C) 2011 - Csaba Martha (http://www.zenebuzi.com)
Based on Rowdy Schwachfer (http://rowdy.nl) ’s Spotweb plugin
License
GPLv3 or later
#!/usr/bin/perl
=head1 NAME
joomla-sessions - Munin plugin for different stats over a Joomla MySQL
database
=head1 CONFIGURATION
=over
=item env.mysql
Optional, path to the MySQL binary.  Defaults to C</usr/bin/mysql>.
=item env.mysqlopts
Optional, command line options for "mysql". May be used to set
username and password.  No default value.
=item env.database
Optional, name of the joomla database name.  Defaults to C<mydatabase>.
=back
=head2 Configuration example
  [joomla_sessions*]
    env.mysql /usr/bin/mysql                               # MySQL binary (optional)
    env.mysqlopts -u <MYSQL_USERNAME> -p<MYSQL_PASSWORD>   # How to connect to the database (optional if no password is set)
    env.database databasename                              # Joomla database (optional)
=head1 AUTHORS
Copyright (C) 2011 - Csaba Martha (http://www.zenebuzi.com)
Based on Rowdy Schwachfer (http://rowdy.nl) 's Spotweb plugin
=head1 LICENSE
GPLv3 or later
=cut
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
use strict;
my $MYSQL = $ENV{mysql} || "/usr/bin/mysql";
my $MYSQLOPTS = $ENV{mysqlopts} || "";
my $DATABASE = $ENV{database} || "mydatabase";
# Output for config
if(defined $ARGV[0] && $ARGV[0] eq 'config') {
    print <<EOC
graph_title Joomla Actual User Sessions (Totals)
graph_vlabel Session Number
graph_category cms
anonsessions.label Anonym Sessions
graph_scale no
all.warning 10000
all.critical 15000
EOC
;
    print <<EOC
all.label All
EOC
;
    print <<EOC
registered.label Registered
EOC
;
        exit 0;
}
#Anonym Session count
my $anonsessions = `$MYSQL $MYSQLOPTS -e 'SELECT COUNT( session_id ) FROM $DATABASE.jos_session WHERE usertype = "''"'`;
$anonsessions =~ /(\d+)/;
print "anonsessions.value ".$1."\n";
#Registered count
my $registered = `$MYSQL $MYSQLOPTS -e 'SELECT COUNT(usertype) FROM $DATABASE.jos_session WHERE usertype = "'Registered'"'`;
$registered =~/(\d+)/;
print "registered.value ".$1."\n";
#All count
my $all = `$MYSQL $MYSQLOPTS -e 'SELECT COUNT(usertype) FROM $DATABASE.jos_session'`;
$all =~/(\d+)/;
print "all.value ".$1."\n";