Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実践!OpenTelemetry
Search
oracle4engineer
PRO
February 05, 2025
Technology
0
21
実践!OpenTelemetry
2025/02/05 に行われたOracle Hangout Cafe(OCHaCafe) Season9 #5 で使用した資料です
oracle4engineer
PRO
February 05, 2025
Tweet
Share
More Decks by oracle4engineer
See All by oracle4engineer
Oracle Cloud Infrastructure:2025年1月度サービス・アップデート
oracle4engineer
PRO
0
210
[TechNight #86] Oracle GoldenGate - 23ai 最新情報&プロジェクトからの学び
oracle4engineer
PRO
1
170
【Oracle Cloud ウェビナー】2025年のセキュリティ脅威を読み解く:リスクに備えるためのレジリエンスとデータ保護
oracle4engineer
PRO
1
150
MySQLをベクトルデータベースとして使用する方法
oracle4engineer
PRO
0
41
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
Kotlin 入門
oracle4engineer
PRO
2
120
Oracle Exadata Database Service(Dedicated Infrastructure):サービス概要のご紹介
oracle4engineer
PRO
0
12k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
56k
[自動バックアップのコスト比較]リカバリ・サービス (RCV/ZRCV) とオブジェクト・ストレージ
oracle4engineer
PRO
3
2.9k
Other Decks in Technology
See All in Technology
パフォーマンスとコスト改善のために法人データ分析基盤をBigQueryに移行した話
seiya303
1
100
プロダクト観点で考えるデータ基盤の育成戦略 / Growth Strategy of Data Analytics Platforms from a Product Perspective
yamamotoyuta
0
250
Women in Agile
kawaguti
PRO
2
170
ハンズオンで学ぶ Databricks - Databricksにおけるデータエンジニアリング
taka_aki
1
2.1k
NOSTR, réseau social et espace de liberté décentralisé
rlifchitz
0
130
panicを深ぼってみる
kworkdev
PRO
2
150
プロダクト価値を引き上げる、「課題の再定義」という習慣
moeka__c
0
210
HCP TerraformとAzure:イオンスマートテクノロジーのインフラ革新 / HCP Terraform and Azure AEON Smart Technology's Infrastructure Innovation
aeonpeople
3
990
もし今からGraphQLを採用するなら
kazukihayase
9
4.2k
Power BI は、レポート テーマにこだわろう!テーマのティア表付き
ohata_ds
0
120
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
120k
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
190
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
96
5.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Music & Morning Musume
bryan
46
6.3k
4 Signs Your Business is Dying
shpigford
182
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Designing for Performance
lara
604
68k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Facilitating Awesome Meetings
lara
51
6.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
270
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
19k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Transcript
実践!OpenTelemetry Oracle Cloud Hangout Cafe Season9 #5 Shuhei Kawamura Solution
Architect, Oracle Digital/ISV Solutions Oracle Corporation Japan
自己紹介 2 Copyright © 2025, Oracle and/or its affiliates @shukawam
川村 修平 (Shuhei Kawamura) オラクル・デジタル / ISVソリューション本部 日本オラクル株式会社 コミュニティ • OCHaCafe • CloudNative Days – Observabilityチーム スタッドレスタイヤを履いたので、 雪山いけるようになりました!ぜひお誘いください。 ゴルフも最近ハマりました。同様にお誘いください。
アジェンダ 1. オブザーバビリティ標準:OpenTelemetry 2. OpenTelemetryのトピックいろいろ • ゼロコード計装(Java) • OpenTelemetry Operator
• OpenTelemetry Protocol with Apache Arrow 3 Copyright © 2025, Oracle and/or its affiliates
話すこと・話さないこと 話すこと • OpenTelemetry 1.41.0(2025/02の最新)に基づく入門 ~ 最新動向まで • 実行例などを含みますが、いずれもJavaでの例になります 話さないこと
• OpenTelemetry仕様の詳細 • 実案件、本番環境における活用例 4 Copyright © 2025, Oracle and/or its affiliates
オブザーバビリティ標準:OpenTelemetry 5 Copyright © 2025, Oracle and/or its affiliates
オブザーバビリティ オブザーバビリティ/Observability(Observe + Ability) • システムの出力を調べることで、システムの内部状態を理解する能力のこと システムがオブザーバビリティを獲得すると… • 今まで未知だった新しい問題(unknown-unknowns)のトラブルシューティングや対処が容易になる •
その事象がなぜ起こるのか?という問いに答えるのに役立つ システムがオブザーバビリティを獲得するためには… • 構成要素が適切に計装されている必要がある • インフラ、アプリケーションが適切なテレメトリーデータを外部出力するように実装されている状態であること 6 Copyright © 2025, Oracle and/or its affiliates (ログ、メトリクス、トレース、プロファイル、など) 今日の関心領域!
例: アプリケーションの計装 7 Copyright © 2025, Oracle and/or its affiliates
サービス B サービス A サービス C テレメトリーデータ ※一例です。 ビジネスロジック + ログ関連コード メトリクス関連コード トレース関連コード プロファイル関連コード … トラブルシュートする際に計装の追加が必要ない状態 = アプリケーションが適切に計装されている オブザーバビリティ バックエンド
オブザーバビリティ バックエンド 例: アプリケーションの計装 8 Copyright © 2025, Oracle and/or
its affiliates サービス B サービス A サービス C テレメトリーデータ ビジネスロジック + ログ関連コード メトリクス関連コード トレース関連コード プロファイル関連コード … • バックエンドに応じたAPIを活用して実装する必要あり • 各バックエンドごとの学習コストが発生 • 何らかの要因でバックエンドを差し替える際は結構大変 バックエンドごとに色んな違いがある • 送信方法 • データフォーマット ※一例です。
オブザーバビリティバックエンドによらず統一的なAPIが活用できれば… テレメトリーデータ(トレース、メトリクス、ログ、プロファイル、など)のデータモデルが統一されていれば… 9 Copyright © 2025, Oracle and/or its affiliates
OpenTelemetryとは • Cloud Native Computing Foundation(CNCF)のIncubatingプロジェクト • ベンダー非依存なオープンソースのオブザーバビリティフレームワーク • テレメトリーデータの計装、生成、収集、エクスポートが関心事項
10 Copyright © 2025, Oracle and/or its affiliates fig: OpenTelemetry ドキュメント - https://opentelemetry.io/ja/docs/
OpenTelemetryを構成する主なコンポーネント 11 Copyright © 2025, Oracle and/or its affiliates 仕様
コレクター 言語固有のAPIとSDKの実装 Kubernetesオペレーター Function as a Serviceアセット • すべての実装に対する言語横 断的な要件と想定を記述 • API、SDK、データ • テレメトリーデータを受信、処理、 エクスポートできるベンダー非依 存なプロキシー • 言語固有のAPIとその実装 (SDK)を提供 • コレクターとゼロコード計装のた めの、K8sオペレーター • FaaSを監視するためのアセット 提供 • ゼロコード計装用のライブラリ • 手動/ゼロコード計装用のコレク ター …以降でざっくりと解説していきます。 割愛します。
OpenTelemetryを構成する主なコンポーネント 仕様 OpenTelemetry仕様 • 2025/02 現在: 1.41.0 • すべての実装に対する言語横断的な要件と想定が記述されている •
原理とガイドライン – OpenTelemetryのミッションと価値、仕様の原則が記されている • Telemetry should be easy/universal/vendor-neutral/loosely-coupled/built-in • Compatibility, Stability, Resilience, Performance • Be User Driven, Be General, Be Stable, Be Consistent, Be Simple • API仕様 – バゲッジ、トレース、メトリクス、ログやコンテキスト伝搬に関するAPI仕様を定義 • SDK仕様 – トレース、メトリクス、ログ、リソース、構成に関するSDK(APIの実装)仕様を定義 • データ仕様 – セマンティック規約、プロトコル(OTLP | OpenTelemetry Protocol)を定義 12 Copyright © 2025, Oracle and/or its affiliates ※OpenTelemetry 1.40.0時点での内容です。 ちなみに、”OTel”という acronymも仕様内で言及があります。
OpenTelemetry仕様にはどんなことが書いてあるのか? – API編(Tracing) – 扱うデータの形式 • Time: ナノ秒(ns)精度の時間まで操作できる • Timestamp:
UNIX時間で表現し、ミリ秒 ~ ナノ秒の精度であること • Duration: 2つのイベント間の経過時間を表現し、ミリ秒 ~ ナノ秒の精度であること Tracing APIの構成要素が満たすべき仕様について(一部抜粋 [1] ) • TracerProvider • Tracerを取得するための関数を提供しなければならない [MUST] • Tracer • 新しいSpanを作成するための関数を提供しなければならない [MUST] • Tracerが有効かを判定する関数を実装するべき [SHOULD] • Span • トレース内の単一の操作を表すためのデータ構造を定義 • name, SpanContext, 親スパンの情報、SpanKind、開始/終了タイムスタンプ、属性、Links、Events、Status 13 Copyright © 2025, Oracle and/or its affiliates [1]: 他にもSpanContext, SpanKind, Link, Concurrencyなどに関する記述があります
OpenTelemetry仕様にはどんなことが書いてあるのか? – SDK編(Tracing) – API仕様に基づき、各関数で実装する内容に言及 e.g. TracerProvider – Tracer Creation
• Tracerインスタンスは、TracerProviderを通してのみ作成することが可能であるべき [SHOULD] • TracerProviderは、Get a Tracer APIを実装しなければならない [MUST] 14 Copyright © 2025, Oracle and/or its affiliates ref: OpenTelemetry Java - https://github.com/open-telemetry/opentelemetry- java/blob/main/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkTracerProvider.java TracerをGetするAPIの実装(Java)
OpenTelemetry仕様にはどんなことが書いてあるのか? – データ編 – セマンティック規約 セマンティック規約 • さまざまな種類の操作やデータに対して共通の名前を指定するもの • コードやライブラリ、プラットフォーム間で標準的な命名スキームに従うことができる
• https://github.com/open-telemetry/semantic-conventions で管理されている(最新は、v1.30.0) • どんな定義が存在するのか? • e.g. General [1] , Cloud Providers, CloudEvents, Generative AI, Object Stores, … 15 Copyright © 2025, Oracle and/or its affiliates [1]: General Attributes, Events, Logs, Metrics, Spans 属性名 概要 例 gen_ai.system 生成AIシステム名 openai gen_ai.request.model リクエストしたモデル名 gpt-4 gen_ai.input_tokens 生成AIに入力するトークン数 100 gen_ai.output_tokens 生成AIから出力されたトークン数 180 e.g. Generative AI – Spansのセマンティック規約の一部
OpenTelemetry仕様にはどんなことが書いてあるのか? – データ編 – プロトコル(OTLP) OpenTelemetry Protocol(OTLP) • 2025/02 現在:
1.5.0 • テレメトリーデータのエンコーディングとクライアント/サーバー間のデータ交換に使われるプロトコルが定義されている 16 Copyright © 2025, Oracle and/or its affiliates サービス B サービス A サービス C テレメトリーデータ オブザーバビリティ バックエンド ベンダー非依存にテレメトリーデータを やり取りするための仕様が定義されている。
例えば、OTLP/HTTP • テレメトリーデータは、HTTP POSTで送信する • リクエストボディーは、バイナリ or JSON フォーマットでエンコードされたProtobufペイロードを使う •
参考: https://github.com/open-telemetry/opentelemetry-proto/tree/v1.5.0/opentelemetry/proto • URLのパス • トレース: /v1/traces • メトリクス: /v1/metrics • ログ: /v1/logs • プロファイル: /v1development/profiles • レスポンスの挙動も定義(Full Success/Partial Success/Failures) • 耐障害性に関する言及もあり • スロットリング時のふるまい、コネクションのリトライ戦略 17 Copyright © 2025, Oracle and/or its affiliates https://opentelemetry.io/docs/specs/otlp/#otlphttp
OpenTelemetryを構成する主なコンポーネント コレクター OpenTelemetryコレクター • テレメトリーデータの受信、処理、送信を行う実行可能ファイルのこと • 1つ以上のパイプラインから構成される • パイプラインの構成要素: レシーバー、プロセッサー、エクスポーター
18 Copyright © 2025, Oracle and/or its affiliates fig: OpenTelemetry ドキュメント - https://opentelemetry.io/ja/docs/collector/ パイプライン ちなみに、パイプライン間を接続する コネクターというコンポーネントもありますが、 今日は割愛させていただきます。
OpenTelemetryコレクター レシーバー レシーバー • ネットワークポートをリッスンし、テレメトリーデータを受信する役割を持つ 19 Copyright © 2025, Oracle
and/or its affiliates レシーバー ref: https://opentelemetry.io/ja/docs/collector/architecture/#receivers レシーバーの例: • Apache Web Server Receiver • Docker Stats Collector Receiver • Filelog Collector Receiver • Fluent Forward Collector Receiver • GitHub Receiver • Jaeger Collector Receiver • JMX Collector Receiver • Kubernetes Cluster Collector Receiver • Oracle DB Receiver • OpenTelemetry Protocol with Apache Arrow Receiver • OTLP Collector Receiver • Prometheus Collector Receiver • … https://opentelemetry.io/ecosystem/registry/?language=collector&component=receiver
OpenTelemetryコレクター プロセッサー プロセッサー • テレメトリーを処理(属性の追加/削除、データ変換)する役割を持つ 20 Copyright © 2025, Oracle
and/or its affiliates ref: https://opentelemetry.io/ja/docs/collector/architecture/#processors プロセッサーの例: • Attribute Collector Processor • Batch Collector Processor • Filter Collector Processor • Group by Trace Processor • Group by Attribute Processor • K8s Attribute Processor • Memory Limiter Collector Processor • Metrics Transform Processor • Metrics Generation Processor • Span Collector Processor • Tail Sampling Processor • Transform Processor • … プロセッサー https://opentelemetry.io/ecosystem/registry/?language=collector&component=processor
OpenTelemetryコレクター エクスポーター エクスポーター • テレメトリーデータを別の場所(e.g. オブザーバビリティバックエンド、コンソール)へ送信する役割を持つ 21 Copyright © 2025,
Oracle and/or its affiliates ref: https://opentelemetry.io/ja/docs/collector/architecture/ - exporters エクスポーターの例: • Debug Exporter • Elasticsearch Exporter • File Collector Exporter • Kafka Collector Exporter • Trace ID aware load-balancing Collector Exporter • Loki Exporter • No-op Exporter • OpenTelemetry Protocol with Apache Arrow Exporter • OTLP gRPC Collector Exporter • OTLP HTTP Collector Exporter • Prometheus Remote Write Collector Exporter • Syslog Exporter • … エクスポーター https://opentelemetry.io/ecosystem/registry/?language=collector&component=exporter
参考: 設定ファイルの一例 22 Copyright © 2025, Oracle and/or its affiliates
OTLPで受け取って バッチ処理して OTLPで送信する テレメトリー データ レシーバー (otlp) エクスポーター (otlp) オブザーバビリティ バックエンド パイプライン プロセッサー (batch) OTLP OTLP
OpenTelemetryコレクターのディストリビューション ビルド済みで配布されているディストリビューション ビルド済みのディストリビューションで要件が満たせない場合 • ocb(OpenTelemetry Collector Builder)を用いて独自のディストリビューションをビルドすることができる 23 Copyright ©
2025, Oracle and/or its affiliates ディストリビューション名 概要 otelcol-contrib OpenTelemetry Collector/OpenTelemetry Collector Contribリポジトリの 両方のコンポーネントが全て含まれるディストリビューション otelcol-k8s Kubernetes上のワークロードを監視するためのディストリビューション otelcol-otlp OTLPのレシーバー、エクスポーターのみが含まれているディストリビューション otelcol OpenTelemetry Collectorリポジトリの全てのコンポーネントと OpenTelemetry Collector ContribリポジトリのOSS関連コンポーネントを含むディス トリビューション (良い出発点だけど) 実環境では、必要なコンポーネントのみ を含めることが推奨されています。 https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder
OpenTelemetryコレクターを使う意義 – Code first vs. Collector first OpenTelemetryコレクターなんか使わないで、直接バックエンドに送信すればいいじゃん? OpenTelemetryのドキュメント [1]
では、 一般的には、サービスとともにコレクターを使用することをおすすめします。 と言及されている 24 Copyright © 2025, Oracle and/or its affiliates https://opentelemetry.io/ja/docs/collector/#コレクターを使う場面 サービス テレメトリー データ オブザーバビリティ バックエンド サービス テレメトリー データ オブザーバビリティ バックエンド コレクター OpenTelemetryを試したりする分にはすぐに始められる (チーム内に素早く展開し、賛同を得たい時とか) 開発環境や小規模な環境ならこっちでもいいのかも サービスからテレメトリーデータをいち早くコクレターにオフロードできる コレクター側でリトライ、バッチ処理、フィルタリングなどの処理ができる 大規模な環境であれば、管理コストなどの点でコレクターの存在が生きてくる
OpenTelemetryを構成する主なコンポーネント 言語固有のAPIとSDKの実装 多くのプログラミング言語でOpenTelemetryのAPIとその実装のSDKを提供 25 Copyright © 2025, Oracle and/or its
affiliates 言語 トレース メトリクス ログ C++ Stable Stable Stable C#/.NET* Stable Stable Stable Erlang/Elixir Stable Development Development Go* Stable Stable Beta Java* Stable Stable Stable JavaScript* Stable Stable Development PHP* Stable Stable Stable Python* Stable Stable Development Ruby Stable Development Development Rust Beta Beta Beta Swift Stable Development Development 2025/02における各言語の対応状況 - https://opentelemetry.io/ja/docs/languages/ *:ゼロコード計装対応(※後述)
OpenTelemetryを構成する主なコンポーネント Kubernetesオペレーター OpenTelemetry Operator for Kubernetes • Kubernetes上でコレクターとワークロードのゼロコード計装を行うためのオペレーター • 提供されるCustom
Resource 26 Copyright © 2025, Oracle and/or its affiliates CR名 概要 OpenTelemetryCollector OpenTelemetryコレクターをK8s上に展開するためのCR Instrumentation K8s上のワークロードに対してゼロコード計装用のライブラリ/エージェントを注入ためのCR OpAMPBridge OpAMP Operator ServerとKubernetes APIをブリッジするためのCR Instrumentation テレメトリー データ オブザーバビリティ バックエンド コレクター これをK8s wayで実現するための オペレーター(OpAMPは置いといて)
Demo: Java x OpenTelemetry x OpenTelemetryコレクター • JavaのアプリケーションをOpenTelemetryを用いて計装し、その結果を確認してみる • テレメトリーデータは、OpenTelemetryコレクターを介し、オブザーバビリティバックエンドに送信する
27 Copyright © 2025, Oracle and/or its affiliates テレメトリーデータ トレース メトリクス ログ オブザーバビリティ バックエンド コレクター
もっと網羅的にOpenTelemetryが知りたい方へ 28 Copyright © 2025, Oracle and/or its affiliates https://www.oreilly.co.jp/books/9784814401024/
OpenTelemetryのトピックいろいろ • ゼロコード計装(Java) • OpenTelemetry Operator • OpenTelemetry Protocol with
Apache Arrow 29 Copyright © 2025, Oracle and/or its affiliates
ゼロコード計装 ゼロコード計装 • ソースコードを編集することなく、アプリケーションにOpenTelemetry API, SDKを追加する計装方法のこと • 実現方法は言語によって異なる • Java
→ javaagentを用いたバイトコードの操作 • Go → eBPF • .NET, JavaScript, PHP, Python → モンキーパッチ 30 Copyright © 2025, Oracle and/or its affiliates fig: https://opentelemetry.io/ja/docs/concepts/instrumentation/zero-code/
Javaとゼロコード計装 Javaにおけるゼロコード計装の仕組み • javaagentを用いて、JVMがクラスファイルをロードする前に動的にバイトコードを書き換え、計装用のコードを差し込む 31 Copyright © 2025, Oracle and/or
its affiliates Javaソースコード 中間コード (Java Byte Code) Linux版 JVM Linux Windows Windows版 JVM … javac ここで計装用の コードを差し込む 差し込まれる計装ライブラリの例 [1] : • elasticsearch • hikaricp • java-http-client • java-util-logging • jaxrs • jdbc • jmx-metrics • netty • opentelemetry-api • servlet • spring • tomcat • … [1]: https://github.com/open-telemetry/opentelemetry-java- instrumentation/tree/main/instrumentation
Javaとゼロコード計装 ダウンロード: https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases 32 Copyright © 2025, Oracle and/or its
affiliates ダウンロードしたJARの 配置場所を指定 必要な設定 計装対象のアプリケーション 環境変数での指定でもOK
Demo: Java x OpenTelemetryのゼロコード計装 • JavaのアプリケーションをOpenTelemetryを用いてゼロコード計装し、その結果を確認してみる • テレメトリーデータは、OpenTelemetryコレクターを介し、オブザーバビリティバックエンドに送信する 33 Copyright
© 2025, Oracle and/or its affiliates テレメトリーデータ オブザーバビリティ バックエンド コレクター ゼロコード で計装します。 トレース メトリクス ログ
再掲: OpenTelemetryを構成する主なコンポーネント Kubernetesオペレーター OpenTelemetry Operator for Kubernetes • Kubernetes上でコレクターとワークロードのゼロコード計装を行うためのオペレーター •
提供されるCustom Resource 34 Copyright © 2025, Oracle and/or its affiliates CR名 概要 OpenTelemetryCollector OpenTelemetryコレクターをK8s上に展開するためのCR Instrumentation K8s上のワークロードに対してゼロコード計装用のライブラリ/エージェントを注入ためのCR OpAMPBridge OpAMP Operator ServerとKubernetes APIをブリッジするためのCR(※詳細は後述) Instrumentation テレメトリー データ オブザーバビリティ バックエンド コレクター これどうやるの?
Instrumentationの設定例 35 Copyright © 2025, Oracle and/or its affiliates グローバルレベルで使用させるエクスポーターの設定
言語ごとに個別設定が必要なら行う。 例えば、Pythonのゼロコード計装はデフォルトでhttp/protoを使うので、 コレクターのポートを変更する。
ゼロコード計装用のライブラリ/エージェントが設定される仕組み ゼロコード計装用のライブラリ/エージェントはどのようにPodに注入されるのか? • Mutating admission webhookを用いて、ワークロード(=Pod)に対してinitContainersなどを設定することで実現 36 Copyright © 2025,
Oracle and/or its affiliates etcd API リクエスト AuthN & AuthZ Mutating admission Schema validation Validating admission API Server Webhook Webhook Webhook Webhook Webhook Webhook Admission review Admission response Admission review Admission response ここで、Podの設定(initContainersなど) を書き換え!
ゼロコード計装の対象ワークロードの識別 ゼロコード計装対象のワークロード(Pod or Namespace)に対して、特定のアノテーションを追加すると注入対象となる e.g. Javaの場合:instrumenration.opentelemetry.io/inject-java: “true” 37 Copyright ©
2025, Oracle and/or its affiliates
Mutating admission webhookによって追加される項目 38 Copyright © 2025, Oracle and/or its
affiliates ゼロコード計装用のエージェントを配置するためのボリューム javaagent.jarだけ持つbusyboxベースの超シンプルなコンテナ 計装対象のコンテナから参照させるためにEmptyDirに配置 initContainersで配置したエージェントを持つボリュームをマウント Instrumentationで設定した項目やその他の必要項目が自動的に追加
OpenTelemetryコレクターの配置モード 39 Copyright © 2025, Oracle and/or its affiliates Deployment
DaemonSet StatefulSet Sidecar
Demo: OpenTelemetry Operatorを用いてK8s上のワークロードをゼロコード計装する • JavaのアプリケーションをOpenTelemetryを用いて計装し、その結果を確認してみる • テレメトリーデータは、OpenTelemetryコレクターを介し、オブザーバビリティバックエンドに送信する 40 Copyright ©
2025, Oracle and/or its affiliates テレメトリーデータ トレース オブザーバビリティ バックエンド コレクター これをK8s wayでやってみます。 Application Performance Monitoring
OpenTelemetry Protocol with Apache Arrow OpenTelemetry Protocol with Apache Arrow
• OTEP-0156にまとまっている • Apache Arrowをテレメトリーパイプラインのバルクデータ転送に使うための取り組み(段階的に導入可) • OTLPのデータ形式(行指向)をApache Arrowに基づいた列指向に改良する • テレメトリーデータが広く利用されるようになったことによる、効率的なデータ処理やコスト削減といったニーズに対応する 41 Copyright © 2025, Oracle and/or its affiliates fig: https://github.com/open-telemetry/otel-arrow
OpenTelemetry Protocol with Apache Arrow(otel-arrow) Apache Arrow Apache Arrow •
高速なデータ交換とインメモリ分析のために作られた列指向フォーマットとライブラリを提供 42 Copyright © 2025, Oracle and/or its affiliates https://arrow.apache.org/docs/format/Intro.html 表形式のデータ 行ベースでメモリ上に表現 列ベースでメモリ上に表現 (Apache Arrowsはこっち) 集計処理などの分析処理がメモリの局所性により効率的に!
otel-arrowの導入 – フェーズ1 フェーズ1: otel-arrowレシーバー/エクスポーターの公開 • レシーバー: otel-arrowプロトコルからOTLPへの変換が責務 • エクスポーター:
OTLPからotel-arrowプロトコルへの変換が責務 • プロセッサー: 従来通り、OTLP(行指向)でデータ処理をする 43 Copyright © 2025, Oracle and/or its affiliates https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0156-columnar-encoding.md コレクター間のトラフィック量削減と 多変量時系列データに対する高い圧縮率がポイント。
otel-arrowの導入 – フェーズ2 フェーズ2: e2eのApache Arrowサポート • フェーズ1のレシーバー、エクスポーターに加えて、 otel-arrowをサポートするプロセッサーも導入 •
コレクター間のトラフィック量削減に加え、高度&効率的なデータ処理が行える 44 Copyright © 2025, Oracle and/or its affiliates https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0156-columnar-encoding.md
otel-arrowのベンチマーク(多変量時系列) 45 Copyright © 2025, Oracle and/or its affiliates https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0156-columnar-encoding.md
より実践的なトピックが聞きたい方! https://opentelemetry.connpass.com/ 46 Copyright © 2025, Oracle and/or its affiliates
OpenTelemetry Meetupに足を運びましょう!
参考資料 オブザーバビリティ・エンジニアリング https://www.oreilly.co.jp/books/9784814400126/ 入門 OpenTelemetry – 現代的なオブザーバビリティシステムの構築と運用 – https://www.oreilly.co.jp/books/9784814401024/ OpenTelemetryドキュメント
https://opentelemetry.io/ OpenTelemetry Protocol with Apache Arrow https://github.com/open-telemetry/otel-arrow 47 Copyright © 2025, Oracle and/or its affiliates
None