Slide 1

Slide 1 text

Oracle Cloud Hangout Cafe #9 Main Session からの続編: OpenTelemetry のトピックいろいろ - ゼロコード計装(Go)/ OpAMP - #ochacafe 逆井(さかさい) @ k6s4i53rx

Slide 2

Slide 2 text

逆 井 啓 佑 さかさい ● 所属:Datadog Japan ● コミュニティ: ○ OpenTelemetry Meetup ○ Google Cloud Champion Innovators ● クラウドネイティブ界隈に生息しています 自己紹介 CNDT2022 CNDT2023 CNDW2024 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 3

Slide 3 text

逆 井 啓 佑 さかさい ● 所属:Datadog Japan ● コミュニティ: ○ OpenTelemetry Meetup ○ Google Cloud Champion Innovators ● クラウドネイティブ界隈に生息しています 自己紹介 CNDT2022 CNDT2023 CNDW2024 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 4

Slide 4 text

目次 ● ゼロコード計装(Go) ● OpAMP(Open Agent Management Protocol) ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 5

Slide 5 text

目次 ● ゼロコード計装(Go) ● OpAMP(Open Agent Management Protocol) ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー この二つは、 LT 枠で任せる 👍 某氏

Slide 6

Slide 6 text

ゼロコード計装(Go)

Slide 7

Slide 7 text

ゼロコード計装(Go) OpenTelemetry Go Automatic Instrumentation ● 内部の仕組みには eBPF を使用 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 8

Slide 8 text

ゼロコード計装(Go) OpenTelemetry Go Automatic Instrumentation ● 内部の仕組みには eBPF を使用 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー Go アプリ (ex: net/http) opentelemetry- go-instrumentation ユーザ空間 カーネル空間 eBPF eBPF Map ※ ゼロコード計装フローのイメージ図 ❶ ❷ ❸ ❹ ❺ ❶ eBPF プログラムがロード ❷ uprobe にアタッチされ、   net/http (例) が使われたタイミングで発火 ❸ リクエストヘッダの値から   トレースコンテキストを eBPF Map に保存 ❹ ゼロコードツールが eBPF Map から   トレースコンテキストを抽出 ❺ ゼロコードツールが、スパンの生成とエクスポート

Slide 9

Slide 9 text

ゼロコード計装(Go) OpenTelemetry Go Automatic Instrumentation ● 内部の仕組みには eBPF を使用 ● 先週(2025/01)、β リリース ○ net/http、database/sql、gRPC、kafka-go ○ OTel Trace API との拡張性あり ○ 環境変数ベースの設定、semconv の準拠 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー https://opentelemetry.io/blog/2025/go-auto-instrumentation-beta/

Slide 10

Slide 10 text

ゼロコード計装(Go) OpenTelemetry Go Automatic Instrumentation ● 内部の仕組みには eBPF を使用 ● 先週(2025/01)、β リリース ○ net/http、database/sql、gRPC、kafka-go ○ OTel Trace API との拡張性あり ○ 環境変数ベースの設定、semconv の準拠 ● 今後(ブログ参照) ○ サポートライブラリやテレメトリの拡充 ○ Beyla との統合 ■ eBPF ゼロコードツール。メトリクスや、Go 以外にも対応 ■ open-telemetry / community: Donation Proposal #2460 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 11

Slide 11 text

ゼロコード計装(Go) Go Compile-Time Instrumentation ● Go コンパイラに渡される前に計装コードを追加する仕組み ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 12

Slide 12 text

ゼロコード計装(Go) Go Compile-Time Instrumentation ● Go コンパイラに渡される前に計装コードを追加する仕組み ○ この仕組みを使ったツールとしてはopentelemetry-go-auto-instrumentation(alibaba)や orchestrion(Datadog)が存在していた ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー https://x.com/felixge/status/1865034564864790585/photo/1

Slide 13

Slide 13 text

ゼロコード計装(Go) Go Compile-Time Instrumentation ● Go コンパイラに渡される前に計装コードを追加する仕組み ○ この仕組みを使ったツールとしてはopentelemetry-go-auto-instrumentation(alibaba)や orchestrion(Datadog)が存在していた ○ 両者が OTel に Donation Proposal (#2344、#2497) ● 先月(2025/01)に Go compile time instrumentation SIG が誕生 ○ OTel 内での実験的試みとしてのコンパイルタイム計装ツール instrgen を作っていた Quesma も SIG に ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 14

Slide 14 text

2025年、OpenTelemetry 界隈の Go ゼロコード計装まわりがめちゃくちゃアツイぜ!!

Slide 15

Slide 15 text

ゼロコード計装(Go) eBPF 計装と、コンパイルタイム計装といろいろあるな 🧐 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー

Slide 16

Slide 16 text

ゼロコード計装(Go) eBPF 計装と、コンパイルタイム計装といろいろあるな 🧐 ● Orchestion プロジェクトの Felix(同僚...)の X ポストスレッドが有益です ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー https://x.com/felixge/status/1865034549832368242 ● Orchestrion はコンパイルタイム計装と読み替えて差し支えない ● プロジェクトメンバーの見解であることには留意

Slide 17

Slide 17 text

ゼロコード計装(Go) eBPF を使ったゼロコードツールについては、先日あった Kubernetes Novice で もう少し詳しく触れているので、宣伝です。 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー https://speakerdeck.com/k6s4i53rx/getting-started-opentelemetry-operator-on-kubernetes

Slide 18

Slide 18 text

OpAMP (Open Agent Management Protocol)

Slide 19

Slide 19 text

OpAMP ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー Open Agent Management Protocol ● 大規模なデータ収集エージェントをリモート制御するためのネットワークプロトコル ○ spec は Beta ● クライアントサーバープロトコル(HTTP / WS) https://opentelemetry.io/docs/collector/management/#opamp

Slide 20

Slide 20 text

OpAMP ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー OpAMP のサポートしている機能(spec) ● エージェントのリモート設定 ● エージェントステータスのレポート ○ エージェントの種別、バージョン、動作している OS など ● エージェントの稼働状態のレポート(ハートビート) ● エージェント固有のパッケージ管理(e.g. OTel Col イメージ) ● エージェントの自動更新 ● エージェントの接続認証情報の失効とローテーション Ref: https://opentelemetry.io/docs/specs/opamp/ https://opentelemetry.io/docs/collector/management/#opamp Control plane (OpAMP サーバー) データ収集エージェント OTel Collector など (OpAMP クライアン ト) OpAMP

Slide 21

Slide 21 text

OpAMP ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー OpAMP を使ったOTel Collector のリモート設定 ● リモート設定では Supervisor というプロセスが仲介して、OTel Collector を制御 OTel Col OpAMP クライアント Supervisor OpAMP クライアント OpAMP サーバー v2 ❺ Effective Config OpAMP サーバー (バックエンド) config ❶ config_v1 config write ❷ Merge config_v2 v2 read exec ❸ ❹

Slide 22

Slide 22 text

OpAMP を使った OTel Collector のリモート制御については、 CloudNative Days Winter 2024 で整理したので、さらに詳しく気になる方はご参照くださ い。 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー https://speakerdeck.com/k6s4i53rx/getting-started-opentelemetry-collector-with-opamp OpAMP

Slide 23

Slide 23 text

オブザーバビリティベンダーと OpAMP の統合 ● Grafana Alloy - grafana / alloy #1236 ● ADOT Collector - aws-observability / aws-otel-collector #2402 ... 中長期のロードマップに OpAMP あり OpAMP を使った既存のツールもあります ● ObservIQ の Bindplane ● OpAMP を使った OTel Collector のリモート管理 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー OpAMP

Slide 24

Slide 24 text

OTel Collector の運用文脈での OpAMP 活用にも今後期待...

Slide 25

Slide 25 text

まとめ ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー 今日は、以下について簡単にお話ししました! ● ゼロコード計装(Go) ● OpAMP(Open Agent Management Protocol)

Slide 26

Slide 26 text

宣伝 ー 2025-02-05 Oracle Cloud Hangout Cafe #9 ー OpenTelemetry Meetup もあります。次回はまだ未定です xx 未明 2025-xx x

Slide 27

Slide 27 text

記載されている会社名、商品名、 またはサービス名は、各社の商標登録または商標です。