我的目标是通过java代码直接将数据插入TSDB,为此,我尝试创建一个可执行的jar,它将数据打印到STDOUT。然后我编写collector来运行这个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脚本收集器:
^{pr2}$注册这个收集器需要配置什么吗? 如果我们必须通过Java插入数据,那么对于Collector来说,哪种方法是最好的呢?在
tcollector不关心您编写的收集器是使用Python还是shell脚本还是什么。只要你把收集器放在
tcollector/collectors/0
中,它就会被自动拾起。如果不是,那么检查shell脚本是否可执行(chmod a+x
),并且它以shebang开头(例如#!/bin/sh
)。在相关问题 更多 >
编程相关推荐