Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03

Warp 10
Mathias Herberts - @herberts
@warp10io – @CityzenData
Introduction
Our singular history
First focus on Smart Fabric Then all verticals with sensors
Architecture
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03
Security
Privacy / Integrity / Authorization
Ingesting Data
Warp 10 manages Geo Time Series®
+
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
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
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
Performance is great!
Manipulating Data
A stack based language designed for working with Geo Time Series®
A feature rich language
600+functions
5high level frameworks
BUCKETIZE MAP REDUCE APPLY FILTER
Loops, Conditionals, Server Side Macros, Java UDFs
Support for alternate scripting languages
JSR 223
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
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
Visualizing Data
Quantum, a WarpScript execution widget
Quantum-viz graphing widget
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<script src="https://api0.cityzendata.net/widgets/quantumviz/webcomponentsjs/webcomponents.js"></script>
<link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/polymer/polymer.html">
<link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/warp10-quantumviz/warp10-quantumviz.html">
<body>
<warp10-quantumviz
width="500" height="400"
show-axis="true" tooltip="true" line-width="2" reload="0"
host="https://warp.cityzendata.net/dist" >
NEWGTS
1 720
<% DUP 'i' STORE 10000000 * NaN NaN NaN $i TORADIANS COS ADDVALUE %>
FOR
[ SWAP ] 'gts' STORE
[ { 'color' '#00d4ff' 'key' 'Sine' } ] 'params' STORE
{ 'interpolate' 'linear' } 'globalParams' STORE
{ 'gts' $gts 'params' $params 'globalParams' $globalParams }
</warp10-quantumviz>
</body>
</html>
Integration
WarpScript <3 Processing
800 'width' STORE 800 'height' STORE
$width $height '2D' PGraphics
400.0 'maxspeed' STORE 40000.0 'maxalt' STORE
3.0 2.0 2.0 @orbit/heatmap/kernel/triangular 'kernel' STORE
@orbit/heatmap/palette/classic 'palette' STORE
'MULTIPLY' PblendMode 'CENTER' PimageMode
'TOKEN''token' STORE
[ $token '~(ALT|CAS)' {} NOW -2000000 ] FETCH
DUP 0 GET LASTTICK 'now' STORE
[ SWAP bucketizer.last $now STU 0 ] BUCKETIZE
// Create heatmap
<%
7 GET
LIST-> DROP 'CAS' STORE 'ALT' STORE
<% $CAS ISNULL NOT $ALT ISNULL NOT && %>
<% $kernel $CAS $maxspeed / $width * $ALT $maxalt / 1.0 SWAP -
$height * Pimage %>
IFT
0 NaN NaN NaN NULL
%> MACROREDUCER 'GRAPHER' STORE
[ SWAP [] $GRAPHER ] REDUCE DROP
// Colorize
Ppixels
<% DROP Palpha $palette SWAP GET %> LMAP
PupdatePixels
Pencode Pdecode
$width $height '2D' PGraphics
// Do the grid
PnoFill 0 0 $width 1 - $height 1 - Prect
2.0 PstrokeWeight 200.0 Pcolor Pstroke
250.0 $maxspeed / $width * DUP 0 SWAP $height Pline
0 10000 $maxalt / 1.0 SWAP - $height * DUP $width SWAP Pline
SWAP 0 0 Pimage
Pencode
Quantum-image image display widget
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://api0.cityzendata.net/widgets/quantumviz/webcomponentsjs/webcomponents.js"></script>
<link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/polymer/polymer.html">
<link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/warp10-quantumviz/quantumviz-warpscript-image.html">
<body>
<warp10-img
width="300" height="300" reload="0"
host="https://warp.cityzendata.net/dist">
200 'width' CSTORE 200 'height' CSTORE
$width $height '2D' Pgraphics
Ppixels
<% DROP DROP RAND 0xFFFFFFFF * TOLONG %> LMAP
PupdatePixels Pencode
</warp10-img>
</body>
</html>
Use any JavaScript library
Real-Time and Batch
Plasma and Mobius
Stream raw data (Plasma) or WarpScript results (Mobius)
Use WarpScript from other tools
Use Cases
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
www.warp10.io – github.com/cityzendata
contact @ cityzendata . com
1 of 41

Recommended

Leveraging Hadoop for Legacy Systems by
Leveraging Hadoop for Legacy SystemsLeveraging Hadoop for Legacy Systems
Leveraging Hadoop for Legacy SystemsMathias Herberts
838 views35 slides
This is not your father's monitoring. by
This is not your father's monitoring.This is not your father's monitoring.
This is not your father's monitoring.Mathias Herberts
1.2K views60 slides
Artimon - Apache Flume (incubating) NYC Meetup 20111108 by
Artimon - Apache Flume (incubating) NYC Meetup 20111108Artimon - Apache Flume (incubating) NYC Meetup 20111108
Artimon - Apache Flume (incubating) NYC Meetup 20111108Mathias Herberts
3.3K views20 slides
No more (unsecure) secrets, Marty by
No more (unsecure) secrets, MartyNo more (unsecure) secrets, Marty
No more (unsecure) secrets, MartyMathias Herberts
860 views37 slides
2013 0928 programming by cuda by
2013 0928 programming by cuda2013 0928 programming by cuda
2013 0928 programming by cuda小明 王
341 views28 slides
glance replicator by
glance replicatorglance replicator
glance replicatoririx_jp
3.6K views15 slides

More Related Content

What's hot

Using ngx_lua in UPYUN by
Using ngx_lua in UPYUNUsing ngx_lua in UPYUN
Using ngx_lua in UPYUNCong Zhang
13K views45 slides
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이 by
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이GangSeok Lee
1.7K views79 slides
Study of aloha protocol using ns2 network java proram by
Study of aloha protocol using ns2 network java proramStudy of aloha protocol using ns2 network java proram
Study of aloha protocol using ns2 network java proramMeenakshi Devi
2.7K views2 slides
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open by
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenJohn Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenPostgresOpen
3.6K views73 slides
Devinsampa nginx-scripting by
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scriptingTony Fabeen
1.8K views45 slides
RestMQ - HTTP/Redis based Message Queue by
RestMQ - HTTP/Redis based Message QueueRestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message QueueGleicon Moraes
121.4K views25 slides

What's hot(20)

Using ngx_lua in UPYUN by Cong Zhang
Using ngx_lua in UPYUNUsing ngx_lua in UPYUN
Using ngx_lua in UPYUN
Cong Zhang13K views
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이 by GangSeok Lee
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
GangSeok Lee1.7K views
Study of aloha protocol using ns2 network java proram by Meenakshi Devi
Study of aloha protocol using ns2 network java proramStudy of aloha protocol using ns2 network java proram
Study of aloha protocol using ns2 network java proram
Meenakshi Devi2.7K views
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open by PostgresOpen
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenJohn Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
PostgresOpen3.6K views
Devinsampa nginx-scripting by Tony Fabeen
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scripting
Tony Fabeen1.8K views
RestMQ - HTTP/Redis based Message Queue by Gleicon Moraes
RestMQ - HTTP/Redis based Message QueueRestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Gleicon Moraes121.4K views
Новый InterSystems: open-source, митапы, хакатоны by Timur Safin
Новый InterSystems: open-source, митапы, хакатоныНовый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоны
Timur Safin390 views
Riak at The NYC Cloud Computing Meetup Group by siculars
Riak at The NYC Cloud Computing Meetup GroupRiak at The NYC Cloud Computing Meetup Group
Riak at The NYC Cloud Computing Meetup Group
siculars1.4K views
Clojure ♥ cassandra by Max Penet
Clojure ♥ cassandra Clojure ♥ cassandra
Clojure ♥ cassandra
Max Penet1.6K views
Redis & ZeroMQ: How to scale your application by rjsmelo
Redis & ZeroMQ: How to scale your applicationRedis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
rjsmelo23.4K views
Migrating KSM page causes the VM lock up as the KSM page merging list is too ... by Gavin Guo
Migrating KSM page causes the VM lock up as the KSM page merging list is too ...Migrating KSM page causes the VM lock up as the KSM page merging list is too ...
Migrating KSM page causes the VM lock up as the KSM page merging list is too ...
Gavin Guo937 views
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL) by Altinity Ltd
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
Altinity Ltd2.3K views
Lua tech talk by Locaweb
Lua tech talkLua tech talk
Lua tech talk
Locaweb2.3K views
Redis for the Everyday Developer by Ross Tuck
Redis for the Everyday DeveloperRedis for the Everyday Developer
Redis for the Everyday Developer
Ross Tuck70.9K views
Start Wrap Episode 11: A New Rope by Yung-Yu Chen
Start Wrap Episode 11: A New RopeStart Wrap Episode 11: A New Rope
Start Wrap Episode 11: A New Rope
Yung-Yu Chen335 views
Dynamo: Not Just For Datastores by Susan Potter
Dynamo: Not Just For DatastoresDynamo: Not Just For Datastores
Dynamo: Not Just For Datastores
Susan Potter1.7K views

Similar to Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03

Kubernetes internals (Kubernetes 해부하기) by
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)DongHyeon Kim
2.2K views52 slides
2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo... by
2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo...2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo...
2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo...Mathias Herberts
198 views46 slides
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center by
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterAndrey Kudryavtsev
44 views15 slides
Octo talk : docker multi-host networking by
Octo talk : docker multi-host networking Octo talk : docker multi-host networking
Octo talk : docker multi-host networking Hervé Leclerc
8.3K views29 slides
Open stack pike-devstack-tutorial by
Open stack pike-devstack-tutorialOpen stack pike-devstack-tutorial
Open stack pike-devstack-tutorialEueung Mulyana
489 views40 slides
Multicloud connectivity using OpenNHRP by
Multicloud connectivity using OpenNHRPMulticloud connectivity using OpenNHRP
Multicloud connectivity using OpenNHRPBob Melander
1.2K views30 slides

Similar to Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03(20)

Kubernetes internals (Kubernetes 해부하기) by DongHyeon Kim
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
DongHyeon Kim2.2K views
2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo... by Mathias Herberts
2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo...2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo...
2019-09-25 Paris Time Series Meetup - Warp 10 - Advanced Time Series Technolo...
Mathias Herberts198 views
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center by Andrey Kudryavtsev
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
Octo talk : docker multi-host networking by Hervé Leclerc
Octo talk : docker multi-host networking Octo talk : docker multi-host networking
Octo talk : docker multi-host networking
Hervé Leclerc8.3K views
Open stack pike-devstack-tutorial by Eueung Mulyana
Open stack pike-devstack-tutorialOpen stack pike-devstack-tutorial
Open stack pike-devstack-tutorial
Eueung Mulyana489 views
Multicloud connectivity using OpenNHRP by Bob Melander
Multicloud connectivity using OpenNHRPMulticloud connectivity using OpenNHRP
Multicloud connectivity using OpenNHRP
Bob Melander1.2K views
DPDK in Containers Hands-on Lab by Michelle Holley
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
Michelle Holley10.3K views
Présentation Ikoula au Meet-up Docker à l'école 42 by Ikoula
Présentation Ikoula au Meet-up Docker à l'école 42Présentation Ikoula au Meet-up Docker à l'école 42
Présentation Ikoula au Meet-up Docker à l'école 42
Ikoula3.4K views
Mise en place d'un client VPN l2tp IPsec sous docker by Nicolas Trauwaen
Mise en place d'un client VPN l2tp IPsec sous dockerMise en place d'un client VPN l2tp IPsec sous docker
Mise en place d'un client VPN l2tp IPsec sous docker
Nicolas Trauwaen6.5K views
Kubernetes Basic Operation by Simon Su
Kubernetes Basic OperationKubernetes Basic Operation
Kubernetes Basic Operation
Simon Su514 views
Opentalk at Large - StS 2005 by Martin Kobetic
Opentalk at Large - StS 2005Opentalk at Large - StS 2005
Opentalk at Large - StS 2005
Martin Kobetic479 views
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go by ScyllaDB
Capturing NIC and Kernel TX and RX Timestamps for Packets in GoCapturing NIC and Kernel TX and RX Timestamps for Packets in Go
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
ScyllaDB680 views
Couch to OpenStack: Cinder - August 6, 2013 by Trevor Roberts Jr.
Couch to OpenStack: Cinder - August 6, 2013Couch to OpenStack: Cinder - August 6, 2013
Couch to OpenStack: Cinder - August 6, 2013
Trevor Roberts Jr.4.2K views
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる by JUNICHI YOSHISE
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみるK8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
JUNICHI YOSHISE2.2K views
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn by Trevor Roberts Jr.
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean WinnCouch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Trevor Roberts Jr.4.9K views
DCUS17 : Docker networking deep dive by Madhu Venugopal
DCUS17 : Docker networking deep diveDCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep dive
Madhu Venugopal83.6K views
Openstack 101 by POSSCON
Openstack 101Openstack 101
Openstack 101
POSSCON892 views

More from Mathias Herberts

20170516 hug france-warp10-time-seriesanalysisontopofhadoop by
20170516 hug france-warp10-time-seriesanalysisontopofhadoop20170516 hug france-warp10-time-seriesanalysisontopofhadoop
20170516 hug france-warp10-time-seriesanalysisontopofhadoopMathias Herberts
233 views52 slides
IoT Silicon Valley - Cityzen Sciences and Cityzen Data presentation by
IoT Silicon Valley - Cityzen Sciences and Cityzen Data presentationIoT Silicon Valley - Cityzen Sciences and Cityzen Data presentation
IoT Silicon Valley - Cityzen Sciences and Cityzen Data presentationMathias Herberts
1.6K views52 slides
Big Data - Open Coffee Brest - 20121121 by
Big Data - Open Coffee Brest - 20121121Big Data - Open Coffee Brest - 20121121
Big Data - Open Coffee Brest - 20121121Mathias Herberts
1.1K views49 slides
Big Data Tribute by
Big Data TributeBig Data Tribute
Big Data TributeMathias Herberts
350 views1 slide
Hadoop Pig Syntax Card by
Hadoop Pig Syntax CardHadoop Pig Syntax Card
Hadoop Pig Syntax CardMathias Herberts
2.5K views2 slides
Hadoop Pig by
Hadoop PigHadoop Pig
Hadoop PigMathias Herberts
4K views52 slides

More from Mathias Herberts(8)

20170516 hug france-warp10-time-seriesanalysisontopofhadoop by Mathias Herberts
20170516 hug france-warp10-time-seriesanalysisontopofhadoop20170516 hug france-warp10-time-seriesanalysisontopofhadoop
20170516 hug france-warp10-time-seriesanalysisontopofhadoop
Mathias Herberts233 views
IoT Silicon Valley - Cityzen Sciences and Cityzen Data presentation by Mathias Herberts
IoT Silicon Valley - Cityzen Sciences and Cityzen Data presentationIoT Silicon Valley - Cityzen Sciences and Cityzen Data presentation
IoT Silicon Valley - Cityzen Sciences and Cityzen Data presentation
Mathias Herberts1.6K views
Big Data - Open Coffee Brest - 20121121 by Mathias Herberts
Big Data - Open Coffee Brest - 20121121Big Data - Open Coffee Brest - 20121121
Big Data - Open Coffee Brest - 20121121
Mathias Herberts1.1K views
WebScale Computing and Big Data a Pragmatic Approach by Mathias Herberts
WebScale Computing and Big Data a Pragmatic ApproachWebScale Computing and Big Data a Pragmatic Approach
WebScale Computing and Big Data a Pragmatic Approach
Mathias Herberts577 views

Recently uploaded

Five Things You SHOULD Know About Postman by
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
33 views43 slides
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院IttrainingIttraining
52 views8 slides
Info Session November 2023.pdf by
Info Session November 2023.pdfInfo Session November 2023.pdf
Info Session November 2023.pdfAleksandraKoprivica4
12 views15 slides
Mini-Track: Challenges to Network Automation Adoption by
Mini-Track: Challenges to Network Automation AdoptionMini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation AdoptionNetwork Automation Forum
12 views27 slides
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
55 views46 slides
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensorssugiuralab
19 views15 slides

Recently uploaded(20)

Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman33 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab19 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software263 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely21 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2217 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive

Warp 10 Platform Presentation - Criteo Beer & Tech 2016-02-03

  • 1. Warp 10 Mathias Herberts - @herberts @warp10io – @CityzenData
  • 3. Our singular history First focus on Smart Fabric Then all verticals with sensors
  • 15. Privacy / Integrity / Authorization
  • 17. Warp 10 manages Geo Time Series® +
  • 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
  • 23. A stack based language designed for working with Geo Time Series®
  • 24. A feature rich language 600+functions 5high level frameworks BUCKETIZE MAP REDUCE APPLY FILTER Loops, Conditionals, Server Side Macros, Java UDFs
  • 25. Support for alternate scripting languages JSR 223
  • 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
  • 29. Quantum, a WarpScript execution widget
  • 30. Quantum-viz graphing widget <!doctype html> <html> <head> <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes"> <script src="https://api0.cityzendata.net/widgets/quantumviz/webcomponentsjs/webcomponents.js"></script> <link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/polymer/polymer.html"> <link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/warp10-quantumviz/warp10-quantumviz.html"> <body> <warp10-quantumviz width="500" height="400" show-axis="true" tooltip="true" line-width="2" reload="0" host="https://warp.cityzendata.net/dist" > NEWGTS 1 720 <% DUP 'i' STORE 10000000 * NaN NaN NaN $i TORADIANS COS ADDVALUE %> FOR [ SWAP ] 'gts' STORE [ { 'color' '#00d4ff' 'key' 'Sine' } ] 'params' STORE { 'interpolate' 'linear' } 'globalParams' STORE { 'gts' $gts 'params' $params 'globalParams' $globalParams } </warp10-quantumviz> </body> </html>
  • 32. WarpScript <3 Processing 800 'width' STORE 800 'height' STORE $width $height '2D' PGraphics 400.0 'maxspeed' STORE 40000.0 'maxalt' STORE 3.0 2.0 2.0 @orbit/heatmap/kernel/triangular 'kernel' STORE @orbit/heatmap/palette/classic 'palette' STORE 'MULTIPLY' PblendMode 'CENTER' PimageMode 'TOKEN''token' STORE [ $token '~(ALT|CAS)' {} NOW -2000000 ] FETCH DUP 0 GET LASTTICK 'now' STORE [ SWAP bucketizer.last $now STU 0 ] BUCKETIZE // Create heatmap <% 7 GET LIST-> DROP 'CAS' STORE 'ALT' STORE <% $CAS ISNULL NOT $ALT ISNULL NOT && %> <% $kernel $CAS $maxspeed / $width * $ALT $maxalt / 1.0 SWAP - $height * Pimage %> IFT 0 NaN NaN NaN NULL %> MACROREDUCER 'GRAPHER' STORE [ SWAP [] $GRAPHER ] REDUCE DROP // Colorize Ppixels <% DROP Palpha $palette SWAP GET %> LMAP PupdatePixels Pencode Pdecode $width $height '2D' PGraphics // Do the grid PnoFill 0 0 $width 1 - $height 1 - Prect 2.0 PstrokeWeight 200.0 Pcolor Pstroke 250.0 $maxspeed / $width * DUP 0 SWAP $height Pline 0 10000 $maxalt / 1.0 SWAP - $height * DUP $width SWAP Pline SWAP 0 0 Pimage Pencode
  • 33. Quantum-image image display widget <!doctype html> <html> <head> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://api0.cityzendata.net/widgets/quantumviz/webcomponentsjs/webcomponents.js"></script> <link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/polymer/polymer.html"> <link rel="import" href="https://api0.cityzendata.net/widgets/quantumviz/warp10-quantumviz/quantumviz-warpscript-image.html"> <body> <warp10-img width="300" height="300" reload="0" host="https://warp.cityzendata.net/dist"> 200 'width' CSTORE 200 'height' CSTORE $width $height '2D' Pgraphics Ppixels <% DROP DROP RAND 0xFFFFFFFF * TOLONG %> LMAP PupdatePixels Pencode </warp10-img> </body> </html>
  • 36. Plasma and Mobius Stream raw data (Plasma) or WarpScript results (Mobius)
  • 37. Use WarpScript from other tools
  • 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