18. 1411725015746208/48:-4.558/23000 water.temp{sensorid=42,sensornet=X} 16.9
TIMESTAMP [LOCATION] [ELEVATION] CLASS LABELS VALUE
Timestamp confgurable from ms to ns precision
Location stored with 32 bits precision for latitude and longitude
Elevation is a 64 bits LONG, assumed to be expressed in mm
Class can be any valid UTF-8 sequence (URL % Encoded) – type of sensor
Labels are immutable K/V pairs of UTF-8 sequences (URL % encoded) – id in class
Attributes are mutable K/V pairs which can be associated with a Geo Time Series (GTS)
Values can be LONG, DOUBLE, BOOLEAN or UTF-8 STRING
19. Pushing data is a HTTP request away!
POST /api/v0/update HTTP/1.1
Host: warp.cityzendata.net
Transfer-Encoding: chunked
Content-Type: text/plain ← we also support application/gzip with a gzipped body
X-Warp10-Token: MySecretToken
X-Warp10-Now: 1442558287045000
Connection: close
1442558287045000// linux.proc.vmstat.pgmajfault{cell=prod,dc=rbx4,hname=prod-6,rack=55c14} 15429
1442558287045000// linux.proc.vmstat.pgrefill_dma{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 0
1442558287045000// linux.proc.vmstat.pgrefill_dma32{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 992
1442558287045000// linux.proc.vmstat.pgrefill_normal{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 1321759
1442558287045000// linux.proc.vmstat.pgrefill_movable{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 0
=1442558287046000// 0
=1442558287047000// 0
=1442558287048000// 0
// foo{label=value} 'String%20value'
=T+1000// bar{label=value} T
=T-1000// foobar{label=value} 1234.5
20. Or pushed on a WebSocket
UPDATE MySecretToken
1442558287045000// linux.proc.vmstat.pgrefill_dma{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 0
1442558287045000// linux.proc.vmstat.pgrefill_dma32{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 992
1442558287045000// linux.proc.vmstat.pgrefill_normal{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 1321759
1442558287045000// linux.proc.vmstat.pgrefill_movable{cell=prod,dc=rbx4,hname=prod-2,rack=55c14} 0
=1442558287046000// 0
=1442558287047000// 0
=1442558287048000// 0
// foo{label=value} 'String%20value'
=T+1000// bar{label=value} T
=T-1000// foobar{label=value} 1234.5
26. No SDK, simply use HTTP and JSON libs
POST /dist/api/v0/exec HTTP/1.1
Host: warp.cityzendata.net
Content-Length: 358
content-type: application/x-www-form-urlencoded; charset=UTF-8
Referer: https://api0.cityzendata.net/widgets/static/
'lMYI.....Kpnl9Lk' 'token' STORE
NOW 'now' STORE
'PT2h' DURATION 'duration' STORE
// Fetch raw data
[ $token '~.*ingress.*requests' { 'cell' 'prod' } $now $duration ] FETCH
// Compute QPS
[ SWAP mapper.rate 1 0 0 ] MAP
'Hello'
NOW
27. Build complex systems
WEBCALL allows to issue HTTP calls from within WarpScript
UPDATE enables storing new data from within WarpScript
META can set attributes for specifc Geo Time Series®
Runner can schedule WarpScript programs periodically
Right within Warp 10
39. Provide, replace or complement these
Time series databases
Data historians
IoT analytics platforms
OpenTSDB / KairosDB / InfluxDB / Prometheus
OSISoft Pi / Proprietary solutions /
Sensor data processing solution
Monitoring / alerting platform
Time series manipulation library