macでbpftraceを試す

全然使ってなかったので最近気づいたのですが,いつのまにか Docker for mac で使われている linuxkit のカーネルが 5.4ベースになっていて,BPFの基本的な機能が使えるようになってました(念のため言っておくと,docker for macLinuxをハイパーバイザ上で動かして,その上でdockerを動かしています).ということで簡単にmacからbpftraceが試せるように以下のようなものを作ってみました.

github.com

macにdockerをインストールして,./build.sh && ./run.sh で動くと思います.bpftraceのデフォルトのツールと,前に自分が作ったtetrisが入ってます.トレーシングは何かしらアプリケーションが動いてないとあまり面白くないので,tmuxでも使ってトレースしながら何か動かしてみるのが良いと思います.以下が実行例です.なんかもっさりしてる部分がありますがGIF化したときの影響なので実際は普通に動いています.

f:id:mm_i:20201117175238g:plain

VM作った方がいろいろと弄れるわけですが,もしbpftraceどんなものか知りたいと思ってるmacユーザの方は試してみてはいかがでしょうか.ちなみにBTFのサポートとかはないので ,bpftraceの100%の力を発揮できるわけではないのでそこはご了承ください.本当のbpftraceの力を知るには... 自分でカーネルとbpftraceをコンパイルしましょう.