Files
@ 936c0230f178
Branch filter:
Location: libtransport.git/munin/spectrum2_ - annotation
936c0230f178
3.6 KiB
text/plain
spectrum2_manager target has to depend on pb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b e71c01ded8f1 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 9c212b8b065b e71c01ded8f1 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b 9c212b8b065b e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 e71c01ded8f1 9c212b8b065b 9c212b8b065b | #!/usr/bin/perl
# config:
# [spectrum2_*]
# env.admin_jid tradmin@host.org
# env.password jid_password
# env.transports icq.host.org xmpp.host.org
#
# symlinks:
# spectrum2_backends spectrum2_memory spectrum2_users spectrum2_messages spectrum2_messages_sec
#
#
use AnyEvent;
use AnyEvent::XMPP::Client;
use AnyEvent::XMPP::Component;
use AnyEvent::XMPP::Ext::Disco;
use AnyEvent::XMPP::Ext::Version;
use AnyEvent::XMPP::Namespaces qw/xmpp_ns/;
use AnyEvent::XMPP::Util qw/simxml/;
use XML::Simple;
use Time::HiRes qw ( setitimer ITIMER_REAL time );
use strict;
$|=1;
$SIG{ALRM} = sub { exit; };
setitimer(ITIMER_REAL, 30, 1);
my %config=(
users => {
title=>'Buddies online',
vlabel=>'users',
info=>'Number of users that currently use the spectrum transports.',
command=>'online_users_count',
base=>'--base 1000',
x=>'1',
},
backends => {
title=>'Backends running',
vlabel=>'backends',
info=>'Number of backends that currently running.',
command=>'backends_count',
base=>'--base 1000',
x=>'1',
},
memory => {
title=>'Memory usage of transports',
vlabel=>'megabytes',
info=>'Memory usage of spectrum transports.',
command=>'used_memory',
base=>'--base 1024',
x=>'1024',
},
messages => {
title=>'Messages send over transport',
vlabel=>'messages',
info=>'Messages send over spectrum transports.',
command=>'',
base=>'--base 1000',
x=>'1',
},
messages_sec => {
title=>'Messages send over transport',
vlabel=>'messages/sec',
info=>'Messages send per second over spectrum transports.',
command=>'',
base=>'--base 1000',
x=>'1',
},
);
my @queue=('_out','_in');
$0 =~ /spectrum2_(.+)*$/;
my $func = $1;
exit 2 unless defined $func;
my %tr;
my $count=0;
foreach (split(' ',$ENV{'transports'})){
if ($func=~/messages/)
{
$tr{$_."_in"}=$count;
$count++;
$tr{$_."_out"}=$count;
$count++;
}
else
{
$tr{$_}=$count;
$count++;
}
}
if (exists $ARGV[0] and $ARGV[0] eq "config")
{
print "graph_title ".$config{$func}->{'title'}."\n";
print "graph_vlabel ".$config{$func}->{'vlabel'}."\n";
print "graph_category spectrum2\n";
foreach (keys (%tr)){
print "r".$tr{$_}.".label ".$_."\n";
if ($func eq 'messages_sec')
{
print "r".$tr{$_}.".type DERIVE\n";
print "r".$tr{$_}.".min 0\n";
}
}
print "graph_args ".$config{$func}->{'base'}."\n";
print "graph_info ".$config{$func}->{'info'}."\n";
exit 0;
}
binmode( STDOUT);
my $xs=new XML::Simple;
my $cl=AnyEvent::XMPP::Client->new(debug=>0);
my $j=AnyEvent->condvar;
$cl->add_account($ENV{'admin_jid'}.'/'.time,$ENV{'password'});
$cl->reg_cb(
session_ready => \&cl_sess,
disconnect => \&cl_disc,
message => \&cl_msg,
);
$cl->start;
$j->wait;
sub cl_disc
{
my ($cl,$acc,$h,$p,$reas)=@_;
print "disc ($h:$p) $reas\n";
}
sub cl_sess
{
my($cl,$acc)=@_;
foreach (keys (%tr)){
if ($func=~/messages/)
{
if (s/_in$//)
{
$cl->send_message("messages_from_xmpp",$_,undef,'chat');
};
if (s/_out$//)
{
$cl->send_message("messages_to_xmpp",$_,undef,'chat');
}
}
else
{
$cl->send_message($config{$func}->{'command'},$_,undef,'chat');
}
}
}
sub cl_msg
{
my ($cl,$acc,$msg)=@_;
if ($func=~/messages/)
{
print "r".$tr{$msg->from.$queue[-1]}.".value ".int($msg->any_body/$config{$func}->{'x'})."\n";
delete( $tr{$msg->from.$queue[-1]});
pop(@queue);
if ($#queue==-1){@queue=("_out","_in");}
}
else
{
print "r".$tr{$msg->from}.".value ".int($msg->any_body/$config{$func}->{'x'})."\n";
delete( $tr{$msg->from});
}
exit if (scalar(keys %tr)==0);
}
|