Upgrade to Pro — share decks privately, control downloads, hide ads and more …

All Things Open 2018

All Things Open 2018

Noah Crowley

October 23, 2018
Tweet

More Decks by Noah Crowley

Other Decks in Technology

Transcript

  1. A time series is a series of data points indexed

    (or listed or graphed) in time order.
  2. Hardware evolution & reduced cost • Gains in process efficiencies:

    • More chips, cheaper chips, lower power chips • Large numbers of inexpensive, fairly accurate sensors • Increased availability of SoCs
  3. IoT data must be: • Timely – ingestion rates and

    query efficiency is key • Accurate – data integrity and platform reliability is important • Actionable – data visualization, anomaly detection & alerting are essential • Deployable – in the datacenter and at the edge
  4. Where to collect your data • Distributed Collection vs. Centralized

    Collection • How is the data used? • Who uses the data?
  5. Collect in the cloud • All data flows directly to

    the cloud • Analysis and visualization from anywhere • Take advantage of Infrastructure-as-a-Service • At the mercy of your network connection…
  6. Collect at the device • Data is collected close to

    the sensor • Local processing and analysis • Unreliable back-haul network • No requirement for centralized storage or analysis
  7. Distributed data collection • Data is fed to multiple collection

    points • Collection points feed back-end system of record • Distributes data collection load • More tolerant of network outages
  8. Data layer architecture • Data is collected at the edge,

    close to the sensor • Edge collectors are also capable of processing the data • Edge collectors can handle local events & trigger actuation • Data forwarded to a centralized back-end • Can be down-sampled to reduce network costs
  9. IoT Platform Hardware Needs • Extensive protocol support for data

    ingestion • BLE, Zigbee, Zwave, CoAP, MQTT, MODBUS • Storage for local data • Ideally runs a full-fledged OS
  10. Edge Device Components • Pine-64 LTS Main Board ($32.00) •

    WiFi/BLE card ($9.99) • 7” TFT Touchscreen ($35.99) • Pine64 Playbox Enclosure ($9.99) • LiPo Battery ($21.99) • LoRa Board ($19.95)
  11. Pine64 • Quad-core ARM A53 64-bit • 2GB LPDDR3 RAM

    • GPIO • UART • I2C • SPI • LTS version committed to supply until 2022
  12. BLE Sensor Node • Nordic nRF52DK Developer Kit • SenseAir

    K30 CO2 sensor • 4700µF Capacitor • 9v Boost Converter
  13. LoRa Sensor Node • Pocket Geiger Radiation Sensor • Wemos

    D1 Mini • LoRa Radio BoardA White LED
  14. IoT Platform Software Needs • Hardware-agnostic, scalable architecture • Comprehensive

    analytics and visualization tools • Robust Offline Data Capability
  15. Robust Offline Data Capability • Normalization & storage of data

    • Downsample before forwarding to reduce bandwidth usage • Local Event Processing Engine
  16. Telegraf • 100% Open Source • Plugin-driven architecture • Over

    150 plugins: Inputs, Outputs, Processors, Aggregators • Easy to extend • Majority of development is community driven
  17. InfluxDB • Architected for Time Series Data • High rate

    of ingest • Efficient compression and storage on disk • Time-based functionality built-in • Downsampling
  18. Installing the InfluxData Platform $ curl -sL https://repos.influxdata.com/influxdb.key | sudo

    apt-key add - $ source /etc/lsb-release $ echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list sudo apt-get update $ sudo apt-get install influxdb chronograf telegraf kapacitor
  19. Kapacitor • Data processing engine — stream or batch •

    Downsampling, etc. • Anomaly detection • Alerting
  20. TICKscript • AlertNode • BarrierNode • BatchNode • ChangeDetectNode •

    CombineNode • DefaultNode • DeleteNode • DerivativeNode • EC2AutoscaleNode • EvalNode • FlattenNode • FromNode • GroupByNode • HTTPOutputNode • HTTPPostNode • InfluxDBOutputNode • InfluxQLNode • JoinNode • K8sAutoscaleNode • Kapacitor LoopbackNode • LogNode • NoOpNode • QueryNode • SampleNode • ShiftNode • SideloadNode • StateCountNode • StateDurationNode • StatsNode • StreamNode • SwarmAutoscaleNode • UDF (User Defined Function)Node • UnionNode • WhereNode • WindowNode
  21. Kapacitor Alerting • Alert Types: • Threshold Alert • Deadman

    Alert • Alerts based on Calculated Value • Alert Mechanisms: • TCP/HTTP • Pager Duty • MQTT
  22. Join Our Community! • On the Web: https://community.influxdata.com • On

    GitHub: https://github.com/influxdata • On Slack: https://gophersinvite.herokuapp.com & join #influxdb • On Twitter: @InfluxDB and @noahcrowley