2014-01-14 3 views
0

Я использую ganglia 3.6.0 для мониторинга. У меня есть приложение, которое собирает, агрегирует некоторые показатели для всех хостов в кластере. Затем он отправляет их в gmond. Приложение работает на host1.Ganglia spoof не работает при отправке данных в gmond

Проблема в том, что при установке spoof = false ганглии в конечном итоге думает, что это показатель, который исходит только от host1. Фактически, эти показатели генерируются host1, но для всех хостов в кластере.

Но при установке spoof = true, я ожидаю, что gmond примет имя хоста, которое я указал. Но он не принимает метрики вообще. Показатели - это событие не показано на host1.

Код, который я использую, копируется из GangliaSink (из hasoop common), который применял формат Ganglia 3.1x.

xdr_int(128);    // metric_id = metadata_msg 
xdr_string(getHostName());  // hostname 
xdr_string(name);   // metric name 
xdr_int(1);     // spoof = True 
xdr_string(type);   // metric type 
xdr_string(name);   // metric name 
xdr_string(gConf.getUnits()); // units 
xdr_int(gSlope.ordinal()); // slope 
xdr_int(gConf.getTmax());  // tmax, the maximum time between metrics 
xdr_int(gConf.getDmax());  // dmax, the maximum data value 
xdr_int(1);     /*Num of the entries in extra_value field for 
           Ganglia 3.1.x*/ 
xdr_string("GROUP");  /*Group attribute*/ 
xdr_string(groupName);  /*Group value*/ 

// send the metric to Ganglia hosts 
emitToGangliaHosts(); 

// Now we send out a message with the actual value. 
// Technically, we only need to send out the metadata message once for 
// each metric, but I don't want to have to record which metrics we did and 
// did not send. 
xdr_int(133);   // we are sending a string value 
xdr_string(getHostName()); // hostName 
xdr_string(name);  // metric name 
xdr_int(1);   // spoof = True 
xdr_string("%s");  // format field 
xdr_string(value); // metric value 

// send the metric to Ganglia hosts 
emitToGangliaHosts(); 

Я указал имя хоста для каждой метрики. Но он, кажется, не используется/не признан gmond.

ответ

0

Решено ... Ошибка в hostName. Формат должен быть как ip:hostname, например 1.2.3.4:host0000001, или любой string:string в порядке :-)