Browse Source

Changed retry behaviour for connecting to graphite server.

pull/69/head^2
Frederic-Philippe Metz 11 years ago
parent
commit
794709f71a
1 changed files with 19 additions and 21 deletions
  1. +19
    -21
      daemon/graphite.c

+ 19
- 21
daemon/graphite.c View File

@ -22,7 +22,7 @@ struct totalstats totalstats_prev;
int connect_to_graphite_server(u_int32_t ipaddress, int port) {
graphite_sock=0;
int reconnect=0, MAXRECONNECTS=5;
int reconnect=0;
int rc=0;
struct sockaddr_in sin;
memset(&sin,0,sizeof(sin));
@ -47,25 +47,18 @@ int connect_to_graphite_server(u_int32_t ipaddress, int port) {
return -1;
}
while (reconnect<MAXRECONNECTS) {
struct in_addr ip;
ip.s_addr = graphite_ipaddress;
ilog(LOG_INFO, "Connecting to graphite server %s at port:%i with fd:%i",inet_ntoa(ip),graphite_port,graphite_sock);
rc = connect(graphite_sock, (struct sockaddr *)&sin, sizeof(sin));
if (rc==-1) {
ilog(LOG_ERROR, "Connection could not be established. Trying again in 5 seconds...");
sleep(5);
++reconnect;
if (reconnect==MAXRECONNECTS) {
ilog(LOG_ERROR, "Giving 5 seconds retry timer connection to grahpite. Trying again when graphite data is sent.");
}
continue;
}
ilog(LOG_INFO, "Graphite server connected.");
break;
struct in_addr ip;
ip.s_addr = graphite_ipaddress;
ilog(LOG_INFO, "Connecting to graphite server %s at port:%i with fd:%i",inet_ntoa(ip),graphite_port,graphite_sock);
rc = connect(graphite_sock, (struct sockaddr *)&sin, sizeof(sin));
if (rc==-1) {
ilog(LOG_ERROR, "Connection could not be established. Trying again next time of graphite-interval.");
return -1;
}
return rc==-1?-1:graphite_sock;
ilog(LOG_INFO, "Graphite server connected.");
return graphite_sock;
}
int send_graphite_data() {
@ -118,12 +111,17 @@ void graphite_loop_run(struct callmaster* callmaster, int seconds) {
if (!cm)
cm = callmaster;
rc = send_graphite_data();
if (rc<0) {
if (!graphite_sock) {
rc = connect_to_graphite_server(graphite_ipaddress, graphite_port);
}
if (rc>=0) {
rc = send_graphite_data();
if (rc<0) {
return;
ilog(LOG_ERROR,"Sending graphite data failed.");
graphite_sock=0;
}
}
sleep(seconds);
}

Loading…
Cancel
Save