1 of 8

Snap + Kubernetes

by andrzej-k (Intel)

2 of 8

Snap overview

Why:

  • Make telemetry data available - to improve scheduling, allow for meaningful data analytics, flexible auto-scaling, to have insight into apps performance, ...

How:

  • Fully open source project - https://github.com/intelsdi-x/snap/
  • Plugin architecture for metrics collection, processing and publishing
  • Tasks define what to collect, how to process and where to publish
  • Tribe helps with manageability - group nodes and create agreements

3 of 8

Snap overview

4 of 8

Snap + Kubernetes

Why:

  • custom/service metrics can be added easily (with no code changes)
  • wealth of metrics that can be collected (incl. those collected by cAdvisor)
  • ability to push metrics to different endpoints
  • processing metrics in-place
  • zero downtime metrics update

Try it:

5 of 8

Snap + Kubernetes

How:

  • Snap is a daemon-set - addon in Kubernetes
  • Docker collector (for “core” metrics) and Heapster publisher plugins are pre-loaded
  • All snap daemons are forming one tribe
  • Heapster supports snap as data source
  • Other snap plugins can be used to collect custom/service metrics, process the data and push to different endpoints (for example: databases, message queues, etc.)
  • Snap is transparent to Heapster clients (for example: HPA)

6 of 8

Snap + Kubernetes

7 of 8

Demo

Highlights:

  • Snap running as daemon-set in Tribe mode
  • How to load a new plugin
  • What is a metrics catalog
  • How snap task looks like
  • How custom metrics are defined
  • What happens when new version of the plugin is loaded
  • How to collect app-level metrics

8 of 8

More info

Here: