Slide 1

Slide 1 text

ゼロコードで実現!! OpenTelemetryとOCI APM Agentによるかんたんアプリケーション監視 Oracle Developer Day 2025 T1-3 Takuya Niita Principal Cloud Engineer Oracle Corporation Japan, Solution Architect May 23rd, 2025

Slide 2

Slide 2 text

Introduction Takuya Niita Principal Cloud Engineer Oracle Corporation Japan 2 Copyright © 2025, Oracle and/or its affiliates • 日本オラクル株式会社 ソリューションアーキテクト部 • AppDev/Container/FaaS/(a little)ML…(GPU) • Oracle Cloud Hangout Café メンバー • Oracle Groundbreakers Advocate • 前職はSIer • Oracle歴: 6年 takuya_0301

Slide 3

Slide 3 text

Agenda Copyright © 2025, Oracle and/or its affiliates 3 3 OCI APM と OpenTelemetry 2 OpenTelemetry 5 まとめ 4 Mushop によるデモ 1 Observability(監視) はなぜ必要?

Slide 4

Slide 4 text

Observability(監視) はなぜ必要? Oracle Developer Day 2025 T1-3 4 Copyright © 2025, Oracle and/or its affiliates

Slide 5

Slide 5 text

Observability = 監視? そもそも監視とは…?? • サービスやアプリケーションの健全性の確認 • 障害やトラブル発生時のトラブルシューティング、原因調査 • キャパシティ分析 • サービス利用者の行動分析… など技術的側面からビジネス運用に至るまで多岐にわたる分析調査のこと 5 Copyright © 2025, Oracle and/or its affiliates 利用ユーザに影響を与えない=ユーザ体験を損なわないようにすることが目的

Slide 6

Slide 6 text

よくある監視 = 「何が起きたのか」(過去)の把握 1. サービスの起動状態 • サービスやサーバが動いているかの死活監視 • Ping(ICMP)/HTTPなどでのヘルスチェック 2. リソース(CPU/メモリ/ディスク/ネットワーク)の健全性 • CPU使用率、メモリ使用量、ディスク容量、ネットワークトラフィックなど • 閾値(しきい値)ベース 3. ログファイル監視 • エラーログやアクセスログの収集と分析 • キーワードやパターンによるフィルタリング • e.g. Error や Failed などの単語を検索 6 Copyright © 2025, Oracle and/or its affiliates

Slide 7

Slide 7 text

「よくある監視」の課題 1. 事前に想定される事象しか検知できない(未知の事象には対応できない) • サーバが落ちる、リソースが枯渇する、エラーが発生する… 2. 症状は見えるが、原因の特定に時間がかかる or 特定が難しい or 特定できない • リソース指標やヘルスチェック結果により発生した事象を確認は可能 • 「なぜそれが起きたのか?」の特定を大量のログから分析 • 特に分散システムでは、より大量ログから… 3. システムの全体像が見えない • 取得する指標やログからシステムの全体像は掴みにくい • 相互のサービスやコンポーネントの連携や関係がわかりにくい 7 Copyright © 2025, Oracle and/or its affiliates

Slide 8

Slide 8 text

Observability(可観測性) = Observe(観測する) + Ability(能力) そもそも監視は・・・ ユーザに影響を与えない、ユーザ体験を損なわないようにすることが目的… 1. 「未知」を「既知」に • システムを詳細に観測できることで、未知の事象にも対応 2. 因果関係の分析 • リクエストの流れを追跡し、遅延や障害がどこで発生しているかを特定 3. データ駆動(生成AIの活用) • 「なぜこの現象が起きているのか」やその他自由な質問にAIが回答できるデータを収集(=>AIOps) 8 Copyright © 2025, Oracle and/or its affiliates 既に起こったこと(過去)に対する対処や調査分析だけでは不十分 今(現在)起こっていること、これから(未来)起こりそうなことも把握して対処すべき

Slide 9

Slide 9 text

Observability の最も重要なテレメトリ Metrics • システムのパフォーマンスを測定する定量的な値 Log • システム内で発生した具体的なイベントの記録 Trace • リクエストが複数サービスを横断する経路と時間 9 Copyright © 2025, Oracle and/or its affiliates Metrics Trace Log Trace / Log / Metrics 間の相互紐付けが重要

Slide 10

Slide 10 text

Observability で課題になりやすいこと 10 Copyright © 2025, Oracle and/or its affiliates 監視対象 監視基盤 管理や実装が煩雑になりがち… 監視基盤A 監視基盤B 監視基盤C

Slide 11

Slide 11 text

OpenTelemetry Oracle Developer Day 2025 T1-3 11 Copyright © 2025, Oracle and/or its affiliates

Slide 12

Slide 12 text

OpenTelemetry テレメトリを収集/生成、エクスポート(転送)するための標準プロトコルとそのツールキット • CNCF(Cloud Native Computing Foundation)プロジェクトであり、OpenTracing と OpenCensus という2つの先行プロジェ クトが2019年に統合して誕生 • この2つのプロジェクトでは、実装方式やテレメトリデータを監視基盤に送信する方法が標準化されていな かった • 監視基盤としての機能(テレメトリデータの保存や可視化など)に関する方式はスコープ外 • OpenTelemetry の実装プロダクトに委任 • OpenTelemetry に準拠する製品例 • Grafana Tempo • OCI Application Performance Monitoring • Datadog…. • Amazon X-Ray • Google Cloud Trace • Azure Monitor Application Insights • … 12 Copyright © 2025, Oracle and/or its affiliates

Slide 13

Slide 13 text

OpenTelemetry での重要な考え方 Traceが全ての肝…!! • システムの振る舞いを理解するには単一のデータポイントやデータであるメトリクスやログだけを見ても理解しにく い • システム全体を横断したトランザクション(リクエスト)データの流れ (=Trace) を把握することが重要 • ログやメトリクスとの相関関係を探りながら分析 13 Copyright © 2025, Oracle and/or its affiliates ある処理ポイントの メトリクス情報 ある処理ポイントの ログメッセージ

Slide 14

Slide 14 text

Trace と Metrics の紐付け Trace に紐づくメトリクスの可視化 • Trace には属性 (“Attributes”) と呼ばれるKey-Valueのペアをメタデータとして付与可能 • メタデータをもとに関連するメトリクスに遷移可能 • 属性は手動で紐づけることも可能だが、 OpenTelemetry Agent や 関連ライブラリのエージェントが自動で付与するこ ともある エクザンプラー(Exemplar)を利用したメトリクス • メトリクスに付与できる標本のこと • Observability(OpenTelemetry) の文脈では標本として Trace ID やエラーログを付与することが多い • 標本をもとにメトリクスからトレースへ遷移可能 14 Copyright © 2025, Oracle and/or its affiliates 紐付け 紐付け

Slide 15

Slide 15 text

Trace と Log の紐付け Trace に紐づくログの可視化 • ログメッセージ内に Trace ID を埋め込み • ログメッセージ内の Trace ID をもとに Trace に遷移可能 • 実装方法は言語に依存(OpenTelemetry により規定) • Java の場合、OpenTelemetry Java Agent と SLF4J/Logback や Log4j2 を利用することで Trace IDを埋め込み 15 Copyright © 2025, Oracle and/or its affiliates 2025-04-10T08:35:42.126660771 traceId: f700955b941efdc6672f66542f90e675 spanId: 5dd4792bad791127 Hello World 紐付け

Slide 16

Slide 16 text

Database Observability Database の OpenTelemetry を利用した監視 • OpenTelemetry がサブコンポーネントとしてプラグインを提供 • https://github.com/open-telemetry/opentelemetry-collector-contrib • ベンダーや製品依存の実装をまとめたレポジトリ • 具体的には以下のプロダクト • Oracle Database • MySQL • PostgreSQL • SQL Server …. • Databaseのエンドポイント/ユーザ名/パスワードを指定し、テレメトリを収集 • JDBC ドライバーの OpenTelemetry Provider を利用した監視も可能 • 実行された SQL ステートメントや DB ユーザなどを取得可能 • Oracle JDBC Driver の OpenTelemetry Provider もあり 16 Copyright © 2025, Oracle and/or its affiliates

Slide 17

Slide 17 text

OCI APM と OpenTelemetry Oracle Developer Day 2025 T1-3 17 Copyright © 2025, Oracle and/or its affiliates

Slide 18

Slide 18 text

OCI Application Performance Monitoring(APM) OpenTelemetry 対応の可観測性ソリューション 18 Copyright © 2025, Oracle and/or its affiliates • 分散トレーシング • トレース・データとしてトランザクション時間やエラー比率など様々な情報が自動的に計測 • ユーザー自身で計測するトレース範囲を指定することも可能 • 用途に応じた様々実装方式 • リアルユーザー・モニタリング • ブラウザのページ・ロードやパフォーマンスを記録 • Java アプリケーション・サーバー・モニタリング • JMX メトリクスに関連する情報を記録 • 可用性モニタリング(合成モニタリング) • 定期的にアプリケーションの稼働状況を調査 Application Performance Monitoring リアルユーザー モニタリング アプリケーション サーバー モニタリング 分散トレーシング 合成モニタリング

Slide 19

Slide 19 text

OCI Application Performance Monitoring(APM) OpenTelemetry 対応の可観測性ソリューション Application Performance Monitoring リアルユーザー モニタリング アプリケーション サーバー モニタリング 分散トレーシング 合成モニタリング • 可用性モニタリング(合成モニタリング) • 定期的にアプリケーションの稼働状況を調査 • 分散トレーシング • トレース・データとしてトランザクション時間やエラー比率など様々な情報が自動的に計測 • ユーザー自身で計測するトレース範囲を指定することも可能 • 用途に応じた様々実装方式 • リアルユーザー・モニタリング • ブラウザのページ・ロードやパフォーマンスを記録 • Java アプリケーション・サーバー・モニタリング • JMX メトリクスに関連する情報を記録 OCI APM Agentを利用する ソリューションにフォーカス…!! 19 Copyright © 2025, Oracle and/or its affiliates

Slide 20

Slide 20 text

OCI APM Agent( Browser / Java / .NET ) APM Browser Agent • ユーザがブラウザで操作したイベント、トレースやパフォーマンスを記録 • フロントエンドアプリケーションに専用のJavaScriptを埋め込むことで実現 APM Java Agent • Javaアプリケーションサーバー(Oracle WebLogic Server/ Spring Boot/Tomcat/Jetty/JBoss Application Server)の トレース や JMX メトリクスを記録 • JMX メトリクスはデフォルトで設定済みのダッシュボードで可視化可能 • javaagentにより実現(=> コード改修不要!!) APM .NET Agent • .NET Framework(4.6.2以上)、.NET 6以上で実装されたアプリケーションのトレースを記録 • Import-Moduleを利用して実現(=> コード改修不要!!) 20 Copyright © 2025, Oracle and/or its affiliates

Slide 21

Slide 21 text

OCI APM Agent( Browser / Java / .NET ) APM .NET Agent • .NET Framework(4.6.2以上)、.NET 6以上で実装されたアプリケーションのトレースを記録 • Import-Moduleを利用して実現(=> コード改修不要!!) 21 Copyright © 2025, Oracle and/or its affiliates APM Browser Agent • ユーザがブラウザで操作したイベント、トレースやパフォーマンスを記録 • フロントエンドアプリケーションに専用のJavaScriptを埋め込むことで実現 APM Java Agent • Javaアプリケーションサーバー(Oracle WebLogic Server/ Spring Boot/Tomcat/Jetty/JBoss Application Server)の トレース や JMX メトリクスを記録 • JMX メトリクスはデフォルトで設定済みのダッシュボードで可視化可能 • javaagentにより実現(=> コード改修不要!!) 今回はここにフォーカス…!!

Slide 22

Slide 22 text

フロントエンドパフォーマンス監視 with OCI APM APM Browser Agentによるリアルユーザーモニタリング • ページビュー、ユーザーセッション、Apdex※スコア、利用デバイス/ブラウザ/OS などを可視化 • カスタム属性を構成することにより、独自メトリクスのモニタリングも可能 ※:Webアプリケーションやサービスのユーザー満足度を測るための、業界標準の指標 22 Copyright © 2025, Oracle and/or its affiliates

Slide 23

Slide 23 text

Trace と Metrics の相関関係 with OCI APM トレースから JMX メトリクスへの遷移 • ヒープ使用量、GC(ガベージコレクション)、CPU使用率などのメトリクス情報を可視化 23 Copyright © 2025, Oracle and/or its affiliates トレースの詳細からワンクリック 該当のAPサーバの JMX メトリクス

Slide 24

Slide 24 text

Trace と Log の相関関係 with OCI APM トレース ID やスパン ID をもとにトレース ID からログへの遷移 • 特定のトレースに紐づいたログのみを可視化(事前設定※が必須) ※https://docs.oracle.com/ja-jp/iaas/application-performance-monitoring/doc/configure-drilldown-configurations.html 24 Copyright © 2025, Oracle and/or its affiliates トレースの詳細からワンクリック 該当のトレースIDに紐づくログ

Slide 25

Slide 25 text

Database Observability with OCI APM JDBC Driver のトレース 25 Copyright © 2025, Oracle and/or its affiliates JDBC スパンをクリック JDBC に関するメトリクスを確認可能

Slide 26

Slide 26 text

【番外編】Database Observability with OCI APM Database Management / Ops Insights と トレースとの連携 • トレース から Database Management の Performance Hub およびOps Insights の SQL インサイト機能を利用して SQLパフォーマンスを監視および分析が可能(Oracle Database / HeatWave) • 事前設定が必須※ ※ https://docs.oracle.com/ja-jp/iaas/application-performance-monitoring/doc/configure-drilldown-configurations.html 26 Copyright © 2025, Oracle and/or its affiliates Performance Hub のイメージ トレースの詳細からワンクリック 該当のSQL IDに関するパフォーマンス

Slide 27

Slide 27 text

デモ Oracle Developer Day 2025 T1-3 27 Copyright © 2025, Oracle and/or its affiliates

Slide 28

Slide 28 text

MuShop with APM Oracle が公開している Cloud Native アーキテクチャサンプル アプリケーション “MuShop” • OCI の主要サービスを組み合わせることで、スケーラブル かつ疎結合なサンプル EC サイト • OKEでのアプリケーション管理、API Gateway による サービス公開、OCI Functions を活用したサーバーレス 処理など多彩な OCI のサービスを利用 • 各サービスが独立して動作するため、スケーラビリティや 拡張性が高い • MuShop の商品購入シナリオをもとに Observability を OCI APM で実践…!! 28 Copyright © 2025, Oracle and/or its affiliates

Slide 29

Slide 29 text

まとめ Oracle Developer Day 2025 T1-3 29 Copyright © 2025, Oracle and/or its affiliates

Slide 30

Slide 30 text

まとめ 監視(Observability)の本質と既存の監視システムの課題 • 監視(Observability)は、ユーザ体験を損なわないようにすることが目的 • 従来の監視では、想定される事象のみの検知、分散システムでは原因特定が困難、システム全体が把握しづらい • これからの監視は、「過去に起こったこと」だけではなく、「今(現在)起こっていること」、「これから(未来)起 こりそうなこと」も把握して対処すべき OpenTelemetry の活用 • テレメトリを収集/生成、エクスポート(転送)するための標準プロトコルとそのツールキット • Metrics / Log / Trace を主要なテレメトリシグナルとして持つ • それぞれのテレメトリは独立して監視するのではなく、相関関係を探ることが重要 OCI APMでの Observability の実践 • OpenTelemetry に準拠したサービスでフロントエンド(ブラウザ)からデータベースまで一貫して監視 • Agentを利用することで、ゼロコードで簡単に Observability 環境を実装 • OCIのデータベース監視サービスを利用すればSQLパフォーマンスの監視や分析も可能 30 Copyright © 2025, Oracle and/or its affiliates

Slide 31

Slide 31 text

参考情報 OpenTelemetry • 公式ドキュメント • https://opentelemetry.io/ja/ • Oracle Cloud Hangout Cafe(OCHaCafe) Season9 #5 • https://speakerdeck.com/oracle4engineer/shi-jian-opentelemetry • Oracle Cloud Hangout Cafe(OCHaCafe) Season4 #6 • https://speakerdeck.com/oracle4engineer/oracle-cloud-hangout-cafe-observabilityzai-ru-men OCI 関連サービス群 APM: https://www.oracle.com/jp/manageability/application-performance-monitoring/ Database Management: https://www.oracle.com/jp/manageability/database-management/ Logging Analytics: https://www.oracle.com/jp/manageability/logging-analytics/ Operation Insight: https://www.oracle.com/jp/manageability/ops-insights/ APMとOps Insightsの連携: https://blogs.oracle.com/oracle4engineer/post/oci-ops-insights 31 Copyright © 2025, Oracle and/or its affiliates

Slide 32

Slide 32 text

32 Copyright © 2025, Oracle and/or its affiliates OCI Cloud Native に特化した書籍を発売予定!! 3.ハンズオンで学ぶ OCI Cloud Native 3-1. ハンズオン概要 3-1-1. MuShop について 3-1-2. MuShop のアーキテクチャ 3-1-3. MuShop のサービス 3-1-4. MuShop における自動化 3-1-5. MuShop とオブザーバビリティ 3-2. ハンズオンの準備と実践 3-2-1. OCI Free Trail の取得 3-2-2. MuShop セットアップ準備 3-2-3. 本書専用カスタマイズ MuShop 3-2-4. MuShop の IaC と CI/CD 3-2-4-1. OCI Resource Manager による IaC 3-2-4-2. OCI DevOps による CI/CD 3-2-4-3. MuShop 利用ガイダンス 3-2-4-4. ハンズオン環境の破棄 3-3. MuShop のオブザーバビリティ 3-3-1 メトリクス監視 3-3-2. ログ監視 3-3-3. パフォーマンス監視 2.OCI におけるクラウドネイティブを学ぶ 2-1. OCI とクラウドネイティブ 2-1-1. OCI の概要と特徴、クラウドネイティブサービス 2-1-1-1. OCI の概要と特徴 2-1-1-2. OCI におけるクラウドネイティブとクラウドネイティブサービス 2-2. OCI クラウドネイティブサービス 2-2-1. 開発フレームワーク 2-2-1-1. Helidon 2-2-1-2. Micronaut 2-2-2. アプリケーション実行基盤 2-2-2-1. OCI Kubernetes Engine 2-2-2-2. OCI Container Instances 2-2-2-3. OCI Functions 2-2-3. API管理 2-2-3-1. OCI API Gateway 2-2-4. メッセージング 2-2-4-1. OCI Streaming 2-2-4-2. OCI Queue 2-2-5. 開発・運用管理 2-2-5-1. OCI Resource Manager 2-2-5-2. OCI DevOps 2-2-5-3. OCI Registry 2-2-6. オブザーバビリティ 2-2-6-1. OCI Monitoring 2-2-6-2. OCI Logging 2-2-6-3. OCI Application Performance Monitoring 2-2-7. データベース 2-2-7-1. Autonomous Database 2-2-7-2. OCI データストアアラカルト 1.クラウドネイティブを学ぶ 1-1. クラウドネイティブとは? 1-1-1. クラウドネイティブの定義 1-1-1-1. Cloud Native Computing Foundation(CNCF)について 1-1-1-2. CNCFが定義するクラウドネイティブ 1-1-1-3. NIST が定義するクラウドコンピューティング 1-1-1-4. クラウドネイティブにおける自動化 1-1-1-5. クラウドネイティブを実現する道しるべ 1-1-1-6. クラウドネイティブとは? 1-1-2. DevOps 1-1-2-1. DevOps とは? 1-1-2-2. DevOps を実現する手法 1-1-2-3. コンテナアプリケーション開発 1-1-2-4. CI/CD 1-1-3. マイクロサービス 1-1-3-1. マイクロサービスとは? 1-1-3-2. コンテナアプリケーションとマイクロサービス 1-1-3-3. ビジネス市場とマイクロサービス 1-1-4. Infrastructure as Code 1-1-4-1. Infrastructure as Code とは? 1-1-5. オブザーバビリティ 1-1-5-1. クラウドネイティブにおけるオブザーバビリティ 1-1-5-2. オブザーバビリティを支えるプライマリー・シグナル 1-1-6. データベース 1-1-6-1. クラウドネイティブにおけるデータベース Oracle Cloud Hangout Café メンバー【市川、仁井田、川村、野中】が執筆、古手川(監修) ※上記内容は発売時に変更となる可能性があります。

Slide 33

Slide 33 text

No content