opentsdb - Metrics for a distributed world Oliver Hankeln /

Similar documents
Time Series Live 2017

Typical size of data you deal with on a daily basis

Who Am I? Chris Larsen

The State of Apache HBase. Michael Stack

Getting to know. by Michelle Darling August 2013

Data Informatics. Seon Ho Kim, Ph.D.

Ghislain Fourny. Big Data 5. Column stores

Developing with Google App Engine

Scaling Up HBase. Duen Horng (Polo) Chau Assistant Professor Associate Director, MS Analytics Georgia Tech. CSE6242 / CX4242: Data & Visual Analytics

CS November 2018

CS November 2017

A Glimpse of the Hadoop Echosystem

The SMACK Stack: Spark*, Mesos*, Akka, Cassandra*, Kafka* Elizabeth K. Dublin Apache Kafka Meetup, 30 August 2017.

CISC 7610 Lecture 2b The beginnings of NoSQL

HBase... And Lewis Carroll! Twi:er,

Topics. Big Data Analytics What is and Why Hadoop? Comparison to other technologies Hadoop architecture Hadoop ecosystem Hadoop usage examples

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2016)

Fattane Zarrinkalam کارگاه ساالنه آزمایشگاه فناوری وب

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2017)

Comparing SQL and NOSQL databases

Empfehlungen vom BigData Admin

Hierarchy of knowledge BIG DATA 9/7/2017. Architecture

Effecient monitoring with Open source tools. Osman Ungur, github.com/o

The Evolution of a Data Project

CREATION SET-UP GUIDE

COSC 6339 Big Data Analytics. NoSQL (II) HBase. Edgar Gabriel Fall HBase. Column-Oriented data store Distributed designed to serve large tables

LazyBase: Trading freshness and performance in a scalable database

Introduction to BigData, Hadoop:-

Increase Value from Big Data with Real-Time Data Integration and Streaming Analytics

Big Data with Hadoop Ecosystem

Big Data Programming: an Introduction. Spring 2015, X. Zhang Fordham Univ.

Bigtable: A Distributed Storage System for Structured Data By Fay Chang, et al. OSDI Presented by Xiang Gao

Microsoft Perform Data Engineering on Microsoft Azure HDInsight.

ExamTorrent. Best exam torrent, excellent test torrent, valid exam dumps are here waiting for you

Open-Falcon A Distributed and High-Performance Monitoring System. Yao-Wei Ou & Lai Wei 2017/05/22

Cassandra, MongoDB, and HBase. Cassandra, MongoDB, and HBase. I have chosen these three due to their recent

Data Clustering on the Parallel Hadoop MapReduce Model. Dimitrios Verraros

RIPE NCC Routing Information Service (RIS)

Time Series Storage with Apache Kudu (incubating)

SQT03 Big Data and Hadoop with Azure HDInsight Andrew Brust. Senior Director, Technical Product Marketing and Evangelism

Distributed File Systems II

Things Every Oracle DBA Needs to Know about the Hadoop Ecosystem. Zohar Elkayam

History of xser/kamailio at 1&1

HBase: Overview. HBase is a distributed column-oriented data store built on top of HDFS

HDFS Federation. Sanjay Radia Founder and Hortonworks. Page 1

Introduction to Google Cloud Platform

How do we build TiDB. a Distributed, Consistent, Scalable, SQL Database

10 Million Smart Meter Data with Apache HBase

Introduction to HDFS and MapReduce

COSC 416 NoSQL Databases. NoSQL Databases Overview. Dr. Ramon Lawrence University of British Columbia Okanagan

Outline. Spanner Mo/va/on. Tom Anderson

/ Cloud Computing. Recitation 10 March 22nd, 2016

HBase: column-oriented database

Intro Cassandra. Adelaide Big Data Meetup.

@InfluxDB. David Norton 1 / 69

SOLUTION TRACK Finding the Needle in a Big Data Innovator & Problem Solver Cloudera

1

Big Data Hadoop Developer Course Content. Big Data Hadoop Developer - The Complete Course Course Duration: 45 Hours

Hadoop An Overview. - Socrates CCDH

New Data Architectures For Netflow Analytics NANOG 74. Fangjin Yang - Imply

The InfluxDB-Grafana plugin for Fuel Documentation

Ghislain Fourny. Big Data 5. Wide column stores

Microsoft Big Data and Hadoop

Extreme Computing. NoSQL.

How we built a highly scalable Machine Learning platform using Apache Mesos

BRING THE NOISE! MAKING SENSE OF A HAILSTORM OF METRICS. Abe Jon

Column-Family Databases Cassandra and HBase

The Art of Container Monitoring. Derek Chen

SEARCHING BILLIONS OF PRODUCT LOGS IN REAL TIME. Ryan Tabora - Think Big Analytics NoSQL Search Roadshow - June 6, 2013

Flexible Network Analytics in the Cloud. Jon Dugan & Peter Murphy ESnet Software Engineering Group October 18, 2017 TechEx 2017, San Francisco

Welcome to the New Era of Cloud Computing

The InfluxDB-Grafana plugin for Fuel Documentation

Google Cloud Bigtable. And what it's awesome at

Big Data Technology Ecosystem. Mark Burnette Pentaho Director Sales Engineering, Hitachi Vantara

Twitch Plays Pokémon: Twitch s Chat Architecture. John Rizzo Sr Software Engineer

Facility Information Management on HBase: Large-Scale Storage for Time-Series Data

BIG DATA TECHNOLOGIES: WHAT EVERY MANAGER NEEDS TO KNOW ANALYTICS AND FINANCIAL INNOVATION CONFERENCE JUNE 26-29,

Parallel Programming Principle and Practice. Lecture 10 Big Data Processing with MapReduce

BigTable: A Distributed Storage System for Structured Data

Introduction to Hadoop. Owen O Malley Yahoo!, Grid Team

"Big Data... and Related Topics" John S. Erickson, Ph.D The Rensselaer IDEA Rensselaer Polytechnic Institute

A Review Paper on Big data & Hadoop

BigTable. Chubby. BigTable. Chubby. Why Chubby? How to do consensus as a service

Column Stores and HBase. Rui LIU, Maksim Hrytsenia

Search Engines and Time Series Databases

Hadoop Development Introduction

Introduction to Hadoop. High Availability Scaling Advantages and Challenges. Introduction to Big Data

CSE-E5430 Scalable Cloud Computing Lecture 9

EsgynDB Enterprise 2.0 Platform Reference Architecture

NWC 2011 Monitoring a Cloud Infrastructure in a Multi-Region Topology

Enable Spark SQL on NoSQL Hbase tables with HSpark IBM Code Tech Talk. February 13, 2018

Hadoop. Introduction / Overview

Big Data Analytics. Rasoul Karimi

Walk The Walk Social Media

What is the maximum file size you have dealt so far? Movies/Files/Streaming video that you have used? What have you observed?

Next-Generation Cloud Platform

App Engine: Datastore Introduction

CACHE ME IF YOU CAN! GETTING STARTED WITH AMAZON ELASTICACHE. AWS Charlotte Meetup / Charlotte Cloud Computing Meetup Bilal Soylu October 2013

SQL Server 2019 Big Data Clusters

The NoSQL Landscape. Frank Weigel VP, Field Technical Opera;ons

Transcription:

opentsdb - Metrics for a distributed world Oliver Hankeln / gutefrage.net @mydalon

Who am I? Senior Engineer - Data and Infrastructure at gutefrage.net GmbH Was doing software development before DevOps advocate

Who is Gutefrage.net? Germany s biggest Q&A platform #1 German site (mobile) about 5M Unique Users #3 German site (desktop) about 17M Unique Users > 4 Mio PI/day Part of the Holtzbrinck group Running several platforms (Gutefrage.net, Helpster.de, Cosmiq, Comprano,...)

What you will get Why we chose opentsdb What is opentsdb? How does opentsdb store the data? Our experiences Some advice

Why we chose opentsdb

We were looking at some options Munin Graphite opentsdb Ganglia Scales well no sort of yes yes Keeps all data Creating metrics no no yes no easy easy easy easy

Bingo! We have a winner! Munin Graphite opentsdb Ganglia Scales well no sort of yes yes Keeps all data Creating metrics no no yes no easy easy easy easy

Separation of concerns $ unzip strip touch finger grep mount fsck more yes fsck fsck fsck umo unt sleep

The ecosystem App feeds metrics in via RabbitMQ We base Icinga checks on the metrics We evaluate etsy Skyline for anomaly detection We deploy sensors via chef

opentsdb Written at StumbleUpon but OpenSource Uses HBase (which is based on HDFS) as a storage Distributed system (multiple TSDs)

The big picture UI TSD This is really a cluster tcollector API TSD TSD TSD HBase

Putting data into opentsdb $ telnet tsd01.acme.com 4242 put proc.load.avg5min 1382536472 23.2 host=db01.acme.com

It gets even better tcollector is a python script that runs your collectors handles network connection, starts your collectors at set intervals does basic process management adds host tag, does deduplication

A simple tcollector script #!/usr/bin/php <?php#cast a die$die = rand(1,6);echo "roll.a.d6 ". tim

What was that HDFS again? HDFS is a distributed filesystem suitable for Petabytes of data on thousands of machines. Runs on commodity hardware Takes care of redundancy Used by e.g. Facebook, Spotify, ebay,...

Okay... and HBase? HBase is a NoSQL database / data store on top of HDFS Modeled after Google s BigTable Built for big tables (billions of rows, millions of columns) Automatic sharding by row key

How opentsdb stores the data

Keys are key! Data is sharded across regions based on their row key You query data based on the row key You can query row key ranges (say e.g. A...D) So: think about key design

Take 1 Row key format: timestamp, metric id

Take 1 Row key format: timestamp, metric id 1382536472, 5 17 Server A Server B

Take 1 Row key format: timestamp, metric id 1382536472, 5 17 1382536472, 6 24 Server A Server B

Take 1 Row key format: timestamp, metric id 1382536472, 5 17 1382536472, 6 24 1382536472, 8 12 1382536473, 5 134 Server A 1382536473, 6 10 1382536473, 8 99 Server B

Take 1 Row key format: timestamp, metric id 1382536472, 5 17 1382536472, 6 24 1382536472, 8 12 1382536473, 5 134 Server A 1382536473, 6 10 1382536473, 8 99 1382536474, 5 12 Server B 1382536474, 6 42

Solution: Swap timestamp and metric id Row key format: metric id, timestamp 5, 1382536472 17 6, 1382536472 24 8, 1382536472 12 5, 1382536473 134 Server A 6, 1382536473 10 8, 1382536473 99 5, 1382536474 12 Server B 6, 1382536474 42

Solution: Swap timestamp and metric id Row key format: metric id, timestamp 5, 1382536472 17 6, 1382536472 24 8, 1382536472 12 5, 1382536473 134 Server A 6, 1382536473 10 8, 1382536473 99 5, 1382536474 12 Server B 6, 1382536474 42

Take 2 Metric ID first, then timestamp Searching through many rows is slower than searching through viewer rows. (Obviously) So: Put multiple data points into one row

Take 2 continued 5, 1382608800 5, 1382612400 +23 +35 +94 +142 17 1 23 42 +13 +25 +88 +89 3 44 12 2

Take 2 continued Row key 5, 1382608800 5, 1382612400 +23 +35 +94 +142 17 1 23 42 +13 +25 +88 +89 3 44 12 2

Take 2 continued Cell Name Row key 5, 1382608800 5, 1382612400 +23 +35 +94 +142 17 1 23 42 +13 +25 +88 +89 3 44 12 2

Take 2 continued Cell Name Data point Row key 5, 1382608800 5, 1382612400 +23 +35 +94 +142 17 1 23 42 +13 +25 +88 +89 3 44 12 2

Where are the tags stored? They are put at the end of the row key Both metric names and metric values are represented by IDs

The Row Key 3 Bytes - metric ID 4 Bytes - timestamp (rounded down to the hour) 3 Bytes tag ID 3 Bytes tag value ID Total: 7 Bytes + 6 Bytes * Number of tags

Let s look at some graphs

Our experiences

What works well We store about 200M data points in several thousand time series with no issues tcollector is decoupling measurement from storage Creating new metrics is really easy

Challenges The UI is seriously lacking no annotation support out of the box Only 1s time resolution (and only 1 value/s/time series)

salvation is coming OpenTSDB 2 is around the corner millisecond precision annotations and meta data improved API

Friendly advice Pick a naming scheme and stick to it Use tags wisely (not more than 6 or 7 tags per data point) Use tcollector wait for opentsdb 2 ;-)

Questions? Please contact me: oliver.hankeln@gutefrage.net @mydalon I ll upload the slides and tweet about it