Slide 1

Slide 1 text

Datadog Distribution of OpenTelemetry Collector と戯れてみた @_tetsuya28

Slide 2

Slide 2 text

⾃⼰紹介 @tetsuya28 / @_tetsuya28 株式会社 AbemaTV - Platform div. 【趣味】旅⾏‧ゴルフ 【 Datadog 歴】 1 年 【好きな Datadog の機能】 Watchdog

Slide 3

Slide 3 text

アジェンダ ❏ Datadog における計装⽅法の選択肢 ❏ Datadog Distribution of OpenTelemetry Collector ( DDOT ) とは ❏ なぜ DDOT を選ぶのか? ❏ DDOT の設定と導⼊ステップ ❏ まとめ

Slide 4

Slide 4 text

どうやって計装してますか? 突然ですが ※ 以後 Go でお話しますが他の⾔語でも置き換え可能です

Slide 5

Slide 5 text

Datadog における計装の主な選択肢 ❏ DataDog/dd-trace-go ❏ 計装の第⼀選択肢 ❏ 直近 v2.0.0 リリース 🎉 ❏ DataDog/orchestrion ❏ ⾃動で⼿動計装を追加してくれる ❏ DataDog/dd-trace-go/ddtrace/opentelemetry ❏ Datadog が提供している OpenTelemetry ベースの実装 ❏ open-telemetry/opentelemetry-go ❏ OpenTelemetry ベースの計装 ( 以後、 Otel 計装 )

Slide 6

Slide 6 text

なぜ Otel 計装を選ぶのか 昨今様々なオブザーバビリティバックエンドが台頭 独⾃の SDK で計装するのではなく OpenTelemetry に準拠するところも Google Cloud も Telemetry API で Otel 計装をそのまま利⽤できるように Datadog も例に漏れず OpenTelemetry のサポートをアナウンスしています

Slide 7

Slide 7 text

どうやって Datadog に送る? Otel 計装したとして

Slide 8

Slide 8 text

Datadog Distribution of OpenTelemetry Collector

Slide 9

Slide 9 text

Datadog Distribution of OpenTelemetry Collector とは 簡単に⾔うと OpenTelemetry Collector in datadog-agent です Datadog Distribution of OpenTelemetry Collector ( DDOT ) は Otel 計装でのデータを受け取り、 Datadog を含めた任意のオブザーバビリティバックエンドにデータを送信します https://docs.datadoghq.com/ja/opentelemetry/setup/ddot_collector/

Slide 10

Slide 10 text

なぜ DDOT を選ぶのか?

Slide 11

Slide 11 text

DDOT 以外を選定しなかった理由 ❏ Datadog 依存 ❏ dd-trace-go × datadog-agent を採⽤しなかった理由 ❏ 複数のオブザーバビリティバックエンドを簡単に切り替えたい ❏ サンプリング⽅法やレートなどを細かく制御したい ❏ OpenTelemetry 依存 ❏ datadog-agent OTLP ingestion を採⽤しなかった理由 ❏ Adaptive sampling などの機能もサポートされておらず Tail based sampling できない ❏ OpenTelemetry Collector を採⽤しなかった理由 ❏ ログやプロファイルなどは datadog-agent のエコシステムに乗っかりたい

Slide 12

Slide 12 text

どうやって DDOT を使う?

Slide 13

Slide 13 text

datadog-agent で DDOT を有効化する⽅法 ※ Kubernetes で DatadogAgent CR を利⽤している環境とします ① 利⽤するイメージを DDOT 対応イメージに差し替え ② spec.features.otelCollector.enabled: true に設定 ③利⽤する port を設定 otel-agent コンテナが追加されます ① ② ③

Slide 14

Slide 14 text

DDOT で Datadog にトレースを送信する⽅法 先ほどの otelCollector.conf.configData に OpenTelemetry Collector の設定を記 載できます ※ スライドのスペース上、直接関連する部分だけを抜粋しています

Slide 15

Slide 15 text

DDOT 本番利⽤できる...?

Slide 16

Slide 16 text

ABEMA の突発スパイクにも耐えて元気に稼働中 ⽉曜 21 時の「今⽇、好きになりました。」では 69 万スパン / sec を記録

Slide 17

Slide 17 text

まとめ

Slide 18

Slide 18 text

まとめ ❏ メリット ❏ DDOT を利⽤することで OpenTelemetry の知⾒ / 資産を⽣かしたまま Datadog を利⽤するこ とができる ❏ 必要に応じて Datadog 以外のバックエンドを気軽に試すことができる ❏ デメリット ❏ UI や送信データなどを含めて datadog-agent と完全に互換しているものではない ❏ datadog-agent に⽐べると⾃分たちで運⽤しないといけないものが多い