Подделка Ganglia не работает при отправке данных в gmond

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

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

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

Код, который я использую, скопирован из GangliaSink (из hadoop 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.

1 ответ

Решение

Решено это... Проблема формата hostName. Формат должен быть похож на ip:hostname например 1.2.3.4:host0000001 или любой string:string Это хорошо:-)

Другие вопросы по тегам