Как добавить данные в openTSDB через Java с помощью tCollector
Моя цель - вставить данные в TSDB напрямую через код Java, для чего я попытался создать исполняемый файл jar, который печатал данные в STDOUT. Затем я написал сборщик, чтобы запустить эту банку и положить его внутрь tcollector/collectors/0
, Наконец, я попытался выполнить сборщик двумя способами: один в сценарии оболочки, а другой в python.
Python Collector:
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())
Вышеупомянутый коллектор работал отлично, но когда я попытался запустить тот же самый jar из сценария оболочки, Collector не выбирал сценарий оболочки.
Сборщик сценариев оболочки:
java -jar "./TCollectorTSDB.jar"
Нужно ли что-то настраивать, чтобы зарегистрировать этот коллектор? Если нам нужно вставить данные через Java, какой лучший способ сделать то же самое с Collector?
1 ответ
tcollector не заботится о том, находится ли созданный вами сборщик на языке Python или сценарий оболочки или что-то еще. Пока вы кладете коллектор в tcollector/collectors/0
это должно быть подобрано автоматически. Если это не так, то убедитесь, что ваш сценарий оболочки является исполняемым (chmod a+x
) и это начинается с шебанга (#!/bin/sh
например).