Bash 如何修改-echo stats的输出| nc<;知识产权>&书信电报;港口>;
输出:Bash 如何修改-echo stats的输出| nc<;知识产权>&书信电报;港口>;,bash,opentsdb,netcat,Bash,Opentsdb,Netcat,输出: 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 上面是opentsdb附带的默认tcollector脚本。我想给打印出来的每个元素添
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
上面是opentsdb
附带的默认tcollector
脚本。我想给打印出来的每个元素添加一个额外的标签;例:
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
我想将
cluster=y
附加到stats的每个元素。但是我找不到一个好的快捷方式来做这件事。在“done | nc$TSD_HOST$TSD_PORT
”行的末尾加上“awk'{print$0”cluster=y”
”(或者,如果你不想修改脚本,只需执行tcollector | awk'{print$0”cluster=y
)就可以了。工作起来很有魅力。你能解释一下echo统计是如何工作的吗?nc$TSD_主机$TSD_端口是否逐行从套接字获取统计数据并打印?这方面有好的读物吗?我看到的唯一信息是关于memcached的。非常感谢!“echo stats
”只需打印出单词“stats
”,后跟一个换行符。然后通过管道将其传输到nc
,后者通过互联网将其发送到$TSD_主机
,然后nc
将远程服务器对统计数据的响应发回。
tsd.hbase.rpcs 1389058717 2037068142 type=put host=x cluster=y