Slide 1

Slide 1 text

eBPFで計装はノーコードの時代へ Grafana Beylaの出来るコト出来ないコト Copyright © 3-shake, Inc. All Rights Reserved. 2024/06/29 O11y-SRE × CloudNative コラボMeetup

Slide 2

Slide 2 text

Agenda 1. 自己紹介 2. はじめに 3. 分散トレーシングとは 4. Grafana Beylaとは 5. まとめ

Slide 3

Slide 3 text

自己紹介 01 Copyright © 3-shake, Inc. All Rights Reserved.

Slide 4

Slide 4 text

自己紹介 ❏ 某 SIer で業務系アプリケーションの保守運用や Devops 推進、金融機 関向けのクラウドアプリケーションの保守運用を経験したのちスリー シェイクにジョイン ❏ スリーシェイクではお客様環境の EKS 改善や Google Cloud 上のシス テムの SRE 支援を行っている ❏ 趣味はサウナ、旅行、サッカー観戦(町田ゼルビア推し) kojake_300 株式会社スリーシェイク Sreake 事業部

Slide 5

Slide 5 text

はじめに 02 Copyright © 3-shake, Inc. All Rights Reserved.

Slide 6

Slide 6 text

はじめに ❏ 分散トレーシングについて、こんなことを考えたことはありませんか? アプリケーションのコードを 変更せずに トレース情報を仕込みたいなあ

Slide 7

Slide 7 text

はじめに ❏ 分散トレーシングについて、こんなことを考えたことはありませんか? アプリケーションのコードを 変更せずに トレース情報を仕込みたいなあ それ、Beylaなら 実現出来ちゃうんです!

Slide 8

Slide 8 text

はじめに ❏ 本登壇では、Beylaとは何者なのか、従来の分散トレーシングと何が違うのかを解説します!

Slide 9

Slide 9 text

分散トレーシングとは 03 Copyright © 3-shake, Inc. All Rights Reserved.

Slide 10

Slide 10 text

分散トレーシングとは ❏ 各アプリケーションの一連の処理の流れを可視化出来るようにしたもの。 ❏ パフォーマンスボトルネックやアプリケーションエラーを調査する上で重要な情報となる。 サービスA サービスB サービスC

Slide 11

Slide 11 text

トレーシング情報を仕込む方法 ❏ トレーシング/ログ/メトリクスなどのテレメトリ取得ロジックをアプリに仕込むことを計装と呼ぶ。 ❏ トレーシングの計装方法は以下の三種類。 手動計装 自動計装 (アプリ) 自動計装 (インフラ) アプリケーションコードに直接 トレース情報をコーディングする アプリケーション起動時に、 メインロジックの 前に計装処理を実行する eBPF等で起動中の アプリケーションに動的に 計装する 柔軟な計装が可能である メインロジックを修正せずに 一般的なライブラリに 対して計装出来る アプリケーションのコードを 変更せずに計装出来る SREがコードを 修正するのはリスクや 費用対効果を鑑みる必要がある 手動計装程ではないがSREが コードを修正するリスクや 費用対効果を鑑みる必要がある 取得出来るトレース情報が少ない 計装方法 メリット デメリット Beyla

Slide 12

Slide 12 text

分散トレーシングとSRE ❏ 分散トレーシングは、アプリケーションを修正しないと情報を取得することが出来ない。 ❏ インフラ畑出身のSREにとって、分散トレーシングを推進することは難しい。 システムの信頼性をより可視化するため、分散 トレーシングを導入しませんか? こっちはopentelemetry collectorをインs SRE 開発者 アプリなんもわからん から出来ないよ、、 分散トレーシングよくわからんし 機能開発で忙しいから無理! やるならそっちで全部やって!

Slide 13

Slide 13 text

分散トレーシングとSRE ❏ 分散トレーシングは、アプリケーションを修正しないと情報を取得することが出来ない。 ❏ インフラ畑出身のSREにとって、分散トレーシングを推進することは難しい。 システムの信頼性をより可視化するため、分散 トレーシングを導入しませんか? こっちはopentelemetry collectorをインs SRE 開発者 アプリなんもわからん から出来ないよ、、 分散トレーシングよくわからんし 機能開発で忙しいから無理! やるならそっちで全部やって! もっと気軽に 分散トレーシングを導入したい!

Slide 14

Slide 14 text

Grafana Beylaとは 04 Copyright © 3-shake, Inc. All Rights Reserved.

Slide 15

Slide 15 text

❏ Grafana BeylaはオープンソースのeBPFベースの自動計測ツールで、Go、C/C++、Rust、Python、 Ruby、Java、NodeJS、.NETなどのアプリケーションのオブザーバビリティを簡単に観測することが 可能[1]。 ❏ コア技術となるeBPFは、Linux HTTP/SおよびgRPCサービスのREDメトリクス (Rate-Error-Duration)と基本的なトレーススパンを、アプリケーションコードやコンフィギュレー ションに変更を加えることなくキャプチャするために使用される。 Grafana Beylaとは [1] https://grafana.com/oss/beyla-ebpf/

Slide 16

Slide 16 text

【補足】eBPFとは [2] https://ebpf.io/ ❏ eBPF(Extended Berkeley Packet Filter)とは、LinuxのUserSpaceからカーネル上で実行される コードをカーネルにロードし、カーネル上で任意の処理を行う技術のこと[2]。 ❏ KernelSpaceの様々なイベントにeBPFを安全にアタッチ出来る。 ❏ パケットフィルタリングに留まらず、セキュリティやサービスメッシュ、プロファイリングなど多岐 に渡り使用されている。 eBPF Frontend Application eBPF Program eBPF Map 色々な イベント User Space Kernel Space ① カーネルへロード ③ イベント監視 ④ 処理結果を  格納 ② 任意の処理を実行 ⑤ 読み取り

Slide 17

Slide 17 text

検証 ❏ 以下の環境でBeylaから取得したメトリクス、トレースを可視化。 ※ Google Cloud Managed Service for Prometheus についてはこちらで解説 GKE Cloud Trace Cloud Monitoring otel collector go app1 go app2 beyla Google Cloud Managed Service for Prometheus

Slide 18

Slide 18 text

検証結果(トレース) ❏ app1->app2の分散トレーシングが可視化出来ている。

Slide 19

Slide 19 text

検証結果(メトリクス) 高 低 頻度 ❏ レスポンスタイムのヒストグラムが取得出来ている。

Slide 20

Slide 20 text

Beylaで出来るコト出来ないコト ❏ 出来るコト👍󰗧󰗨 ❏ アプリケーションコードを一切触らずに計装が出来る。 ❏ 出来ないコト👎󰗬󰗭 ❏ 分散トレーシングはgolangしか対応していない。[3] ❏ アプリの計装と比べ、対応しているライブラリがかなり少ないため詳細なトレーシング情報を取 得出来ない。[4] ● net/http ● Gorilla Mux ● Gin ● gRPC-go ● + 各言語のhttp/https [3] https://grafana.com/docs/beyla/latest/distributed-traces/ [4] https://grafana.com/docs/beyla/latest/tutorial/getting-started/#running-an-instrumented-service

Slide 21

Slide 21 text

Beylaのこれから ❏ 初期リリースが2023/7と若いサービスのため、機能的にはまだまだ感が否めない。[5] ❏ しかし、redisやkafkaの計装など、どんどん対応ライブラリが増えていきそう。[6][7] ❏ star数も着々と増えているので、数年後にはデファクトスタンダードなライブラリになっているかも。[8] [5] https://github.com/grafana/beyla/releases/tag/v0.0.1 [6] https://github.com/grafana/beyla/pull/890 [7] https://github.com/grafana/beyla/pull/891 [8] https://star-history.com/#grafana/beyla&open-telemetry/opentelemetry-collector&Date

Slide 22

Slide 22 text

まとめ 05 Copyright © 3-shake, Inc. All Rights Reserved.

Slide 23

Slide 23 text

❏ SREがより簡単に分散トレーシングを導入出来る時代までもう少し。 ❏ Grafana Belyaは発展途上、これからに期待! まとめ Beyla

Slide 24

Slide 24 text

ご清聴ありがとうございました