3

私の目標は、Java コードを介して直接 TSDB にデータを挿入することです。そのために、データを STDOUT に出力する実行可能 jar を作成しようとしました。次に、この jar を実行して内部に配置するようにコレクターを作成しましたtcollector/collectors/0。最後に、コレクターをシェルスクリプトで実行する方法と Python で実行する方法の 2 つの方法で実行してみました。

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())

上記のコレクタは問題なく動作していましたが、シェル スクリプトから同じ jar を実行しようとしたときに、コレクタがシェル スクリプトを選択していませんでした。

シェル スクリプト コレクター:

java -jar "./TCollectorTSDB.jar"

このコレクターを登録するには、何かを構成する必要がありますか? Java を介してデータを挿入する必要がある場合、Collector で同じことを行う最良の方法はどれですか?

4

1 に答える 1

3

tcollector は、あなたが書いたコレクタが Python であるか、シェル スクリプトであるか、または何であるかを気にしません。コレクターを入れている限り、tcollector/collectors/0自動的にピックアップされます。そうでない場合は、シェル スクリプトが実行可能であること ( chmod a+x) と、それがシバンで始まること (#!/bin/shたとえば) を確認します。

于 2013-08-28T17:03:24.693 に答える