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

APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetr...

APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetry in the Java

Avatar for soudai sone

soudai sone PRO

February 24, 2026
Tweet

Resources

ゼロコードではじめる!50分でAPM入門ハンズオン

https://ja.mackerel.io/info/event/mackerel-seminar20260226

2026.2.26 12:00 - 12:50のMackerelの無料ハンズオンのリンクです。

More Decks by soudai sone

Other Decks in Technology

Transcript

  1. 自己紹介
 曽根 壮大(41歳)
 Have Fun Tech LLC 代表社員
 株式会社リンケージ CTO

    兼 COO
 
 そ
 • 日本PostgreSQLユーザ会 勉強会分科会 担当
 • 3人の子供がいます(長女、次女、長男)
 • 技術的にはWeb/LL言語/RDBMSが好きです
 • コミュニティが好き たけ
 ね
 とも

  2. 経歴 高校卒業
 浪人
 警察官
 派遣社員
 社内SE
 インフラエンジニア
 Web エンジニア
 フルスタック


    エンジニア
 CTO(第1期)
 Customer Reliability Engineer
 CTO(第2期)
 独立
 ここから東京 いまここ リーマンショックと警察官の退職 タイミングが重複する 
 ソフトウェア エンジニア 
 CTO(第3期)
 COO & CTO

  3. • 3つのシグナルをベースにテレメトリーデータを収集する
 ◦ ログ
 ◦ メトリック
 ◦ トレース
 • 集めたデータを任意のバックエンドへエクスポートする


    • 上記を満たすための標準規格を定めた
 オープンソースプロジェクト
 OpenTelemetryとは 言語やベンダーに依存しない 
 もちろんJavaもサポート! 

  4. • ログ
 ◦ システムで発生したイベントのタイムスタンプ付きのメッセージの記録 
 ◦ 基本的にはテキストデータ
 ▪ フォーマットは指定されていない 


    ▪ JSONを使うことが多い
 ◦ メリット
 ▪ 簡単でわかりやすい
 ▪ あとから集計できる
 ◦ デメリット
 • ストレージコストがとにかく高い
 3つのシグナル
  5. • メトリックス
 ◦ システムの数値データを集計した時系列の記録 
 ◦ グラフにすることができる
 ▪ 線グラフとか棒グラフとか色々見せ方はあるが線グラフが多い 


    ◦ メリット
 ▪ 数値の集計は自由に設定できる 
 ▪ 数値なので閾値でアラートを仕掛けることができる 
 ▪ 軽量なのでストレージコストが安い 
 ◦ デメリット
 • 数値だけでは根拠はわからない 
 • 瞬間ではなく、一定時間の時系列データが必要 
 3つのシグナル
  6. • メトリックス
 ◦ システムの数値データを集計した時系列の記録 
 ◦ グラフにすることができる
 ▪ 線グラフとか棒グラフとか色々見せ方はあるが線グラフが多い 


    ◦ メリット
 ▪ 数値の集計は自由に設定できる 
 ▪ 数値なので閾値でアラートを仕掛けることができる 
 ▪ 軽量なのでストレージコストが安い 
 ◦ デメリット
 • 数値だけでは根拠はわからない 
 • 瞬間ではなく、一定時間の時系列データが必要 
 3つのシグナル 今日の体重ではなく、連続した体重がないと 
 ダイエットが上手く言っているかはわからない 

  7. • トレース
 ◦ セッション単位やイベントIDを元に経路のイベントを記録 
 ◦ アプリケーションが別れていても順を追うことができる 
 ◦ メリット


    ▪ ユーザの導線やボトルネックを把握しやすい 
 ▪ N+1を呼んでいる関数など内部構造がわかる 
 ▪ システムをまたいだ経路がわかる 
 ◦ デメリット
 ▪ ストレージのコストが高い
 ▪ アプリケーション側の対応が必要な場合も多い 
 3つのシグナル
  8. • トレース
 ◦ セッション単位やイベントIDを元に経路のイベントを記録 
 ◦ アプリケーションが別れていても順を追うことができる 
 ◦ メリット


    ▪ ユーザの導線やボトルネックを把握しやすい 
 ▪ N+1を呼んでいる関数など内部構造がわかる 
 ▪ システムをまたいだ経路がわかる 
 ◦ デメリット
 ▪ ストレージのコストが高い
 ▪ アプリケーション側の対応が必要な場合も多い 
 3つのシグナル 今日の主役はここ!! 

  9. • OpenTelemetry API
 • OpenTelemetry SDK
 • OpenTelemetry Protocol
 •

    OpenTelemetry Collector
 • OpenTelemetry exporters
                   …etc
 OpenTelemetryの主な構成要素 他にも規則とか色々ある 

  10. 手動計装の場合 Javaアプリケーション
 Collector
 Receivers
 Exporter
 OTel Auto Inst
 OTel SDK


    OTel API
 backend
 Service
 自分がコードの任意の場所に 計測を設定する

  11. 自動計装の場合 Javaアプリケーション 
 Collector
 Receivers
 Exporter
 OTel Auto Inst
 OTel

    SDK
 OTel API
 backend
 Service
 自動的に計測データを収集する 

  12. • テレメトリーデータは全部集めるのが理想 
 ◦ しかし、お金がかかる
 ◦ 特にログがめちゃめちゃ高くなる 
 ◦ 最初は困ったときはS3を見に行く、からでも良い

    
 • 初手はメトリックスから始めるのが良い 
 ◦ 事前に集計できるのでコストが圧縮しやすい 
 ◦ 時系列データはモニタリングに基本なので扱いやすい 
 ◦ 時系列データだけでもわかることはたくさんある 
 • ログよりはトレースの方がインパクトがある 
 ◦ APMを活用できるとデバッグが変わる 
 ◦ レガシーコードのバージョンアップとか始める人は強い味方になってくれる 
 ◦ データが多すぎる場合はサンプリング 
 ◦ スパンも活用すると扱いやすさが格段にあがる 
 実務で役立つAPMのTips
  13. スパン トレースを活用するときに区切りをつける
 A処理 B処理 C処理 …… Trace span span span

    トレースを活用するときに区切りをつける
 処理ごとに区切る
  14. • spanを設定するときにトレースIDとDBを関連付する情報も登録する 
 ◦ 例:ユーザid、テナントid
 ◦ ロジックに関わるような場合は処理結果なども対象になる 
 • バッチの処理対象件数やメッセージのidなども有効

    
 ◦ あとから取得できないのでデバッグに必要なデータをできるだけ 
 登録しておくと良い
 ◦ 特にバッチや非同期処理などは重要 
 • ログを見に行かなくても処理の流れが追えるので便利 
 ◦ デバッガのブレークポイントのように使える 
 • 特定のユーザや条件を設定するなども有効 
 ◦ 実行環境のOSやブラウザなど
 ◦ 同じユーザでも実行環境が違うことはありえる 
 属性を活用する