HBase Tracing

15
1 HBase Tracing Elliott Clark

description

HBase Tracing. Elliott Clark. Who Am I. Elliott Clark [email protected] HBase PMC HBase Committer HTrace Mantainer Cloudera Engineer CDH Distribution. What’s Going on During Failovers. Motivation. Want to improve MTTR First need to know what’s going on Google’s Dapper. Options. - PowerPoint PPT Presentation

Transcript of HBase Tracing

Page 1: HBase Tracing

1

HBase TracingElliott Clark

Page 2: HBase Tracing

2

Who Am I

• Elliott Clark• [email protected]

• HBase PMC• HBase Committer• HTrace Mantainer• Cloudera Engineer

• CDH Distribution

Page 3: HBase Tracing

3

What’s Going on During Failovers

Page 4: HBase Tracing

4

Motivation

• Want to improve MTTR• First need to know what’s going on• Google’s Dapper

Page 5: HBase Tracing

5

Options

• Log all the things• We already do that.• Our logs are way too verbose as it is.• Hard to combine multiple logs

• HRegionServer• HMaster• Client

• Guess• Zipkin• Not Invented Here

Page 6: HBase Tracing

6

Spoiler:Guessing Didn’t Win

Page 7: HBase Tracing

7

About Zipkin

• Created by Twitter• Thanks

• Modeled after Dapper• Scala• Finagle

• Functional• Netty• Non-blocking

• Thrift• Cool UI• Pluggable Storage Backend

Page 8: HBase Tracing

8

Dapper’s Terminology

• Span• Segment of a remote call• Contains Annotations• Has a parent trace• Can have multiple children spans• Can have multiple annotations

• Annotations• Trace

• Grouping of spans

Page 9: HBase Tracing

9

Can’t use Cassandra and look at myself in the mirror

Page 10: HBase Tracing

10

Hooking up Zipkin, HTrace, and HBase

Implementation

Page 11: HBase Tracing

11

Zipkin HBase Storage

• Replaces need for Cassandra• Functional• Created a non-blocking client shim• Fixed Key Length

• ID’s are long• Mapping table

• ID -> Name• Name -> ID• Inspiration from OpenTSDB

• Open source on Github

Page 12: HBase Tracing

12

HTrace

• Way to instrument Java Code• Used In HBase trunk• Coming to an install near you in 0.96.0• Pluggable where it emits Spans

• To a file• To sys.out

Page 13: HBase Tracing

13

HTrace and Zipkin

• Modularize HTrace• Create htrace-zipkin• Create ZipkinSpanReceiver

• Receives spans from HTrace instrumented code• Converts to Thrift objects• Sends to Zipkin

• Background Flush• Batching

Page 14: HBase Tracing

14

Let’s hope this works.

Demo

Page 15: HBase Tracing

15