問題タブ [rrdtool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - RRD への同時アクセス (RRDTool)
パフォーマンス メトリックを格納するためのグラフ作成バックエンドとしてRRDTool ( http://oss.oetiker.ch/rrdtool/ ) を使用しています。これは、Python スクリプトから RRDTool CLI を介して実行されます。
私の問題は、スクリプトがマルチスレッド化されており、各スレッドが RRD を非常に速いペースで更新していることです。1 つのスレッドが RRD ファイルにアクセスしているときに、別のスレッドが RRD ファイルにアクセスしようとしているために、更新が失敗することがあります。
RRDTool は独自のロック メカニズムを使用しているため、これを試しても問題ないという印象を受けましたが、そうではないと思います。
RRDへの同時アクセスのための良いアプローチを持っている人はいますか?
いくつかの方法を考えることができます:
1 つのスレッドでキューを作成し、単一のスレッドからのみ RRD をフィードします。
Python スクリプト内に独自のロック メカニズムを作成します。(どうすればいいですか?)
以前にこの問題に遭遇したことがありますか?
clone - 既存のデータベースに基づいて新しい rrd データベースを作成する
私はいくつかの古い rrdtool データベースを持っていますが、正確な作成レシピは長い間失われています。現在のデータベースと同じ特性を持つ新しいデータベースを作成する必要があります。いくつかの古いデータベースをダンプし、内容を調べましたが、メタデータを解釈する方法がわかりません。次の節に出てくると思います
そのようなスタンザが 4 つあります。これらは、ラウンドロビン カスケードがセットアップされた方法を思い出す方法に対応しています。誰かがすでにこれを行っていますか、または既存のデータベースから新しい空の rrd データベースを複製する方法についての指針を教えてもらえますか? または、ドキュメントでこれを見逃した場所を教えてください。
monitoring - Cactiよりも簡単なWebサイト監視用のRRDツールベースのWebアプリの構築(またはセットアップ)に関する推奨事項を作成しますか?
Cactiは、構成に数時間かかるという事実を除けば素晴らしいと思います。それを使ってできることはたくさんありますが、少し複雑すぎると思います。最近、ディスク使用率を収集するスクリプトが壊れました(明らかな理由はありません)。3時間かけてどこにも行きませんでした。
Cactiのようなツールが欲しいのですが、セットアップはとても簡単です。私はRRDにある程度精通しているので、少しの手作業で大丈夫です。
これをよりプログラミングに関連させるには:別のソフトウェアパッケージの代わりに、カスタムビルドのものを開発することもできます。誰かがこれを試みましたか?どの部品を組み立てるためにどの部品を使用しますか?
perl - RRDtool を使用してデータを更新するにはどうすればよいですか?
グラフを表示するためのデータを格納するために RRDtool を使用しています。RRDs::update で RRD を更新しましたが、情報を書き換えようとすると失敗します。これは、過去の時間のデータを更新することを意味します (たとえば、誰かがシステム タイマーを元に戻しました)。私が得るエラーは次のとおりです。
常に書き換えを許可したいのですが、どうすればよいですか?
php - 純粋な PHP rrdtool
rrdtool の純粋な php 実装を知っている人はいますか? この質問をグーグルで検索しましたが、PHPとrrdのインターフェースに関する回答しか見つかりませんでした...
sql - 大量生産用の rrd ツールの代替
時系列データをログに記録するための rrdtool に代わるものがあるかどうか知りたいです。多数のデバイスを監視するために拡張できるものを探しています。
この件について私が読んだことによると、rrdtool は、大量のデータでヒットすると I/O バウンドになります。私はこれを非常に多くのデバイスを監視するように拡張することを想定しているので、I/O を詰まらせない代替手段があるかどうか知りたいです。SQL ベースが望ましいですが、必ずしもそうとは限りません。
ありがとう
data-migration - 異なるRRAを使用したRRDtoolデータベースのエクスポート/インポート
内部にデータがあるRRDToolデータベースがあり、このデータをRRAのみが異なる別のRRDToolデータベースにインポートできるようにしたいと考えています。
履歴データの精度を上げたいので、rrdresizeを使用してRRAを拡張する方法を試しましたが、追加された行が再計算されません。つまり、さまざまな「ズームレベル」としてグラフ化すると、奇妙な結果が得られます。低精度でグラフ化するとグラフにデータが含まれますが、RRDToolが自動的に最高の精度レベルを選択し、新しく追加されたRRA行が空になるため、精度を上げると空になります。 (不明)。
rrdrestoreも使用できません。これは、RRDも作成するためです(既存のRRDを埋めるだけではありません)。
失われたデータを再現できないことは知っていますが、少なくとも低精度のRRAから新しい高精度のRRAにデータをコピーしたいと思います。
私は、rrdfetch / rrdupdateサイクルを実行するためにすべてのステップでループするだけの単純なツール、rrdmoveを作成しました。これにより、RRDToolは新しいデータベース内のすべてのRRAを再計算しますが、あまり効率的ではないようです。
rrdtool - CDEF Cacti で % 値を検索する関数
RRD グラフの 2 つのデータ ソースに基づいて % を見つける方法を見つけようとしています。以下は、グラフの作成に使用されるコードです (Cacti によって生成されます)。
次の (A - B) / A * 100 を求めて、グラフの下部に表示したいと思います。
この質問は、サーバー関連よりもプログラミング関連の方が多いと思います(ただし、修正する準備はできています)。RRDに関する適切なドキュメントを誰かが教えてくれれば、自分でこれを理解できるか、誰かが私に良いスタートを切ることができれば、それは大いに役立ちます感謝。
乾杯。