GoGPT Best VPN GoSearch

OnWorksファビコン

rrdgraph_libdbi - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して、OnWorks の無料ホスティング プロバイダーで rrdgraph_libdbi を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド rrdgraph_libdbi です。

プログラム:

NAME


rrdgraph_libdbi - libdbi を介して rrdtool グラフでグラフ化するためのデータをフェッチする

SYNOPSIS


= sql// ドライバー>/ = /...
[/rrdminstepsize= ][/rrdfillmissing= 行方不明 n 秒>]//
/ コラム>/ 列>[/導出]/ 1>/.../ n>

DESCRIPTION


この疑似 rrd ファイル名は、SQL データソースを定義します。

SQL//
libdbi タイプのデータソースのマジック クッキー プレフィックス

<libdbi ドライバー>
どの libdbi ドライバーを使用するか (例: mysql)

=
指定された libdbi ドライバーでデータベースに接続するために必要なパラメーターを定義します
(これらのドライバは libdbi に依存しています。詳細については、libdbi のドライバ ドキュメントを参照してください!)

/rrdminstepsize=<最小値 手順 サイズ>
グラフ化に使用されるステップの長さの最小数を定義します (デフォルト: 300 秒)

/rrdfillmissing=<fill 行方不明 秒>
データ挿入のジッターによる NaN ボックスを回避するために、最後の値で埋める秒数を定義します (デフォルト: 0 秒)


結果セットをフェッチするテーブルを定義します。

複数のテーブルからデータをフェッチする必要がある場合、これらのテーブルはテーブル名を「+」で区切って定義できます。

%xx による hex-type-encoding は実際の値に変換されます。%% を使用して % を使用してください

<[*]unixtimestamp コラム>
E の列を定義しますテーブルE unix-timestamp を含む
- これがデータベースの DATETIME フィールドである場合は、先頭に「*」を付けます

%xx による hex-type-encoding は実際の値に変換されます。%% を使用して % を使用してください

<データ コラム>
E の列を定義しますテーブルE グラフ化する必要がある値列を含む

%xx による hex-type-encoding は実際の値に変換されます。%% を使用して % を使用してください

/派生する
使用されるデータ値が 2 つの連続する値のデルタであることを定義します (COUNTER または DERIVE タイプのデータソースをシミュレートするため)。

/ 条項>
AND で結合された XNUMX つ (または複数) の where 句を定義して、 テーブル

%xx による hex-type-encoding は実際の値に変換されます。%% を使用して % を使用してください

ds-names として使用できる戻り値 column-names は次のとおりです。

, 平均, マックス, カウント   シグマ
DS 定義で ds-names として使用されるように返されます。
これを使用する理由は、連結関数が min/avg および max に使用される場合、エンジンが複数回使用されるためです。
そして、これにより、同じSQLステートメントが数回使用されます


以下は、MySQL データベースのテーブルの例です。

DBコネクト情報
dbhost=127.0.0.1
ユーザー=rrd
パスワード=秘密
データベース名=rrd

ここにテーブル:
CREATE TABLE RRDValue (
RRDキーID bigint(20)NOT NULL、
Unixタイムスタンプ int型(11)NOT NULL、
値 double デフォルト NOT NULL,
プライマリ キー (RRDKeyID、UnixTimeStamp)
);

グラフ化したい RRDKeyID は 1141942900757789274 です。

これにアクセスするための疑似 rrd ファイル名は次のとおりです。
"sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=secret//RRDValue/UnixTimeStamp
/value/RRDKeyID=1141464142203608274"

これを説明するために、実際の値を含むグラフを作成するコマンドを示します。

DS_BASE="sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=passwd//RRDValue/UnixTimeStamp/value/RRDKeyID=1141942900757789274"
rrdtool グラフ test.png --imgformat=PNG --start=-1day --end=+3hours --width=1000 --height=600 \
"DEF:min=$DS_BASE:min:AVERAGE" \
"LINE1:分#FF0000:値" \
"DEF:avg=$DS_BASE:avg:AVERAGE" \
"LINE1:avg#00FF00:平均" \
"DEF:max=$DS_BASE:max:AVERAGE" \
"LINE1:max#FF0000:max" \
"DEF:sigma=$DS_BASE:sigma:AVERAGE" \
"CDEF:upper=avg,4,sigma,*,+" \
"LINE1:upper#0000FF:+4 シグマ" \
"CDEF:lower=avg,4,sigma,*,-" \
「LINE1:下位#0000FF:-4シグマ」

注意事項


* もちろん、libdbi がサポートする他の種類のドライバーも使用できます。たとえば、postgres、
...

* データ ソースの結合方法から、結合を行うことも可能である必要があります。
異なるテーブル
(テーブル内の「,」でテーブルを区切り、WHERE 句にテーブルの等価結合を追加します。
これはテストされていません!!!)

* 同じデータ ソースを使用してデータベースに追加するのも比較的簡単なはずです。
文字列。
これは実装されていません...

* 集計関数は無視され、代わりにいくつかのデータ列が使用されます
最小値、平均値、最大値が異なる場合に、同じ SQL を何度もクエリすることを避けるため
グラフ作成に必要...

* DB の効率を高めるには、履歴値を含む 2 つのテーブルを持つことを検討する必要があります
もう XNUMX つは最新のデータを含みます。
この XNUMX 番目のテーブルは、ブロッキング SQL の量を最小限に抑えるために、小さく保つ必要があります。
ステートメント。
mysql では、最初に myisam table-type を使用し、XNUMX 番目に InnoDB を使用することもできます。
+100M 行のテーブルでは myisam がはるかに小さいので、これは特に興味深いです。
次にInnoDB。

* SQL ステートメントをデバッグするには、環境変数 RRDDEBUGSQL と実際の SQL
ステートメントとタイミングが stderr に出力されます。

パフォーマンス 問題   MySQL バックエンド


MySQL サーバーからデータを取得する場合、LibDBI には大きなパフォーマンス上の問題があります。 パフォーマンス
影響は、データベースから取得した値の数に指数関数的に基づいています。 為に
たとえば、2 時間のデータで 5DS をグラフ化するには、150 秒以上かかります。
5 分の精度 (データが RRD ファイルから取得される場合は 100 ミリ秒)。 このバグは
LibDBI の最新バージョン (まだリリースされていません) で修正されました。 その時、あなたはする必要があります
CVS リポジトリから libdbi および libdbi-drivers をコンパイルして修正します。 あなたはもっと見つけることができます
この libdbi-users メーリング リスト スレッドに関する情報:
http://sourceforge.net/mailarchive/message.php?msg_id=30320894

onworks.net サービスを使用してオンラインで rrdgraph_libdbi を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。