Cactiでデータ入力方式スクリプトをデバッグするにはどうすればよいですか?


8

(更新については下を参照してください...)

私は(beanstalkdから収集統計に、Rubyで)サボテンのためのデータ入力方法スクリプトを書いたのだが、コマンドライン(、単一の単純な整数を返すの作品ここに記載されているようにサボテンユーザーアカウントとして実行したとき)が、サボテンツールそれ自体はデータを収集しておらず、ログには何もありません。

データ入力方法の設定は次のとおりです 。Cactiデータ入力方法http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg

そして、これが結果のグラフです(ホストのグラフテンプレートに追加され、データを収集するのに十分な時間実行された後): Cacti Graph http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg

アップデート#1:Cactiが環境を削除しているようです:

sudo su-cacti -c 'env -i / script / beanstat --host 10.11.12.13 --port 11300 --stat current-waiting'
/ script / beanstat:4:in `require ':ロードするファイルはありません-rubygems(LoadError)
    / script / beanstat:4から

その場合、どうすれば回避できますか?

アップデート#2この stackoverflow.comへの応答により、環境の問題は解決されたようですが、それでもグラフにはデータがありません。

更新#3:@Heathの提案のおかげで、ポーラーのロギングレベルを上げて、これをキャッチしました。

警告:CMDからの結果が無効です。部分的な結果:U

「部分的な結果:U」が何を意味するのかをググるのに運がありません。スクリプトは、単一の整数値を出力するだけです。

更新#4:私はようやくこれを動作させました。中心的な問題は、シェルスクリプトが実行されるときの環境の欠如でした。Rubyスクリプトの前に次の行を付けることで、これを解決する必要がありました。

#!/ bin / sh
PATH = / usr / local / bin:$ PATH
exec ruby​​ -x "/ full / path / to / script / directory" $ 0 "$ @"
#!/ usr / bin / env ruby

そして2番目の問題は、データテンプレートにフィードするデータソースにフィードするデータソースにフィードするデータ入力メソッド(すべてが同じスクリプトを使用していたとしても、収集したい個別のメトリックごとに1つ)の適切な構成でした(またはその逆、 mはまだ明確ではありません)デバイスに割り当ててグラフツリーに追加する必要があるグラフテンプレートをフィードします。要約すると、それはドキュメンテーションのがらくたとなる大きな大失敗であり、私は二度とそれをする必要がないことを願っています。

アップデート#5:GitHub http://github.com/trak3r/cacti-beanstalkd-scriptでスクリプトを共有しました

回答:


4

カスタムスクリプトをデバッグしようとしたときに、スクリプトを実行するたびに一時ファイルに情報を追加すると便利でした。そうすれば、私が期待した方法で呼び出されていることを確認できます。コマンドライン引数、環境、返される値など。また、stderrをログファイルにリダイレクトして、スクリプトからのエラー出力をキャッチすることもできます。

データ入力メソッドとグラフテンプレートを作成したようですね。データテンプレートも作成しましたか?


言及するのを忘れました。ポーラーのロギングレベルを上げてみましたか?
ヒース

うん、データテンプレートも作成しました。IIRCは、データポイントをグラフテンプレートに追加するための前提条件でした。
テフロンテッド

ポーラーのロギングレベルについては良い考えです。私はそれをワンランクアップさせました。ありがとう。
テフロンテッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.