Имам данни за състоянието на моя сървър, събрани през годините: температури, скорости на вентилатора, натоварване на процесора, SMART данни. Те се съхраняват в база данни SQLite под различни таблици, всяка от които е специфична за всеки тип данни.
Преминавам към InfluxDB за по-лесно графикиране (Grafana) и бъдещо разширяване: данните ще включват стойности от друг сървър, а също и UPS данни (напрежения, батерия, ...).
Прочетох указанията за схеми в InfluxDB, но все пак съм объркан, защото нямам опит по темата. Намерих още един въпрос относно препоръка за схема, но не мога да я приложа към моя случай.
Как трябва да подходя към проблема и как да проектирам подходяща схема за времевия ред? какво трябва да поставя в етикети и какво в полета? трябва ли да използвам една серия от „измервания“ или трябва да създам няколко?
Това са данните, с които започвам:
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