Skip to content

Influx Time Series Editor V1.0.x Features

Up

Feature Overview

  • Browse buckets, measurements, tag key/value pairs and field keys via cascading dropdowns
  • Time range selection with quick-range presets (1 h, 6 h, 12 h, 24 h, 7 d, 30 d)
  • Time Range shift for shifting the region of interest on the time scale
  • Visualize queried field values in an interactive line chart
  • Time Range selection with mouse click-dragging within the chart
  • Auto Query for immediate visualization update on time range change
  • Edit individual data points directly in a scrollable table
  • Delete individual data points by selecting action DEL in the Action column
  • Insert new data points in the middle between two existing points
  • Side-by-side chart – original values (blue) and modified/filtered values (orange) shown simultaneously for review
  • Commit writes the modified points back to InfluxDB
    (same measurement/tags/timestamp → overwrites the field value) while preserving the queried field value type,
    and deletes points marked with DEL using the InfluxDB delete API
  • Persistent settings – URL, organisation and optionally the API token are saved across sessions

Architecture

The application is a Flask backend + W3.css/Chart.js frontend, packaged as a Docker container.

Browser (W3.css + Chart.js)
        │  HTTP / JSON
        ▼
Flask backend (app.py)
        │  influxdb-client-python
        ▼
InfluxDB v2

The backend is a single-process, single-worker Flask/Gunicorn application.
The InfluxDB connection is held as a module-level singleton, which is appropriate for a single-user container deployment.


Modifying data

InfluxDB v2 supports in-place field replacement: writing a new Point with the same measurement + tags + timestamp simply overwrites the stored field value.
The editor uses this mechanism for value edits – only the changed field values are re-written with the new values supplied by the user, retaining their original tag sets.

Deleting data

Individual data points can be deleted using the InfluxDB v2 delete API.
The editor sends a delete request with a 1-microsecond time window [t, t+1μs) and a predicate that matches the exact measurement and tag set of the queried data, ensuring only the selected point is removed.

Note: The InfluxDB v2 OSS delete API does not support filtering by field name (_field). The delete therefore targets all fields stored for the given measurement, tag set, and timestamp.

When the editor detects that more fields exist for the queried measurement, tag set, and timestamp than were requested for deletion, it automatically uses a read-modify-write procedure to preserve the other fields:

  1. Query all fields of the data point using the given measurement and tag set.
  2. Remove the field requested for deletion from the result set.
  3. Delete the entire original data point (all fields).
  4. Write back the remaining fields as a new data point.

Like insertion, this operation requires the tag set filter to be complete so that the correct data point is uniquely identified.


Credits

This tool was created with support of GitHub Copilot