Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
eBPF in Microservices Observability at eBPF Day
JBD
October 11, 2021
Programming
1
1.6k
eBPF in Microservices Observability at eBPF Day
JBD
October 11, 2021
Tweet
Share
More Decks by JBD
See All by JBD
eBPF in Microservices Observability
rakyll
1
1.3k
OpenTelemetry at AWS
rakyll
1
1.6k
Debugging Code Generation in Go
rakyll
5
1.3k
Are you ready for production?
rakyll
8
2k
Servers are doomed to fail
rakyll
3
1.2k
Serverless Containers
rakyll
1
160
Critical Path Analysis
rakyll
0
230
Monitoring and Debugging Containers
rakyll
2
970
CPDD
rakyll
0
3.8k
Other Decks in Programming
See All in Programming
職場にPythonistaを増やす方法
soogie
0
320
TextPruner による大規模言語モデルの軽量化 / Large language model pruning using TextPruner
misawann
0
260
Kotlin 最新動向2022 #tfcon #techfeed
ntaro
1
1.1k
How useEvent would change our applications
koba04
1
1.7k
Micro Frontends with Module Federation: Beyond the Basics @jax2022
manfredsteyer
PRO
1
290
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customize Haptic
endoumari
0
350
LOWYAの信頼性向上とNew Relic
kazumax55
4
360
Jetpack Compose 頑張らないPreviewParameterProvider
horie23
0
110
Learning DDD輪読会#4 / Learning DDD Book Club #4
suzushin54
1
150
Why declarative UI frameworks?
tkuenneth
0
140
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
0
210
【Qiita Night】新卒エンジニアによるSwift6与太予想
eiji127
0
180
Featured
See All Featured
The Mythical Team-Month
searls
208
39k
Become a Pro
speakerdeck
PRO
3
780
How to train your dragon (web standard)
notwaldorf
57
3.8k
Code Review Best Practice
trishagee
41
6.7k
Embracing the Ebb and Flow
colly
73
3.3k
Infographics Made Easy
chrislema
233
17k
How to Ace a Technical Interview
jacobian
265
21k
Unsuck your backbone
ammeep
659
55k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
172
8.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
Creatively Recalculating Your Daily Design Routine
revolveconf
206
10k
Transcript
@rakyll eBPF in Microservices Observability Jaana Dogan Principal Engineer, AWS
jbd@amazon.com
@rakyll About me • Not a Linux developer. • Working
on monitoring, observability and performance. • Multi-tenancy and microservices focus.
@rakyll
@rakyll How does eBPF work? process JIT compiler Verifier Sockets
TCP/IP BPF Maps code (accessible from the user space)
@rakyll Where can eBPF hook into? - Kernel and user
functions - System calls - Network events - Kernel tracepoints
@rakyll Challenges in microservices
@rakyll Challenges in microservices We don’t just monitor VMs or
processes. We monitor critical paths.
@rakyll What’s next? service service database storage service
@rakyll What’s next? service service database storage service
@rakyll Challenges in microservices Context matters. Downstream stack don’t have
context.
@rakyll What’s next? process Linux kernel process process M:N Problem
@rakyll What’s next? process Linux kernel process process RPCs M:N
Problem
@rakyll What’s next? process Linux kernel process process RPCs container
container M:N Problem
@rakyll What’s next? process Linux kernel process process RPCs container
container Kubernetes pod, ECS task M:N Problem
@rakyll Challenges in microservices First, we debug the path of
the request. We debug functions or syscalls secondarily.
@rakyll Challenges in microservices Too much data. Need runtime controls
to modify the collection.
@rakyll Challenges in microservices Instrumentation is a two-year roadmap. Data
is not consistent.
@rakyll Recap Out of the box instrumentation is critical. Networking
observability is essential. Extensibility in runtime is needed. Decoration and enrichment is needed.
@rakyll How does eBPF help?
@rakyll Network Diagnostics TCP, UDP, HTTP, gRPC metrics Inspect protocols
(MySQL, Postgres, ...)
@rakyll Network Diagnostics TCP, UDP, HTTP, gRPC metrics Inspect protocols
(MySQL, Postgres, ...)
@rakyll Service Maps
@rakyll Distributed Traces Automatically create trace span if a trace
header is present. Your job is to generate and propagate the header. GET /users HTTP/1.1 Host: users.service Accept-Encoding: gzip, deflate Connection: Keep-Alive Traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
@rakyll Continuous Profiling
@rakyll Extensibility
@rakyll Decorating with Context eBPF agent process JIT compiler Verifier
Sockets TCP/IP BPF Maps API Server
@rakyll Decorating with Context
@rakyll Several projects... - Cillium/Hubble - Pixie - Flowmill -
Prodfiler - Parca
@rakyll What’s next? - High level language? - More platforms
supporting eBPF? - Reusable eBPF event processors? - Signed programs?
@rakyll Thank you Jaana Dogan jbd@amazon.com
@rakyll After party? Pixie KubeCon Happy Hour hosted by New
Relic Tomorrow, 8:30 PM PDT RSVP: pixiehh.eventbrite.com
@rakyll Runtime Extensibility eBPF agent process JIT compiler Verifier Sockets
TCP/IP BPF Maps code