Как добавить данные в 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 например).

Другие вопросы по тегам