Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Distributed Request Tracing
Search
Kenny Hoxworth
April 23, 2014
Programming
2
990
Distributed Request Tracing
Overview of tracing in a distributed system from a Ruby / Rails perspective
Kenny Hoxworth
April 23, 2014
Tweet
Share
Other Decks in Programming
See All in Programming
Java 22 Overview
kishida
1
180
Fast JSX: Don't clone props object #28768
yossydev
1
130
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
920
ゆるい個人開発のススメ
kuroppe1819
10
990
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
Tailwind CSSを本気でカスタマイズする方法
fsubal
13
5.3k
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
2 週間で Twitter Bot を作ってみた
contour_gara
0
540
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
710
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
Featured
See All Featured
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Scaling GitHub
holman
457
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
BBQ
matthewcrist
80
8.8k
Designing for humans not robots
tammielis
248
25k
GraphQLとの向き合い方2022年版
quramy
32
12k
We Have a Design System, Now What?
morganepeng
43
6.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
The Mythical Team-Month
searls
216
42k
Transcript
DISTRIBUTED REQUEST TRACING
Kenny Hoxworth
Request Profiler Request Lifecycle (40ms) WebService (25ms) AuthService (15ms) DB
(3ms) Worker (13ms)
SMS Trace
SMS Trace
SMS Trace
Performance 500 ms
Bad Nodes
Cats as a service
Catspammer API web
Catspammer API AUTH PurrMQ Social Media Workers web
Catspammer API AUTH PurrMQ Social Media Workers web
Tracing done Right
Low Overhead Goal 1.
Scalable Goal 2.
Transparent Instrumentation Goal 3.
X-Trace, Magpie, Pinpoint
Request Lifecycle (40ms) WebService (25ms) AuthService (15ms) DB (3ms) Worker
(13ms) trace id
Request Lifecycle (40ms) WebService (25ms) AuthService (15ms) DB (3ms) Worker
(13ms) span id
Dapper
Dapper Architecture Instrumented Services Dapper Collectors Dapper UI
Zipkin
Zipkin Pluggable Datastore Scribe Collector Highly configurable
None
Zipkin Example
System Setup Zipkin
System Setup Zipkin $> git clone https://github.com/twitter/zipkin.git $> ./zipkin/bin/collector &
$> ./zipkin/bin/query & $> ./zipkin/bin/web &
Scribe Ruby Setup finagle-thrift zipkin-tracer
gemfile.rb gem 'scribe' gem 'finagle-thrift' gem 'zipkin-tracer', :git => ‘
[email protected]
:mszenher/zipkin-
tracer.git', :require => 'zipkin-tracer', :tag => 'v0.4.0'
config/initializers/zipkin.rb config = Rails.application.config ! zipkin_tracer_config = { service_name: 'catspammer',
service_port: 9410, sample_rate: 1, scribe_server: '127.0.0.1:9410' } ! config.middleware.use ZipkinTracer::RackHandler, zipkin_tracer_config
ActiveRecord? Redis? Trace.record(Trace::Annotation.new(Trace::Annotation::CLIENT_SEND, Trace.default_endpoint)) Trace.record(Trace::Annotation.new(Trace::Annotation::CLIENT_RECV, Trace.default_endpoint)) Cat.where(:fur => “orange”)
Demo
Questions?
catspammer.com
Thanks! @hoxworth :: http://github.com/hoxworth