Overview
The influxdb node stores time-series data in InfluxDB, the leading database for
IoT, monitoring, and real-time analytics. Optimized for high-volume writes, automatic data retention,
and powerful time-based queries with Flux or InfluxQL.
Time
Series Optimized
10M+
Writes/sec
Auto
Retention
Grafana
Native Support
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| url | string | "http://localhost:8086" | InfluxDB URL |
| org | string | "my-org" | Organization (v2+) |
| bucket | string | "edgeflow" | Bucket/database name |
| token | string | "" | API token (use env var) |
| measurement | string | "msg.measurement" | Measurement name |
Data Structure
{
"measurement": "sensor_data",
"tags": {
"device": "pi-001",
"location": "greenhouse"
},
"fields": {
"temperature": 23.5,
"humidity": 45.2
},
"timestamp": 1640000000000000000 // nanoseconds (optional)
} Measurement: Like a table name
Tags: Indexed metadata (strings)
Fields: Actual values (any type)
Example: Flux Queries
// Get last hour of temperature data
from(bucket: "edgeflow")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "sensor_data")
|> filter(fn: (r) => r._field == "temperature")
|> filter(fn: (r) => r.device == "pi-001")
// Calculate hourly averages
from(bucket: "edgeflow")
|> range(start: -24h)
|> filter(fn: (r) => r._measurement == "sensor_data")
|> aggregateWindow(every: 1h, fn: mean)
// Alert on threshold
from(bucket: "edgeflow")
|> range(start: -5m)
|> filter(fn: (r) => r._field == "temperature")
|> filter(fn: (r) => r._value > 30) Grafana Integration
InfluxDB integrates natively with Grafana for beautiful real-time dashboards.
sensors → influxdb → Grafana Dashboard