76
Anatoly Kulakov

Anatoly Kulakov - · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB 45. 46

Embed Size (px)

Citation preview

Page 1: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Anatoly Kulakov

Page 2: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

1

Page 3: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

2

Page 4: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Troubleshooting & Remediation- Where did the problem occur?

Performance & Cost- How my changes impact overall performance?

Learning & Improvement- Can I detect or prevent this problem in the future?

Trends- Do I need to scale?

Customer Experience- Are my customers getting a good experience?

3

Page 5: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

4https://www.youtube.com/watch?v=wy9YbBqhHqQ

Page 6: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

5

Page 7: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

6

Page 8: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

7

100 measurements200 hosts every 10 sec

× 86 400seconds in a day

172 800 000points per day

Page 9: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

8

https://www.i-scoop.eu/internet-of-things-guide/

Page 10: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

9

MetricsLogs

Page 11: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

10https://db-engines.com/en/ranking_categories

Page 12: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

11

Page 13: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

12

Page 14: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

13

Page 15: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

14

Page 16: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

15

Page 17: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

16

Page 18: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

17

Page 19: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

18

Page 20: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

19

Timestamp

2017-11-12T06:42:17

2017-11-12T06:43:18

Fields

rx = 42tx = 10

rx = 50tx = 88

Tags

host = devif = eth1

host = devif = wlan1

Network

Page 21: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

20

Timestamp Tags Fields

Network

Primary Key Indexed Column Not Indexed Column

Page 22: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

21

Timestamp Tags Fields

2017-11-12T06:42:17 42.0173, 1.0, …dev, eth1, …

Network

DateTime string[] double

8 bytes ≈ 24 bytes 8 bytes

Page 23: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

22

Page 24: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

23

Page 25: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

24

Network

Tags host = devif = eth1

host = devif = wlan1

network,host=dev,if=eth1

network,host=dev,if=wlan1

Page 26: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

25

2017-11-12T06:00:002017-11-12T06:00:052017-11-12T06:00:102017-11-12T06:00:15

-050505

Delta

--00

Delta 2

«We have found that about 96% of all time stampscan be compressed to a single bit.»

http://www.vldb.org/pvldb/vol8/p1816-teller.pdf

Page 27: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

26

Decimal

15.5

14.0625

3.25

8.625

Page 28: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

27

Decimal Double Representation

15.5 0x402f000000000000

14.0625 0x402c200000000000

3.25 0x400a000000000000

8.625 0x4021400000000000

Page 29: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

28

Decimal Double Representation XOR with previous

15.5 0x402f000000000000

14.0625 0x402c200000000000 0x0003200000000000

3.25 0x400a000000000000 0x0026200000000000

8.625 0x4021400000000000 0x002b400000000000

«Roughly 51% of all values are compressed to a single bit»

http://www.vldb.org/pvldb/vol8/p1816-teller.pdf

«… compress time series to an average of 1.37 bytes per point»

Page 30: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Performance Counters Third party statistics API Event Tracing for Windows Application measurements

29

Page 31: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

30

Page 32: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

31

Page 33: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

32

Page 34: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

33

Page 35: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

34https://db-engines.com/en/ranking_trend/time+series+dbms

Page 36: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Billions of individual data points High write throughput High read throughput Large deletes (data expiration) Mostly an insert/append workload, very few

updates

35

Page 37: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

36

Page 38: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

37

SELECT median(rx), mean(tx)FROM networkWHERE time > now() - 15mAND host = 'dev'

GROUP BY time(10s)

Page 39: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

38

Real time

10 sec

1 min

1 hour

Page 40: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

39

CPU: 4-6 coresRAM: 8-32 GBIOPS: 500-1000

Page 41: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

40

Load Field writes per second

Queries per second

Unique series

Low < 5 thousand < 5 < 100 thousand

Moderate < 250 thousand < 25 < 1 million

High > 250 thousand > 25 > 1 million

Infeasible > 750 thousand > 100 > 10 million

CPU: 4-6 coresRAM: 8-32 GBIOPS: 500-1000

https://docs.influxdata.com/influxdb/v1.3/guides/hardware_sizing/

Page 42: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

41

Page 43: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Write Performance

InfluxDB outperformed:

• MongoDB by 27x• Cassandra by 5x• Elasticsearch by 8x• OpenTSDB by 5x

42

InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB

https://www.influxdata.com/_resources/

Page 44: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Compression

InfluxDB outperformed:

• MongoDB by 84x• Cassandra by 9x• Elasticsearch by 16x• OpenTSDB by 16x

43

InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB

https://www.influxdata.com/_resources/

Page 45: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Query Performance

InfluxDB outperformed:

• MongoDB similarly• Cassandra by 168x• Elasticsearch by 10x• OpenTSDB by 4x

44

InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB

https://www.influxdata.com/_resources/

Page 46: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

45

Page 47: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

46

Page 48: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

Install Telegraf and Dashboard Install AppMetrics and Dashboard Use it Remove unnecessary metrics Add new application-specific metrics

47

Page 49: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

48

Demo powered by

Page 50: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

49

Demo powered by

Page 51: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

50

Page 52: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

51http://sarahwooders.blogspot.ru/2015/02/my-first-week-at-metropia-has-been.html

Page 53: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

52

Page 54: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

53

Page 55: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

54https://www.slideshare.net/nagarajc007/mobile-drunk-driver-detection

Page 56: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

55

Agent for collecting and reporting metrics

Page 57: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

56

Time series database

Page 58: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

57

User interface for:• monitoring• alert management• data visualization• db management

Page 59: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

58

Data processing framework for:• create alerts• run ETL jobs• detect anomalies

Page 60: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

59

Page 61: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

60

https://nssm.cc/

Page 62: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

61

Query and Write performance

Compression

Realtime Analysis

Statistics and Aggregation

Retention Policy

Continuous Queries

Downsampling

High Loads

High Throughput

Page 63: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

62

Query and Write performance

Compression

Realtime Analysis

Statistics and Aggregation

Retention Policy

Continuous Queries

Downsampling

High Loads

High Throughput

Page 64: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

63

Compression

Realtime Analysis

Statistics and Aggregation

Retention Policy

Continuous Queries

Downsampling

High Loads

High Throughput

Page 65: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

64

Compression

Realtime Analysis

Statistics and Aggregation

Retention Policy

Continuous Queries

Downsampling

High Loads

Page 66: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

65

Compression

Realtime Analysis

Statistics and Aggregation

Retention Policy

Continuous Queries

High Loads

Page 67: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

66

Compression

Realtime Analysis

Statistics and Aggregation

Retention Policy

High Loads

Page 68: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

67

Compression

Realtime Analysis

Retention Policy

High Loads

Page 69: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

68

Compression

Realtime Analysis

High Loads

Page 70: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

69

Realtime Analysis

High Loads

Page 71: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

70

Realtime Analysis

Page 72: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

71

Page 73: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

72

Page 75: Anatoly Kulakov -   · PDF fileAnatoly Kulakov. 1. 2 ... • OpenTSDB by 4x 44 InfluxDB MongoDB Cassandra Elasticsearch OpenTSDB   45. 46

InfluxData Docs (docs.influxdata.com)

Grafana Docs (docs.grafana.org)

App Metrics (app-metrics.io)

Non-Sucking Service Manager (nssm.cc)

74