VictoriaMetrics als zusätzliche Datenbank-Option für Messwerte ergänzt (STORE/DBASE=victoria)
Dritte, zu mongo/influx exklusive Auswahl für die laufenden Messwerte. Schreibpfad nutzt das bestehende Influx-Line-Protocol unverändert (common/victoria_post.js); Lesepfad (sensorapi/databases/victoria.js + victoria2json.js) holt Rohdaten per VictoriaMetrics' /api/v1/export und bucketet/aggregiert stundenweise clientseitig, nach Mongo-Konvention (Stunden-Start als Label, kein Zeit-Shift nötig wie bei Influx). Scope bewusst auf die schon heute per DBASE umschaltbaren Funktionen begrenzt (getActData/getNoiseAVGData) - getAvgData/getLongAvg/getGeigerData bleiben wie bisher. Docker-Compose um victoriametrics-Service ergänzt (Retention explizit auf 100y gesetzt, da VictoriaMetrics sonst nach 1 Monat Daten löscht). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,9 +9,12 @@ MONGO_ROOT_PASSWORD=<Mongo_Passwort>
|
||||
|
||||
LOCALDIR=<Aktuelle Direcrory ab />
|
||||
|
||||
# Datenbank, in welche die laufenden Messwerte gespeichert werden (kannn 'influx' oder 'mongo' sein)
|
||||
# Datenbank, in welche die laufenden Messwerte gespeichert werden (kann 'influx', 'mongo' oder 'victoria' sein)
|
||||
STORE=influx
|
||||
|
||||
# Datenbank, aus welcher sensorapi die Messwerte liest (kann 'influx', 'mongo' oder 'victoria' sein)
|
||||
DBASE=influx
|
||||
|
||||
# Secret zum Signieren der Session-Cookies von esp2sensor (langer Zufallsstring)
|
||||
ESP2SENSOR_SESSION_SECRET=<zufaelliger_string>
|
||||
|
||||
|
||||
@@ -26,20 +26,33 @@ services:
|
||||
DOCKER_INFLUXDB_INIT_ORG: citysensor
|
||||
DOCKER_INFLUXDB_INIT_BUCKET: sensor_data
|
||||
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
restart:
|
||||
unless-stopped
|
||||
container_name: influxdb
|
||||
restart:
|
||||
unless-stopped
|
||||
container_name: influxdb
|
||||
|
||||
victoriametrics:
|
||||
image: victoriametrics/victoria-metrics:v1.102.0
|
||||
ports:
|
||||
- "8428:8428"
|
||||
volumes:
|
||||
- ${LOCALDIR}/noisesensors/data/victoria/data:/victoria-metrics-data
|
||||
command:
|
||||
- "--storageDataPath=/victoria-metrics-data"
|
||||
- "--retentionPeriod=100y"
|
||||
restart: unless-stopped
|
||||
container_name: victoriametrics
|
||||
|
||||
readin:
|
||||
image: docker.citysensor.de/readin
|
||||
environment:
|
||||
MONGOHOST: mongodb
|
||||
INFLUXHOST: influxdb
|
||||
VICTORIAHOST: victoriametrics
|
||||
TYP: "[\"noise\"]"
|
||||
STORE: ${STORE:-mongo}
|
||||
MONGOAUTH: true
|
||||
MONGOUSRP: ${MONGO_ROOT_USERNAME}:${MONGO_ROOT_PASSWORD}
|
||||
INFLUXTOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
INFLUXTOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
volumes:
|
||||
- ${LOCALDIR}/noisesensors/log:/var/log
|
||||
# Pfad im Image ist jetzt /opt/app/readin, weil readin und readarchive
|
||||
@@ -67,7 +80,8 @@ services:
|
||||
environment:
|
||||
INFLUXHOST: influxdb
|
||||
INFLUXTOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
DBASE: influx
|
||||
VICTORIAHOST: victoriametrics
|
||||
DBASE: ${DBASE:-influx}
|
||||
MONGOHOST: mongodb
|
||||
MONGOAUTH: true
|
||||
MONGOUSRP: ${MONGO_ROOT_USERNAME}:${MONGO_ROOT_PASSWORD}
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
#
|
||||
# readFromcsv.js liest jeden Parameter auch aus einer Env-Variablen:
|
||||
# -s = START (Default: gestern), -e = END (Default: Startdatum + 1 Tag,
|
||||
# exklusiv), -t = TYP (Default: noise), -d = DBASE (Default: both),
|
||||
# exklusiv), -t = TYP (Default: noise), -d = DBASE ('mongo', 'influx',
|
||||
# 'victoria' oder 'both' = mongo+influx; Default: both),
|
||||
# -p = PARALLEL (Default: 4) - so viele Sensoren werden gleichzeitig geholt.
|
||||
#
|
||||
# Voraussetzungen:
|
||||
@@ -39,6 +40,7 @@ services:
|
||||
environment:
|
||||
MONGOHOST: mongodb
|
||||
INFLUXHOST: influxdb
|
||||
VICTORIAHOST: victoriametrics
|
||||
MONGOAUTH: "true"
|
||||
MONGOUSRP: ${MONGO_ROOT_USERNAME}:${MONGO_ROOT_PASSWORD}
|
||||
INFLUXTOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
|
||||
Reference in New Issue
Block a user