2014-01-07 4 views
0
TSD_HOST=localhost 
TSD_PORT=4242 
COLLECTION_INTERVAL=60 

nc -z $TSD_HOST $TSD_PORT >/dev/null || exit 13 

while :; do 
    echo stats || exit 
    sleep $COLLECTION_INTERVAL 
done | nc $TSD_HOST $TSD_PORT 

Выход:как изменить выход - статистика эха | н.д. <ip><port>

tsd.hbase.rpcs 1389058717 2037068142 type=put host=x 
tsd.hbase.rpcs 1389058717 0 type=rowLock host=x 
tsd.hbase.rpcs 1389058717 17 type=openScanner host=x 
tsd.hbase.rpcs 1389058717 29 type=scan host=x 
tsd.hbase.rpcs.batched 1389058717 5258656 host=x 

Выше по умолчанию tcollector Скрипт, который поставляется с opentsdb. Я хочу добавить дополнительный тег к каждому распечатанному элементу; например:

tsd.hbase.rpcs 1389058717 2037068142 type=put host=x cluster=y 

Я хочу добавить cluster=y к каждому элементу статистики. Но я не могу найти хороший ярлык для этого.

ответ

1

Добавить «| awk '{print $0 " cluster=y"}'» в конец строки «done | nc $TSD_HOST $TSD_PORT» (или, если вы не хотите изменять скрипт, просто сделайте tcollector | awk '{print $0 " cluster=y"}).

+0

работает как шарм. Можете ли вы объяснить мне, как точно работает статистика эха? делает nc $ TSD_HOST $ TSD_PORT захватывает статистику сокета по очереди и печатает его? есть ли хорошие читать об этом? только информация, которую я видел, это было связано с memcached. Благодаря тонну! – user1579557

+1

«' echo stats' »просто печатает слово« статистика », за которым следует новая строка. Затем он передается в 'nc', который отправляет его через Интернет в' $ TSD_HOST', а затем 'nc' отправляет обратно все ответы удаленного сервера на' stats'. – jwodder