Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何修改-echo stats的输出| nc<;知识产权>&书信电报;港口>;_Bash_Opentsdb_Netcat - Fatal编程技术网

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