Top Banner
OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna” Sigoure [email protected]
28

OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Mar 07, 2018

Download

Documents

hakhue
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

OpenTSDBA Distributed, Scalable, Time Series Database

“Monitoring at an unprecedented level of granularity”

Benoît “tsuna” [email protected]

Page 5: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

No SPoF

Page 7: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Design Goals

• Distributed storage of monitoring data

• No Single Point of Failure

• Pulling custom graphs must be trivial & fast

• Scale to:

• Thousands of machines

• Many billions of data points

Page 8: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Key concepts

• Data Points(time, value)

• Metricsproc.loadavg.1m

• Tagshost=web42 pool=static

• Metric + Tags = Time Series

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Page 9: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Key concepts

• Data Points(time, value)

• Metricsproc.loadavg.1m

• Tagshost=web42 pool=static

• Metric + Tags = Time Series

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Page 10: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Key concepts

• Data Points(time, value)

• Metricsproc.loadavg.1m

• Tagshost=web42 pool=static

• Metric + Tags = Time Series

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Page 11: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Key concepts

• Data Points(time, value)

• Metricsproc.loadavg.1m

• Tagshost=web42 pool=static

• Metric + Tags = Time Series

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Page 12: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

The Big Picture™

Applications

Metrics

tcollectorPeriodic

polling

TSD TSD TSD

HBase

Push data points(telnet-style proto, RPC soon)

Put / Scan(Hadoop RPC)

Browser

Graph request(HTTP)

Page 13: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

12 Bytes Per Datapoint

4TB per year for 1000 machines

Page 14: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

OpenTSDB @

150 Million Datapoints/Dayin a typical datacenter

Page 15: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Demo Time!

Page 16: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Set it up in 15 minutes

• JDK + Gnuplot 1 minute (1 command)

• Single-node HBase 4 minutes (3 commands)

• OpenTSDB 5 minutes (5 commands)

• Deploy tcollector 5 minutes

With zero prior experience

Page 17: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Under the Hood

Nettysu async

hbase asyncTSD

core

Local Disk(cache)

Page 18: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Under the Hood

Nettysu async

hbase asyncTSD

core

Local Disk(cache)

Write Path

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

HBase1s delay

max.

>2000 data points / sec / core

Page 19: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Under the Hood

Nettysu async

hbase asyncTSD

core

Local Disk(cache)

Write Path

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

HBase

>2000 data points / sec / core

Page 20: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Under the Hood

Nettysu async

hbase asyncTSD

core

Local Disk(cache)

HBase

Read Path

scan

GET /q?...

Page 21: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Under the Hood

Nettysu async

hbase asyncTSD

core

Local Disk(cache)

HBase

Read Path

scan

write to cache

GET /q?...

Gnuplot

Page 24: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Inside HBase

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

} } }0 5 2 0 0 1 0 2 8} }0 4 7 0 0 1

Row KeyColumn Family: nameColumn Family: nameColumn Family: name Column Family: idColumn Family: idColumn Family: id

Row Keymetrics tagk tagv metrics tagk tagv

host static

proc.loadavg.1m

host

proc.loadavg.1m 0 5 2

0 5 2

0 0 1

0 0 1

Table:tsdb-uid

Page 25: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Inside HBase

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Row KeyColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: t

Row Key+0 +15 +20 ... +90 +600

0.69 0.51 0.42

0.99 0.72

} } } }0 5 2 0 0 1 0 2 8} }0 4 7 0 0 1=1234567800+90

}73 -106 2 120

Table:tsdb

Page 26: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Inside HBase

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Row KeyColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: t

Row Key+0 +15 +20 ... +90 +600

0.69 0.51 0.42

0.99 0.72

} } } }0 5 2 0 0 1 0 2 8} }0 4 7 0 0 1=1234567800+90

}73 -106 2 120

Table:tsdb

Page 27: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Inside HBase

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Row KeyColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: t

Row Key+0 +15 +20 ... +90 +600

0.69 0.51 0.42

0.99 0.72

} } } }0 5 2 0 0 1 0 2 8} }0 4 7 0 0 1=1234567800+90

}73 -106 2 120

Table:tsdb

Page 28: OpenTSDBopentsdb.net/misc/opentsdb-strata.pdf · OpenTSDB A Distributed, Scalable, Time Series Database “Monitoring at an unprecedented level of granularity” Benoît “tsuna”

Inside HBase

put proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

Row KeyColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: tColumn Family: t

Row Key+0 +15 +20 ... +90 +600

0.69 0.51 0.42

0.99 0.72

} } } }0 5 2 0 0 1 0 2 8} }0 4 7 0 0 1=1234567800+90

}73 -106 2 120

Table:tsdb