time series database and tick stack

40
Time Series Data Tick Stack

Upload: gianluca-arbezzano

Post on 16-Apr-2017

754 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Time Series Database and Tick Stack

Time Series DataTick Stack

Page 2: Time Series Database and Tick Stack

Hello!

I am Gianluca ArbezzanoSoftware Engineer at CurrencyFair

@gianarb on Twitter and GitHub

2

Page 3: Time Series Database and Tick Stack

3

Open Source Maintainer and Contributors

penny.gianarb.it vim-php.org

Page 4: Time Series Database and Tick Stack

4

scaledocker.comThe book that drives you in production with

docker

Page 5: Time Series Database and Tick Stack

“Try again. Fail again.Fail better.”cit. Samuel Beckett

5

Page 6: Time Series Database and Tick Stack

Trust your system

To be familiar with your applications you need to know what they are doing.

6

Page 7: Time Series Database and Tick Stack

1

Widespread Monitoring Tools

tail -f /var/log/app.log

7

Page 8: Time Series Database and Tick Stack

8

Page 9: Time Series Database and Tick Stack

9

2016/04/15 15:42:46 [warn] 2330#0: *167 using uninitialized variable, client: 10.0.1.1, server: localhost.dev, request: "POST /auth HTTP/1.1", host: "localhost"

2016/04/15 15:44:44 [error] 2330#0: *171 FastCGI sent in stderr: " PHP message: PHP Fatal error: Uncaught exception 'RuntimeException' with message 'All broken)[500]' in /var/www/my/project.php:237

Stack trace:#0 /var/www/index.php:45 ObjectService->flush()#1 [internal function] ->save()

Page 10: Time Series Database and Tick Stack

2

Expensive to store

10

Page 11: Time Series Database and Tick Stack

2

Difficult to index

11

Page 12: Time Series Database and Tick Stack

Difficult not impossible

They do an amazing work. And there are other tools!!

12

Page 13: Time Series Database and Tick Stack

They are awesome for some use cases

▪ Extract informations

▪ They can be “human readable”

▪ … and others, and others

13

Page 14: Time Series Database and Tick Stack

Keep your life amazing

Reduce your time series to a timestamp

and a value (int or float)

14

This is cheap and useful

Page 15: Time Series Database and Tick Stack

We are here to speak about Time Series

[ { "name": "log_lines", "columns": ["time", "line"], "point": [1400425947368, "here's some useful log info"] }]

15

Page 16: Time Series Database and Tick Stack

EASY! EASY! EASY!

{ "name": "cpu_percent_use", "columns": ["value"], "point": 40}

16

Page 17: Time Series Database and Tick Stack

““Any intelligent fool can make things

bigger, more complex, and more violent. It takes a touch of genius — and a lot of

courage to move in the opposite direction.”

Cit. Ernest F. Shumacher

17

Page 18: Time Series Database and Tick Stack

Time is a perfect sharding key

It means that Time Series scale really well

18

Page 19: Time Series Database and Tick Stack

We have a set of tools to use

19

Page 20: Time Series Database and Tick Stack

20

InfluxDB

● Optimized to store time series data

● Open Source and easy to install (go

binary)

● Big community and ecosystem to

manage alert and collect metrics

Page 21: Time Series Database and Tick Stack

21

Easy

Install and start a go binary

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.0.0_amd64.debsudo dpkg -i influxdb_1.0.0_amd64.debInfluxd -config /usr/local/etc/influxdb.conf

Page 22: Time Series Database and Tick Stack

22

Easy

HTTP API on port 8086

Support for UDP connections

Admin Panel on port 8083

Page 23: Time Series Database and Tick Stack

23

Easy

SELECT value

FROM cpu_load_short

WHERE region='us-west'

Page 24: Time Series Database and Tick Stack

24

T-Shirts time!

Page 25: Time Series Database and Tick Stack

25

Page 26: Time Series Database and Tick Stack

26

Page 27: Time Series Database and Tick Stack

27

[key] [fields] [timestamp]temperature,machine=unit internal=3,external=10 1434055562000000035

Inline Protocol thinked to be smart and slim

Page 28: Time Series Database and Tick Stack

28

Corley\Benchmarks\InfluxDB\AdapterEvent Method Name Iterations Average Time Ops/second ------------------------ ------------ -------------- ------------- sendDataUsingHttpAdapter: [1,000 ] [0.0026700308323] [374.52751] sendDataUsingUdpAdapter : [1,000 ] [0.0000436344147] [22,917.69026]

UDP vs TCP protocol

Page 29: Time Series Database and Tick Stack

29

CREATE CONTINUOUS QUERY minnie ON world BEGIN SELECT min(mouse) INTO min_mouse FROM zoo GROUP BY time(30m) END

Continuous Query

Page 30: Time Series Database and Tick Stack

Telegrafhttps://github.com/influxdata/telegraf

Collector to grab and send data from different sources to InfluxDB and other databases

30

Based on Input and out Plugin System

Page 31: Time Series Database and Tick Stack

31

Telegraf Plugins

Page 32: Time Series Database and Tick Stack

Kapacitorhttps://github.com/influxdata/kapacitor

Trigger notifications and make action in case of specific

behaviors

32

framework for processing, monitoring, and alerting on time series data

Page 33: Time Series Database and Tick Stack

33

Kapacitor high CPU alert

stream

|from()

.measurement('cpu_usage_idle')

.groupBy('host')

|window()

.period(1m)

.every(1m)

|mean('value')

|eval(lambda: 100.0 - "mean").as('used')

|alert()

.message('{{ .Level}}: {{ .Name }}/{{ index .Tags "host" }} has high cpu: {{ index .Fields "used" }}')

.warn(lambda: "used" > 70.0)

.crit(lambda: "used" > 85.0)

// Send alert to hander of choice.

// Slack

.slack()

.channel('#alerts')

// PagerDuty

.pagerDuty()

Page 34: Time Series Database and Tick Stack

34

Demohttps://github.com/gianarb/tick-php

Page 35: Time Series Database and Tick Stack

35

When you start to work with "micro"services understand the topology of your connections is really important Time series can help you

Page 36: Time Series Database and Tick Stack

36

Use a dashboard to put together different metrics and create not obvious relations

Page 37: Time Series Database and Tick Stack

37

Why InfluxDB and not something else?https://www.influxdata.com/influxdb-is-27x-faster-vs-mongodb-for-time-series-workloads/

27x greater write throughput

84x less disk space

Page 38: Time Series Database and Tick Stack

38

That’s it!

A series of great tools to monitor your applications and your infrastructure

Page 39: Time Series Database and Tick Stack

39

A monitoring system isn’t for all

Page 40: Time Series Database and Tick Stack

Thanks!

See you around

twitter.com/gianarb

40