NEWS
Pflege der InfluxDB
-
Eines heißt z.B so: "storage_bucket_measurement_num"
influx delete --bucket iobroker --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ== --org privat --start 1970-01-01T00:00:00Z --stop '2030-12-31T23:59:59Z' --predicate '_measurement="*storage*"' -
Eines heißt z.B so: "storage_bucket_measurement_num"
influx delete --bucket iobroker --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ== --org privat --start 1970-01-01T00:00:00Z --stop '2030-12-31T23:59:59Z' --predicate '_measurement="*storage*"'@Laser sagte in backitup Speicherort:
_measurement="*storage*"'
Du kannst nicht mit Wildcards arbeiten, das funktioniert an dieser Stelle nicht. Entweder einzeln löschen, oder aber das Script nutzen. Diese Anfragen kommen ja immer mal wieder rein:
#!/bin/bash # InfluxDB Konfiguration BUCKET="<BUCKET-NAME>" ORG="<ORG-NAME>" TOKEN="" # Leer lassen, wenn kein Token verwendet werden soll START="1970-01-01T00:00:00Z" STOP="2030-01-01T00:00:00Z" # Liste aller zu löschenden Measurements MEASUREMENTS=( "boltdb_reads_total" "boltdb_writes_total" "go_gc_duration_seconds" "go_goroutines" "go_info" "go_memstats_alloc_bytes" "go_memstats_alloc_bytes_total" "go_memstats_buck_hash_sys_bytes" "go_memstats_frees_total" "go_memstats_gc_sys_bytes" "go_memstats_heap_alloc_bytes" "go_memstats_heap_idle_bytes" "go_memstats_heap_inuse_bytes" "go_memstats_heap_objects" "go_memstats_heap_released_bytes" "go_memstats_heap_sys_bytes" "go_memstats_last_gc_time_seconds" "go_memstats_lookups_total" "go_memstats_mallocs_total" "go_memstats_mcache_inuse_bytes" "go_memstats_mcache_sys_bytes" "go_memstats_mspan_inuse_bytes" "go_memstats_mspan_sys_bytes" "go_memstats_next_gc_bytes" "go_memstats_other_sys_bytes" "go_memstats_stack_inuse_bytes" "go_memstats_stack_sys_bytes" "go_memstats_sys_bytes" "go_threads" "http_api_request_duration_seconds" "http_api_requests_total" "http_query_request_bytes" "http_query_request_count" "http_query_response_bytes" "influxdb_buckets_total" "influxdb_dashboards_total" "influxdb_info" "influxdb_organizations_total" "influxdb_remotes_total" "influxdb_replications_total" "influxdb_scrapers_total" "influxdb_telegrafs_total" "influxdb_tokens_total" "influxdb_uptime_seconds" "influxdb_users_total" "qc_all_active" "qc_all_duration_seconds" "qc_compiling_active" "qc_compiling_duration_seconds" "qc_executing_active" "qc_executing_duration_seconds" "qc_memory_unused_bytes" "qc_queueing_active" "qc_queueing_duration_seconds" "qc_requests_total" "query_influxdb_source_read_request_duration_seconds" "service_bucket_new_call_total" "service_bucket_new_duration" "service_bucket_new_error_total" "service_onboard_new_call_total" "service_onboard_new_duration" "service_org_call_total" "service_org_duration" "service_org_new_call_total" "service_org_new_duration" "service_org_new_error_total" "service_password_new_call_total" "service_password_new_duration" "service_session_call_total" "service_session_duration" "service_session_error_total" "service_urm_new_call_total" "service_urm_new_duration" "service_user_new_call_total" "service_user_new_duration" "storage_bucket_measurement_num" "storage_bucket_series_num" "storage_cache_disk_bytes" "storage_cache_inuse_bytes" "storage_cache_latest_snapshot" "storage_cache_writes_dropped" "storage_cache_writes_err" "storage_cache_writes_total" "storage_compactions_queued" "storage_retention_check_duration" "storage_shard_disk_size" "storage_shard_fields_created" "storage_shard_series" "storage_shard_write_count" "storage_shard_write_dropped_sum" "storage_shard_write_err_count" "storage_shard_write_err_sum" "storage_shard_write_sum" "storage_tsm_files_disk_bytes" "storage_tsm_files_total" "storage_wal_size" "storage_wal_writes" "storage_wal_writes_err" "storage_writer_dropped_points" "storage_writer_err_points" "storage_writer_ok_points" "storage_writer_req_points" "storage_writer_timeouts" "task_executor_promise_queue_usage" "task_executor_total_runs_active" "task_executor_workers_busy" "task_scheduler_current_execution" "task_scheduler_execute_delta" "task_scheduler_schedule_delay" "task_scheduler_total_execute_failure" "task_scheduler_total_execution_calls" "task_scheduler_total_release_calls" "task_scheduler_total_schedule_calls" "task_scheduler_total_schedule_fails" ) echo "Starte Löschvorgang für ${#MEASUREMENTS[@]} Measurements..." echo "Bucket: $BUCKET" echo "Organisation: $ORG" echo "" SUCCESS=0 FAILED=0 # Basis-Argumente fürs influx-CLI INFLUX_ARGS=(delete --bucket "$BUCKET" --org "$ORG" --start "$START" --stop "$STOP") # Token nur anhängen, wenn nicht leer if [[ -n "$TOKEN" ]]; then INFLUX_ARGS+=(--token "$TOKEN") fi # Durch alle Measurements iterieren for measurement in "${MEASUREMENTS[@]}"; do echo -n "Loesche '$measurement'... " if influx "${INFLUX_ARGS[@]}" \ --predicate "_measurement=\"$measurement\"" 2>/dev/null; then echo "✓" ((SUCCESS++)) else echo "✗" ((FAILED++)) fi done echo "" echo "Fertig!" echo "Erfolgreich geloescht: $SUCCESS" echo "Fehlgeschlagen: $FAILED" -
OK. keine Wildcards. Direkt eingegeben:
influx delete --bucket iobroker --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ== --org privat --start 1970-01-01T00:00:00Z --stop '2030-12-31T23:59:59Z' --predicate '_measurement="storage_bucket_measurement_num"'löscht auch nicht.
-
OK. keine Wildcards. Direkt eingegeben:
influx delete --bucket iobroker --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ== --org privat --start 1970-01-01T00:00:00Z --stop '2030-12-31T23:59:59Z' --predicate '_measurement="storage_bucket_measurement_num"'löscht auch nicht.
@Laser sagte in backitup Speicherort:
löscht auch nicht.
influx bucket list --org privat --token ...sagt?
-
Befehlssyntax scheint falsch zu sein. Meldung: Error: flag provided but not defined: -KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZXYZ
(Hochsicherheits- Token ist etwas abgeändert)
-
influx bucket list --org privat --KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ==...mit und ohne die 3 Punkte gtestet
@Laser sagte in backitup Speicherort:
influx bucket list --org privat --KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ==...
da fehlt das "--token"
influx bucket list --org privat --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ==... -
otto@neuheizung:~ $ influx bucket list --org privat --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZXYZ== ID Name Retention Shard group duration Organization ID Schema Type bd3baaf8e14d8ac9 _monitoring 168h0m0s 24h0m0s 2d3c37361d7b8576 implicit 3fa5f9c2ffa043d0 _tasks 72h0m0s 24h0m0s 2d3c37361d7b8576 implicit 7b6dd0929a6bb818 iobroker 17520h0m0s 168h0m0s 2d3c37361d7b8576 implicit -
OK. keine Wildcards. Direkt eingegeben:
influx delete --bucket iobroker --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ== --org privat --start 1970-01-01T00:00:00Z --stop '2030-12-31T23:59:59Z' --predicate '_measurement="storage_bucket_measurement_num"'löscht auch nicht.
@Laser sagte in backitup Speicherort:
OK. keine Wildcards. Direkt eingegeben:
influx delete --bucket iobroker --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ== --org privat --start 1970-01-01T00:00:00Z --stop '2030-12-31T23:59:59Z' --predicate '_measurement="storage_bucket_measurement_num"'löscht auch nicht.
Hm, dann sollte das gehen. Wie stellst du fest, dass das Measurement nicht gelöscht wurde? Und ist der Scraper gelöscht?
-
-
Ich habe die Benutzeroberfläche der influxDB geöffnet. Im Data Explorer suche ich z.B. nach "storage". Alle Measurements mit "storage" werden gelistet. Das zu löschende ist immer wieder vorhanden. Auch mit alter Zeit.@Laser sagte in backitup Speicherort:
Das zu löschende ist immer wieder vorhanden
Die Liste wird erst nach einem richtigen Refresh der Seite aktualisiert.
-
@Laser sagte in backitup Speicherort:
OK. keine Wildcards. Direkt eingegeben:
influx delete --bucket iobroker --token KTLmduvh_2ocvh25GueyRrQmob_hcMaVqg2XJUnEuE2iFYhhretw-PtP-sBEAsQiQOD0u68fhpwFnmrBAZeXYZ== --org privat --start 1970-01-01T00:00:00Z --stop '2030-12-31T23:59:59Z' --predicate '_measurement="storage_bucket_measurement_num"'löscht auch nicht.
Hm, dann sollte das gehen. Wie stellst du fest, dass das Measurement nicht gelöscht wurde? Und ist der Scraper gelöscht?
Dann fällt mir nur noch ein:
Und ist der Scraper gelöscht?
Der würde nämlich sofort die Measurements wieder anlegen.
EDIT: und in deinem Screenshot sehe ich das Measurement "storage_bucket_measurement_num" nicht.
-
ich hab das mal abgetrennt und verschoben
hat ja mit bsckitup nichts mehr zu tun.hoffentlich hab ich nichts vergessen
-
OK. Das ist richtig. Über backitup bin ich nur drauf gekommen, weil die Datenbank so riesig war und backitup streikte. Wo ist es denn jetzt?
-
Mein NAS ist ein Eigenbau mit Banana Pi. Und openmediavault. Da kann ich nur Version3 auswählen. Keine Unterversion. Wenn das Backup fertig ist, stelle ich im Backitup auf 3.1.1. Möchte jetzt nicht eingreifen. Die Datenbank ist wirklich riesig. Und wächst unaufhaltsam. Vermutlich speichere ich immer noch unnötig viele Daten. Ändern- da habe ich Bedenken, daß Alles auf einmal weg ist.
@Laser sagte in Pflege der InfluxDB:
Ändern- da habe ich Bedenken, daß Alles auf einmal weg ist
Hi,
die InfluxDB kann man doch auch mit SQL-Befehlen bedienen, soweit ich aus der Doku sehe. Ich verwende als langjähriger SQL-Datenbank-Entwickler lieber die mysql, aber die Befehlsstruktur ist sehr ähnlich:
mysql: SELECT * FROM iobroker.ts_number WHERE ts <= xxxxxxxx; Zum Löschen alter Daten **(VORSICHT, DATENBANK VORHER UNBEDINGT SICHERN!!)** DELETE FROM iobroker.ts_number WHERE ts <= xxxxxxxx; InfluxDB: SELECT * FROM "absolutismus" WHERE time = '2016-07-31T20:07:00Z'Der IOB sammelt die Daten [Edit Begin] aller Datenpunkte, bei denen die DB-Speicherung aktiviert ist, [Edit end] in der Datenbank-Tabelle "ts_number" und diese wird schnell sehr groß, wenn man im Sekundentakt speichert. Mein Backup zur mysql-DB hat jetzt nach einem Jahr etwa 4 MB.
Die 2 wichtigsten Tabellen sind:

In der Tabelle "datapoints" legt der IOB die Datenpunkte bei denen die DB-Speicherung aktiviert ist, als Referenz zur Tabelle "ts_Number" an:

Und damit kann man die Datenmengen schon gut im Zaum halten ;-) Vielleicht hilft euch das etwas. Fragen generell zu SQL kann ich gern beantworten.
Gruß, Fuzzy