Line Protocol Reference
Line Protocol Format
Each line represents a single data point. Format: measurement[,tag_key=tag_val ...] field_key=field_val [timestamp]
# Format (spaces are significant!)
# measurement,tag_key=tag_val field_key=field_val timestamp
# ^ ^ ^
# comma (no space) space space
# Example: CPU metrics
cpu,host=server01,region=us-east usage_user=23.4,usage_system=5.1 1609459200000000000
# Multiple fields (comma-separated, no spaces around =)
temperature,location=room1,sensor=dht22 celsius=22.5,humidity=45.2
# No tags (jump straight to fields after measurement)
disk_io read_bytes=1048576i,write_bytes=524288i
# Omit timestamp: InfluxDB uses server time
cpu,host=web01 usage_user=12.5
Data Types
# Float (default for undecorated numbers)
temperature value=22.5
temperature value=2.25e1
# Integer (append 'i')
requests count=1000i
bytes_sent total=1048576i
# Unsigned integer (append 'u')
uptime seconds=86400u
# String (double-quoted)
status message="all systems operational"
# Boolean
service active=true
service active=false
service active=t # shorthand: t/f/T/F/TRUE/FALSE
# Tag values are always strings (no suffix needed)
cpu,host=server01,region=us-east usage=22.4
# Timestamps (nanoseconds by default)
# ns: 1609459200000000000
# us: 1609459200000000
# ms: 1609459200000
# s: 1609459200
Escaping Special Characters
# In measurement name: escape comma, space
my\ measurement,tag=val field=1i
my\,measurement,tag=val field=1i
# In tag keys/values: escape comma, space, equals
cpu,host=my\ server usage=22.4
cpu,app=key\=value usage=22.4
# In field keys: escape comma, space, equals
cpu,host=s1 field\ key=1i
# In field string values: escape double-quotes, backslash
status message="system \"ok\""
# Timestamp precision when writing via API
# ?precision=s seconds
# ?precision=ms milliseconds
# ?precision=us microseconds
# ?precision=ns nanoseconds (default)
Writing Data via HTTP API
# InfluxDB 2.x write endpoint
curl -XPOST "http://localhost:8086/api/v2/write?org=myorg&bucket=metrics&precision=ns" \
--header "Authorization: Token my_api_token" \
--header "Content-Type: text/plain; charset=utf-8" \
--data-binary 'cpu,host=s1 usage=22.4 1609459200000000000
temperature,sensor=t1 celsius=20.1 1609459200000000000'
# InfluxDB 1.x write endpoint
curl -XPOST "http://localhost:8086/write?db=mydb" \
--data-binary 'cpu,host=s1 usage=22.4'
# Batch writes: newline-separated points
# Max recommended batch size: 5000 lines or 5 MB
Tags vs. Fields
| Tags | Fields | |
|---|---|---|
| Type | String only | Float, int, uint, string, bool |
| Indexed | Yes (inverted index) | No |
| Filter in query | Fast | Slower (scan) |
| Cardinality | Keep low (avoid UUIDs) | Any |
| Use for | host, region, env, sensor_id | Measured values (temperature, bytes) |