我有關於多年來收集的服務器狀態的數據:溫度,風扇速度,CPU負載,SMART數據。它們存儲在各種表格下的SQLite數據庫中,每種表格都針對每種類型的數據。什麼InfluxDB模式適合這些測量?
爲了更便於繪圖(Grafana)和未來擴展,我正在切換到InfluxDB:數據將包含來自另一臺服務器的值以及UPS數據(電壓,電池......)。
我閱讀了關於schemas in InfluxDB的指導原則,但仍然感到困惑,因爲我對這個主題沒有經驗。我發現another question關於一個模式推薦,但我不能適用於我的情況。
我應該如何處理這個問題,以及如何爲時間序列設計適當的模式?我應該把什麼放在標籤和領域?我應該使用單個「測量」系列還是應該創建多個系列?
這是我開始與數據:
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