我的目标是通过java代码将数据直接插入tsdb,为此,我尝试创建可执行jar,将数据打印到stdout。然后我写了一个收集器来运行这个jar并把它放进去 tcollector/collectors/0
. 最后,我尝试用两种方式执行收集器,一种是shell脚本,另一种是python。
python收集器:
def main():
while True:
os.system("java -jar ./TCollectorTSDB.jar")
sys.stdout.flush()
time.sleep(COLLECTION_INTERVAL)
if __name__ == "__main__":
sys.stdin.close()
sys.exit(main())
上面的收集器工作得非常好,但是当我尝试从shell脚本运行同一个jar时,收集器没有选择shell脚本。
shell脚本收集器:
java -jar "./TCollectorTSDB.jar"
我必须配置一些东西才能注册这个收集器吗?如果我们必须通过java插入数据,那么用collector插入数据的最佳方法是什么?
1条答案
按热度按时间yhxst69z1#
tcollector并不关心您编写的收集器是python还是shell脚本之类的。只要你把收集器放进去
tcollector/collectors/0
它应该是自动拾取的。如果不是,那么检查shell脚本是否可执行(chmod a+x
)而且是从一个雪邦开始的(#!/bin/sh
例如)。