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
Observability_at_Google_--_OSCON.pdf
Search
JBD
July 23, 2018
Programming
1
220
Observability_at_Google_--_OSCON.pdf
JBD
July 23, 2018
Tweet
Share
More Decks by JBD
See All by JBD
eBPF in Microservices Observability at eBPF Day
rakyll
1
2k
eBPF in Microservices Observability
rakyll
1
1.6k
OpenTelemetry at AWS
rakyll
1
1.8k
Debugging Code Generation in Go
rakyll
5
1.5k
Are you ready for production?
rakyll
8
2.6k
Servers are doomed to fail
rakyll
3
1.5k
Serverless Containers
rakyll
1
240
Critical Path Analysis
rakyll
0
500
Monitoring and Debugging Containers
rakyll
2
1.1k
Other Decks in Programming
See All in Programming
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
490
Rechartsで楽にゴリゴリにカスタマイズする!
10tera
1
170
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
190
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
200
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
220
マルチモジュールにおけるテスト最適化
fxwx23
0
210
The Shape of a Service Object
inem
0
520
Using Livebook to build and deploy internal tools @ ElixirConf 2024
hugobarauna
0
250
From Idea to IDE: Developing Plugins for Android Studio
thisaay
1
220
実践!難読化ガイド
mitchan
0
200
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
120
Featured
See All Featured
Facilitating Awesome Meetings
lara
49
5.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
354
29k
The Straight Up "How To Draw Better" Workshop
denniskardys
230
130k
Learning to Love Humans: Emotional Interface Design
aarron
270
40k
Embracing the Ebb and Flow
colly
83
4.4k
Practical Orchestrator
shlominoach
185
10k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
89
16k
Designing the Hi-DPI Web
ddemaree
278
34k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
[RailsConf 2023] Rails as a piece of cake
palkan
48
4.6k
How GitHub (no longer) Works
holman
310
140k
Transcript
Observability at Google JBD, Google (@rakyll)
@rakyll History Long history of distributed systems 10ks of different
services built by 100s of teams Many backends/analysis tools invented here ™
@rakyll
@rakyll 100% availability (is a lie)
“ @rakyll A service is available if users cannot tell
there is an outage.
“ @rakyll Google Load Balancers are available if users cannot
tell there is an outage.
@rakyll Principled way of saying what level of downtime is
acceptable. • Error rate • Latency expectations SLOs
@rakyll An observable system tells more than its availability.
@rakyll Context, status, expectations, debuggability
@rakyll How? Observe by collecting signals Export them to analysis
tools Correlate and analyze to find root cause
@rakyll
@rakyll
@rakyll
@rakyll
@rakyll This is hard Must have integrations for web, RPC,
and storage clients Must support all languages Must be context aware (e.g. canary vs prod) Must support many analysis tools Developers need to add custom instrumentation
@rakyll This is too hard!
@rakyll Borg Stubby Census
opencensus.io
@rakyll
@rakyll
@rakyll
@rakyll
@rakyll Z-Pages • Allows processes report their own dashboards. •
Z-Pages have no sampling.
@rakyll Try! import “go.opencensus.io/plugin/ocgrpc” s := grpc.NewServer(grpc.StatsHandler(&ocgrpc.ServerHandler{})) if err :=
s.Serve(lis); err != nil { log.Fatalf("Failed to serve: %v", err) }
@rakyll import ( “go.opencensus.io/stats/view” “go.opencensus.io/trace” “contrib.go.opencensus.io/exporter/stackdriver” ) exporter, err :=
stackdriver.NewExporter(stackdriver.Options{ … }) if err != nil { log.Fatal(err) } view.RegisterExporter(exporter) trace.RegisterExporter(exporter)
@rakyll
@rakyll
@rakyll Roadmap Stable libraries in 8+ languages Exporter daemon Cluster-wide
Z-Pages Smart sampling Exemplars Framework, database, MQ integrations
opencensus.io
Thank you! opencensus.io JBD, Google
[email protected]
@rakyll