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
カーネルまで探検して理解するふたつの自動計装
Search
すみや
August 22, 2026
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
カーネルまで探検して理解するふたつの自動計装
すみや
August 22, 2026
More Decks by すみや
See All by すみや
EOLを迎えたベースイメージで動く属人化したNginxプロキシを無停止移行した話
sumiyae
1
3.8k
Renovateを活用した手離れの良いCDKプロジェクトの作り方
sumiyae
2
280
VIM × AIエージェントで始める記録の好循環
sumiyae
3
1.5k
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
7
1.6k
遅延読み込みの歩みから理解するSeekable OCI
sumiyae
2
460
CDKとLambda Aliasで実現する、SQS+Lambdaの、安全なリリース手法
sumiyae
1
210
Other Decks in Technology
See All in Technology
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
330
What's new in Go 1.27?
ciarana
0
300
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
200
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
360
私がブラウザを自作したくなった理由
supurazako
1
280
ホームラボ紹介
y_sera15
0
230
地震情報アプリを作ってみた
yama3133
1
110
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
0
560
tamachi.go 誕生の裏側
rymiyamoto
1
200
Android skills に学ぶ
kokiko
0
150
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
26k
強化学習「理論」入門
enakai00
3
3.6k
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.1k
WENDY [Excerpt]
tessaabrams
11
39k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.5k
Thoughts on Productivity
jonyablonski
76
5.3k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
350
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
680
HDC tutorial
michielstock
2
810
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
500
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Transcript
カーネルまで探検して理解する ふたつの自動計装 Kernel/VM探検隊@東京 No19 2026/08/22 プラットフォーム部 SREチーム 江口 純矢 ©MNTSQ,
Ltd.
introduction 自己紹介 江口 純矢 (Eguchi Sumiya) 経歴など 新卒入社した会社でアプリケーションエンジニアを経てSREへ転身 現在はMNTSQ株式会社でSRE マイブーム
早起きして人が居ないカフェでゆっくり過ごす (コーヒーは飲めないので牛乳飲んだりしてます) ©MNTSQ, Ltd. 2
introduction 話すのはオブザーバビリティの用語「自動計装」について 計装(instrumentation) = システムを観測可能にするために、計測して記録するコードを組み込むこと 手動計装 自動計装 記録処理をコードに直接書いて計装 アプリのコードを変えずに計装 ©MNTSQ,
Ltd. 3
introduction 話すのはオブザーバビリティの用語「自動計装」について 計装(instrumentation) = システムを観測可能にするために、計測して記録するコードを組み込むこと 手動計装 自動計装 記録処理をコードに直接書いて計装 アプリのコードを変えずに計装 ©MNTSQ,
Ltd. 4
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 5
深まる自動計装への疑問 なんとなく使ってた自動計装 (以降Datadogを例に) ① ライブラリを1個足して ②起動コマンドの先頭を ddtarce-run で挟んで ©MNTSQ, Ltd.
③ 環境変数を足す 6
深まる自動計装への疑問 ふと湧き上がる疑問たち 何でこれだけで動くの...??? ① ライブラリを1個足して ②起動コマンドの先頭を ddtarce-run で挟んで ©MNTSQ, Ltd.
③ 環境変数を足す 7
深まる自動計装への疑問 ふと湧き上がる疑問たち 自動計装には2種類あるらしい ©MNTSQ, Ltd. 8
深まる自動計装への疑問 ふと湧き上がる疑問たち ©MNTSQ, Ltd. 9
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? ©MNTSQ, Ltd. 10
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? 疑問② なんで? ©MNTSQ, Ltd. 11
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? 疑問② なんで? 疑問③ なんで? ©MNTSQ, Ltd.
12
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? 疑問② なんで? 疑問③ なんで? ©MNTSQ, Ltd.
13
深まる自動計装への疑問 一つずつ探検 ©MNTSQ, Ltd. まずは方式1の仕組みから 14
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 15
探検その1: ライブラリを使用する自動計装 言語仕様を使い実現 (Pythonを例に) ©MNTSQ, Ltd. 16
探検その1: ライブラリを使用する自動計装 言語仕様を使い実現 (Pythonを例に) 前提:PythonはPYTHONPATHにsitecustomize.pyがあれば実行前にimportする 事前準備 Python実行直前 $ pip install
ddtrace $ ddtrace-run ddtrace/bootstrap/ sitecustomize.py PYTHONPATH Python実行中 $ python app.py site-packages/ sitecustomize.pyを PYTHONPATHに登録 ©MNTSQ, Ltd. sitecustomize.pyを import 諸々のスパンをDatadogへ転送 17
探検その1: ライブラリを使用する自動計装 言語仕様を使い実現 (Pythonを例に) 前提:PythonはPYTHONPATHにsitecustomize.pyがあれば実行前にimportする 事前準備 Python実行直前 $ pip install
ddtrace $ ddtrace-run ddtrace/bootstrap/ sitecustomize.py PYTHONPATH Python実行中 $ python app.py site-packages/ sitecustomize.pyを PYTHONPATHに登録 ©MNTSQ, Ltd. sitecustomize.pyを import 諸々のスパンをDatadogへ転送 18
探検その1: ライブラリを使用する自動計装 sitecustomize.pyで何が起きてる? importごとに差し替え ©MNTSQ, Ltd. 19
探検その1: ライブラリを使用する自動計装 sitecustomize.pyで何が起きてる? 言語ごとに仕組みも変わる... 数多くて importごとに差し替え 更新めっちゃ大変そう... ©MNTSQ, Ltd. 20
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 21
探検その2: ライブラリを使用しない自動計装 どの言語でも通る場所はないか? 言語ごとに仕組みも変わる... どの言語でも通信時に 必ず通る場所 があれば.... 数多くて 更新めっちゃ大変 システムコールを見張る
©MNTSQ, Ltd. 22
探検その2: ライブラリを使用しない自動計装 どの言語でも通る場所はないか? プロセス Python プロセス syscall HTTPS php ユーザー空間
©MNTSQ, Ltd. カーネル空間 23
探検その2: ライブラリを使用しない自動計装 どの言語でも通る場所はないか? プロセス Python プロセス この辺を監視したい syscall → eBPF
https php ユーザー空間 ©MNTSQ, Ltd. カーネル空間 24
探検その2: ライブラリを使用しない自動計装 ざっくり「eBPF」とは? eBPF = トリガーを指定し発火時にカーネルが実行する処理を安全に登録できる仕組み トリガー例 処理例 ・カーネルの関数が呼ばれたら(kprobe) ・アプリの関数が呼ばれたら(uprobe)
・etc…. 発火のたびにデータを読んで記録 → ユーザー空間のAgent が回収し Datadog へ転送 ©MNTSQ, Ltd. 25
探検その2: ライブラリを使用しない自動計装 eBPFを用いてDatadogに転送 プロセス Python eBPF プロセス syscall HTTPS php
ユーザー空間 ©MNTSQ, Ltd. カーネル空間 26
探検その2: ライブラリを使用しない自動計装 HTTPSの中身はカーネル空間からは覗けない プロセス Python eBPF プロセス php ユーザー空間 ©MNTSQ,
Ltd. syscall HTTPS アプリ側で暗号化され カーネル空間から中が覗けない カーネル空間 27
探検その2: ライブラリを使用しない自動計装 アプリが暗号化する前に読むためにuprobeをトリガーに使用 プロセス Python eBPF プロセス syscall HTTPS php
ユーザー空間 ©MNTSQ, Ltd. アプリ側で暗号化され カーネル空間 SSL_writeの「開始」&「終了」 カーネル空間から中が覗けない をトリガーに指定 28
探検その2: ライブラリを使用しない自動計装 この方式の難点 プロセス Python eBPF syscall プロセス カーネル空間にeBPFを登録するための アクセス権限が必要
HTTPS php プロセスの外側から監視するため アプリ側で暗号化され ユーザー空間 カーネル空間 SSL_writeの「開始」&「終了」 ライブラリ使用方式に比べ粒度が荒い カーネル空間から中が覗けない をトリガーに指定 ©MNTSQ, Ltd. 29
探検その2: ライブラリを使用しない自動計装 やっと見えてきた違い ©MNTSQ, Ltd. 30
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 31
まとめ 二つの自動計装での違い 疑問① 言語に依存する/しないの違いは? ©MNTSQ, Ltd. 疑問② 監視粒度の細かい/荒いの違いは? 32
まとめ 二つの自動計装での違い 疑問① 言語に依存する/しないの違いは? 疑問② 監視粒度の細かい/荒いの違いは? A. 言語の実行プロセスの中でライブラリごとに監視 vs プロセスの外からsyscallを監視
©MNTSQ, Ltd. 33
まとめ 二つの自動計装での違い 疑問③ Fargateで動く/動かないの違いは? ©MNTSQ, Ltd. 34
まとめ 二つの自動計装での違い 疑問③ Fargateで動く/動かないの違いは? A. 方式1はコンテナ内で完結 vs 方式2はホストのカーネルを使うが Fargateはカーネルへのアクセス権が無く不可 ©MNTSQ,
Ltd. 35
まとめ 探検の調査報告 ©MNTSQ, Ltd. 36
まとめ 二つの自動計装の違いを求めて探検の果てにたどり着いたのは プロセスとカーネルの境界だった ©MNTSQ, Ltd. 37