我的目标是通过java代码直接将数据插入TSDB,为此,我尝试创建将数据打印到STDOUT的可执行jar。然后我写了收集器来运行这个 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 做同样的事情的最好方法是什么?