Observabilityの文脈で、BPFが使用されている代表的なアプリケーションを紹介する。ここでは、アプリケーションを対話的に使用するツールと、常駐でデータ収集するツールに分類している。
### 対話的に使用するツール
- [GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more](https://github.com/iovisor/bcc#tracing)
- 書籍<sup id="a2">[2](#f2)</sup>にて紹介されている、コマンドラインから使用するための多数のパフォーマンス解析ツールが開発されている。
- [GitHub - ntop/ntopng: Web-based Traffic and Security Network Traffic Monitoring](https://github.com/ntop/ntopng)
- [GitHub - ntop/libebpfflow: Container traffic visibility library based on eBPF](https://github.com/ntop/libebpfflow)
- [GitHub - iovisor/ply: Dynamic Tracing in Linux](https://github.com/iovisor/ply)
- [GitHub - YutaroHayakawa/ipftrace2: A packet oriented Linux kernel function call tracer](https://github.com/YutaroHayakawa/ipftrace2)
- カーネルのネットワークスタック内を通過するパケットの「旅路」をトレースできる
### 常駐でデータ収集するツール
- [GitHub - pixie-io/pixie: Instant Kubernetes-Native Application Observability](https://github.com/pixie-io/pixie)
- [GitHub - draios/sysdig: Linux system exploration and troubleshooting tool with first class support for containers](https://github.com/draios/sysdig)
- [GitHub - aquasecurity/tracee: Linux Runtime Security and Forensics using eBPF](https://github.com/aquasecurity/tracee)
- [GitHub - skydive-project/skydive: An open source real-time network topology and protocols analyzer](https://github.com/skydive-project/skydive)
- OSI参照モデルのレイヤー4(TCP/UDP)の通信
- [GitHub - weaveworks/scope: Monitoring, visualisation & management for Docker & Kubernetes](https://github.com/weaveworks/scope)
- [GitHub - weaveworks/tcptracer-bpf: eBPF program using kprobes to trace TCP events without run-time compilation dependencies](https://github.com/weaveworks/tcptracer-bpf)
- [Network Performance Monitoring](https://docs.datadoghq.com/network_monitoring/performance/)
- [https://docs.sysdig.com/en/docs/sysdig-monitor/explore/visualize-metrics-using-the-topology-view/](https://docs.sysdig.com/en/visualize-metrics-using-the-topology-view.html)
- [cloudflare/ebpf_exporter: Prometheus exporter for custom eBPF metrics](https://github.com/cloudflare/ebpf_exporter)
- BPFでトレースして集約された統計値を収集するためのPrometheus Exporter
### その他の応用事例
- [Using eBPF as an SRE - A beginner's tale – Sylvain Hellegouarch, Reliably - YouTube](https://www.youtube.com/watch?v=PwmCLJQIf3I)
- [Investigating Request Delay in a Large-Scale Kafka Cluster Caused by TCP - Speaker Deck](https://speakerdeck.com/line_devday2021/investigating-request-delay-in-a-large-scale-kafka-cluster-caused-by-tcp)
- Apache Kafkaの性能問題を
- トラブルシューティングにBPFを用いた事例。
トラブルシューティング事例はたくさんあるはずだが、筆者がそれらをあまり探せていないため、事例を募集中。