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

eBPFで計装はノーコードの時代へ Grafana Beylaの出来るコト出来ないコト

kojake_300
July 01, 2024
730

eBPFで計装はノーコードの時代へ Grafana Beylaの出来るコト出来ないコト

kojake_300

July 01, 2024
Tweet

Transcript

  1. 自己紹介 ❏ 某 SIer で業務系アプリケーションの保守運用や Devops 推進、金融機 関向けのクラウドアプリケーションの保守運用を経験したのちスリー シェイクにジョイン ❏

    スリーシェイクではお客様環境の EKS 改善や Google Cloud 上のシス テムの SRE 支援を行っている ❏ 趣味はサウナ、旅行、サッカー観戦(町田ゼルビア推し) kojake_300 株式会社スリーシェイク Sreake 事業部
  2. トレーシング情報を仕込む方法 ❏ トレーシング/ログ/メトリクスなどのテレメトリ取得ロジックをアプリに仕込むことを計装と呼ぶ。 ❏ トレーシングの計装方法は以下の三種類。 手動計装 自動計装 (アプリ) 自動計装 (インフラ)

    アプリケーションコードに直接 トレース情報をコーディングする アプリケーション起動時に、 メインロジックの 前に計装処理を実行する eBPF等で起動中の アプリケーションに動的に 計装する 柔軟な計装が可能である メインロジックを修正せずに 一般的なライブラリに 対して計装出来る アプリケーションのコードを 変更せずに計装出来る SREがコードを 修正するのはリスクや 費用対効果を鑑みる必要がある 手動計装程ではないがSREが コードを修正するリスクや 費用対効果を鑑みる必要がある 取得出来るトレース情報が少ない 計装方法 メリット デメリット Beyla
  3. 【補足】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 ① カーネルへロード ③ イベント監視 ④ 処理結果を  格納 ② 任意の処理を実行 ⑤ 読み取り
  4. 検証 ❏ 以下の環境で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
  5. 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