Browse Source

Merge pull request #57 from 2600hz/nodes-patch

adjust nodes timers, log, publish
drop_requests
bitbashing 8 years ago
committed by GitHub
parent
commit
54c542518b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 12 deletions
  1. +18
    -12
      kamailio/nodes-role.cfg

+ 18
- 12
kamailio/nodes-role.cfg View File

@ -8,18 +8,20 @@
#!define NODES_FUDGE_FACTOR 10 #!define NODES_FUDGE_FACTOR 10
#!endif #!endif
modparam("htable", "htable", "nodes=>size=8;initval=0;autoexpire=180;");
modparam("htable", "htable", "media=>size=8;initval=0;autoexpire=180;");
modparam("htable", "htable", "nodes=>size=8;initval=0;autoexpire=60");
modparam("htable", "htable", "media=>size=8;initval=0;autoexpire=60");
####### RTIMER module ########## ####### RTIMER module ##########
#!ifndef RTIMER_LOADED #!ifndef RTIMER_LOADED
loadmodule "rtimer.so" loadmodule "rtimer.so"
#!trydef RTIMER_LOADED #!trydef RTIMER_LOADED
#!endif #!endif
modparam("rtimer", "timer", "name=ta;interval=5;mode=2;")
modparam("rtimer", "exec", "timer=ta;route=NODES_ADVERTISE_ROUTE")
modparam("rtimer", "exec", "timer=ta;route=NODE_TRACK_ROUTE")
modparam("rtimer", "timer", "name=ta;interval=2;mode=2;")
modparam("rtimer", "timer", "name=retry;interval=5;mode=2;")
modparam("rtimer", "timer", "name=pub;interval=10;mode=1;")
modparam("rtimer", "exec", "timer=ta;route=NODE_HEARTBEAT_ROUTE") modparam("rtimer", "exec", "timer=ta;route=NODE_HEARTBEAT_ROUTE")
modparam("rtimer", "exec", "timer=retry;route=NODE_TRACK_ROUTE")
modparam("rtimer", "exec", "timer=pub;route=NODES_ADVERTISE_ROUTE")
modparam("mqueue","mqueue", "name=node_track") modparam("mqueue","mqueue", "name=node_track")
@ -59,7 +61,7 @@ route(LISTENER_STATUS);
#!endif #!endif
$var(Roles) = $_s("Roles" : {"Proxy" : $var(listeners) $var(Dispatcher) $var(Presence) $var(Registrar)}); $var(Roles) = $_s("Roles" : {"Proxy" : $var(listeners) $var(Dispatcher) $var(Presence) $var(Registrar)});
$var(Payload) = '{"Event-Category" : "nodes", "Event-Name" : "advertise", "Expires" : 5000, "Used-Memory" : $(stat(real_used_size){s.int}), "Startup" : $Tb, "WhApps" : {"kamailio" : {"Startup" : $Tb }}, $var(Roles)}';
$var(Payload) = '{"Event-Category" : "nodes", "Event-Name" : "advertise", "Expires" : 15000, "Used-Memory" : $(stat(real_used_size){s.int}), "Startup" : $Tb, "WhApps" : {"kamailio" : {"Startup" : $Tb }}, $var(Roles)}';
kazoo_publish("nodes", "", $var(Payload)); kazoo_publish("nodes", "", $var(Payload));
} }
@ -68,11 +70,13 @@ event_route[kazoo:consumer-event-nodes-advertise]
{ {
$var(count) = $shtinc(nodes=>$(kzE{kz.json,Node})::count); $var(count) = $shtinc(nodes=>$(kzE{kz.json,Node})::count);
if($var(count) == 0) { if($var(count) == 0) {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|nodes|hearbeat for reconnected node $(kzE{kz.json,Node})\n");
xlog("L_WARNING", "$(kzE{kz.json,Msg-ID})|nodes|hearbeat for reconnected node $(kzE{kz.json,Node})\n");
$var(count) = $shtinc(nodes=>$(kzE{kz.json,Node})::count); $var(count) = $shtinc(nodes=>$(kzE{kz.json,Node})::count);
} else { } else {
if($var(count) == 1) { if($var(count) == 1) {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|nodes|hearbeat from new node $(kzE{kz.json,Node})\n");
xlog("L_WARNING", "$(kzE{kz.json,Msg-ID})|nodes|hearbeat from new node $(kzE{kz.json,Node})\n");
} else {
xlog("L_DEBUG", "$(kzE{kz.json,Msg-ID})|nodes|hearbeat from existing node $(kzE{kz.json,Node})\n");
} }
} }
mq_add("node_heartbeat", "$(kzE{kz.json,Node})", "$kzE"); mq_add("node_heartbeat", "$(kzE{kz.json,Node})", "$kzE");
@ -82,13 +86,13 @@ event_route[htable:expired:nodes]
{ {
if($shtrecord(key) =~ "::count$$") { if($shtrecord(key) =~ "::count$$") {
if($shtrecord(value) == -1) { if($shtrecord(value) == -1) {
xlog("L_INFO", "htable|nodes|node $(shtrecord(key){s.rm,::count}) is still unreachable\n");
xlog("L_WARNING", "htable|nodes|node $(shtrecord(key){s.rm,::count}) is still unreachable\n");
} }
mq_add("node_track", "$shtrecord(key)", ""); mq_add("node_track", "$shtrecord(key)", "");
return; return;
} }
xlog("L_INFO", "htable|nodes|hearbeat expired for node $shtrecord(key)\n");
xlog("L_WARNING", "htable|nodes|hearbeat expired for node $shtrecord(key)\n");
} }
route[NODE_TRACK_ROUTE] route[NODE_TRACK_ROUTE]
@ -108,6 +112,7 @@ route[NODE_HEARTBEAT_ROUTE]
while(mq_fetch("node_heartbeat") == 1 && $var(runloop) < MAX_WHILE_LOOPS) { while(mq_fetch("node_heartbeat") == 1 && $var(runloop) < MAX_WHILE_LOOPS) {
$var(Node) = $mqk(node_heartbeat); $var(Node) = $mqk(node_heartbeat);
$var(Payload) = $mqv(node_heartbeat); $var(Payload) = $mqv(node_heartbeat);
xlog("L_DEBUG", "$(var(Payload){kz.json,Msg-ID})|nodes|processing hearbeat for node $var(Node)\n");
route(CHECK_MEDIA_SERVERS); route(CHECK_MEDIA_SERVERS);
@ -149,6 +154,7 @@ route[CHECK_MEDIA_SERVERS]
route(MEDIA_SERVER_UP); route(MEDIA_SERVER_UP);
}; };
$var(MediaExpire) = ($(var(Payload){kz.json,Expires}{s.int}) / 1000) + NODES_FUDGE_FACTOR; $var(MediaExpire) = ($(var(Payload){kz.json,Expires}{s.int}) / 1000) + NODES_FUDGE_FACTOR;
xlog("L_DEBUG", "nodes|media|$var(Node) media expiration $var(MediaExpire) for $var(MediaUrl)\n");
$shtex(media=>$var(MediaUrl)::count) = $var(MediaExpire); $shtex(media=>$var(MediaUrl)::count) = $var(MediaExpire);
$var(ProfileIdx) = $var(ProfileIdx) + 1; $var(ProfileIdx) = $var(ProfileIdx) + 1;
} }
@ -167,7 +173,7 @@ event_route[htable:expired:media]
route[MEDIA_SERVER_UP] route[MEDIA_SERVER_UP]
{ {
xlog("L_INFO", "nodes|media|$var(Node) reported new media server $var(MediaUrl) in zone $var(Zone)\n");
xlog("L_WARNING", "nodes|media|$var(Node) reported new media server $var(MediaUrl) in zone $var(Zone)\n");
#!ifdef DISPATCHER_ROLE #!ifdef DISPATCHER_ROLE
route(DISPATCHER_CHECK_MEDIA_SERVER); route(DISPATCHER_CHECK_MEDIA_SERVER);
@ -181,7 +187,7 @@ route[MEDIA_SERVER_UP]
route[MEDIA_SERVER_DOWN] route[MEDIA_SERVER_DOWN]
{ {
xlog("L_INFO", "htable|media|hearbeat expired for media server $var(MediaUrl) in zone $var(Zone)\n");
xlog("L_WARNING", "htable|media|hearbeat expired for media server $var(MediaUrl) in zone $var(Zone)\n");
#!ifdef PRESENCE_ROLE #!ifdef PRESENCE_ROLE
route(RESET_PUBLISHER); route(RESET_PUBLISHER);


Loading…
Cancel
Save