Upgrade to Pro — share decks privately, control downloads, hide ads and more …

カーネルまで探検して理解するふたつの自動計装

すみや
August 22, 2026

 カーネルまで探検して理解するふたつの自動計装

すみや

August 22, 2026

Transcript

37 slides
  1. introduction 自己紹介 江口 純矢 (Eguchi Sumiya) 経歴など 新卒入社した会社でアプリケーションエンジニアを経てSREへ転身 現在はMNTSQ株式会社でSRE マイブーム

    早起きして人が居ないカフェでゆっくり過ごす (コーヒーは飲めないので牛乳飲んだりしてます) ©MNTSQ, Ltd. 2
  2. 探検その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
  3. 探検その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
  4. 探検その2: ライブラリを使用しない自動計装 アプリが暗号化する前に読むためにuprobeをトリガーに使用 プロセス Python eBPF プロセス syscall HTTPS php

    ユーザー空間 ©MNTSQ, Ltd. アプリ側で暗号化され カーネル空間 SSL_writeの「開始」&「終了」 カーネル空間から中が覗けない をトリガーに指定 28
  5. 探検その2: ライブラリを使用しない自動計装 この方式の難点 プロセス Python eBPF syscall プロセス カーネル空間にeBPFを登録するための アクセス権限が必要

    HTTPS php プロセスの外側から監視するため アプリ側で暗号化され ユーザー空間 カーネル空間 SSL_writeの「開始」&「終了」 ライブラリ使用方式に比べ粒度が荒い カーネル空間から中が覗けない をトリガーに指定 ©MNTSQ, Ltd. 29

More Decks by すみや

Other Decks in Technology