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

TagsFields
TypeString onlyFloat, int, uint, string, bool
IndexedYes (inverted index)No
Filter in queryFastSlower (scan)
CardinalityKeep low (avoid UUIDs)Any
Use forhost, region, env, sensor_idMeasured values (temperature, bytes)