2017-01-10 5 views
0

温度、ファン速度、CPU負荷、SMARTデータなど、長年にわたって収集されたサーバーのステータスに関するデータがあります。それらはSQLiteデータベースにさまざまなテーブルの下に格納され、各テーブルはそれぞれのデータタイプに固有のものです。これらの測定にはどのInfluxDBスキーマが適していますか?

グラフ化(Grafana)と将来の拡張のためにInfluxDBに切り替えています。データには別のサーバーの値とUPSデータ(電圧、バッテリなど)が含まれます。

私はschemas in InfluxDBについてのガイドラインを読んでいますが、私はトピックに関する経験がないので、私はまだ混乱しています。スキーマの推奨についてはanother questionが見つかりましたが、私はそのケースに適用できません。

問題にどのようにアプローチし、時系列に適切なスキーマを設計するにはどうすればよいですか?タグに何を入れて、フィールドに何を入れるべきですか? 1つの「測定」シリーズを使用するか、複数のシリーズを作成する必要がありますか?

これらは私が始めていたデータである:実際のデータの

CREATE TABLE "case_readings"(date, sensor_id INTEGER, sensor_name TEXT, Current_Reading) 

CREATE TABLE cpu_load(date, load1 REAL, load2 REAL, load3 REAL) 

CREATE TABLE smart_readings(date, disk_serial TEXT, disk_long_name TEXT, smart_id INTEGER, value) 

例:

case_readings: 
"1478897100" "4"  "01-Inlet Ambient" "20.0" 
"1478897100" "25" "Power Supply 1" "0x0" 

cpu_load: 
"1376003998" "0.4" "0.37" "0.36" 

smart_readings: 
"1446075624" "50026B732C022B93" "KINGSTON SV300S37A60G" "194" "26 (Min/Max 16/76)" 
"1446075624" "50026B732C022B93" "KINGSTON SV300S37A60G" "195" "0/174553172" 
"1446075624" "50026B732C022B93" "KINGSTON SV300S37A60G" "196" "0" 
"1446075624" "50026B732C022B93" "KINGSTON SV300S37A60G" "230" "100" 

これはInfluxDBスキーマのための私の考えです。私は、文字列が実際にスペースが含まれている場合にのみ、実際の値とスペースを示すために大文字を使用します。

case_readings,server=SERVER_NAME,sensor_id=SENSOR_ID "sensor name"=CURRENT_READING DATE 

cpu_readings,server=SERVER_NAME load1=LOAD1 load2=LOAD2 load3=LOAD3 DATE 

smart_readings,server=SERVER_NAME,disk=SERIAL,disk="DISK LONG NAME" smart_id=VALUE DATE 

答えて

0

私は私が持っている同じIPMIの測定値のための公式電信pluginで使用するスキーマが見つかりました:

ipmi_sensor,server=10.20.2.203,unit=degrees_c,name=ambient_temp \ 
status=1i,value=20 1458488465012559455 

を古いデータをその形式に変換します。私は、古いSQLite DBに必要なすべてのフィールドを格納しています。私はIPの代わりにサーバーの名前を保存するようにプラグインを変更します。ここでは自宅での名前は名前自体よりも揮発性です。私はおそらく、タイムスタンプの精度を単純なミリ秒または秒に減らすでしょう。

cpu,server=SERVER_NAME,name=load1 value=LOAD1 DATE 
cpu,server=SERVER_NAME,name=load2 value=LOAD2 DATE 
cpu,server=SERVER_NAME,name=load3 value=LOAD3 DATE 

私はまだ単一の値のインデックス付けずに、私が提案したものを検討していますが:

1は、例として、私はCPUの読みのために提案されている1を向上させることができることを理解していることを利用し

私が使用しますので、私の提案にも最適ではなかったSMARTデータについては

cpu,server=SERVER_NAME load1=LOAD1 load2=LOAD2 load3=LOAD3 DATE 

smart_readings,server=SERVER_NAME,serial=SERIAL,name=DISK_LONG_NAME",\ 
smart_id=SMART_ID,smart_description=SMART_DESCRIPTION \ 
value=VALUE value_raw=VALUE_RAW DATE 
関連する問題