Slide 1

Slide 1 text

ja.mackerel.io 2025-07-11 OpenTelemetryセマンティック規約の 恩恵とMackerel APMにおける活用例 SRE NEXT 2025 Gold Sponsor Session 株式会社はてな Mackerel開発チーム サブディレクター・テックリード 朝倉 一希 (id:arthur-1)

Slide 2

Slide 2 text

自己紹介 朝倉 一希 ASAKURA Kazuki 株式会社はてな Mackerel開発チーム サブディレクター・テックリード オブザーバビリティ関連機能の開発を担当 id:arthur-1 @Arthur1__ @Arthur1 2

Slide 3

Slide 3 text

OpenTelemetryとは OpenTelemetryは、メトリックやログなどのテレメトリーデータ の生成・投稿を、ベンダーの違いを超えて標準化することを目的 としたプロジェクト 3 https://opentelemetry.io/

Slide 4

Slide 4 text

標準化されていない世界 4 ベンダー独自の エージェント ベンダー独自の プロトコル hostID: 3CmE943 cpu.user.percentage 1750000000 30.0 ベンダー独自の データ形式

Slide 5

Slide 5 text

OTelで標準化された世界 5 OpenTelemetryの エージェント OpenTelemetryの プロトコル name: system.cpu.time sum: dataPoints: - asInt: 12345678 OpenTelemetryの データ形式 送り先のプラットフォームの違いによらず 同じものが使える

Slide 6

Slide 6 text

具体的にはどんな標準化をしている? ● 仕様(データモデル) ● API ● SDK ● 通信プロトコル ● セマンティック規約 ⇦これが今日の話題 など…… 6

Slide 7

Slide 7 text

OpenTelemetry セマンティック規約とは 7

Slide 8

Slide 8 text

トレース用語 以降は、主にOpenTelemetryのトレースを例に出して説明します: 8 POST /message validation() saveMessage() INSERT スパン トレースに含まれる処理・操作の単位 INSERT

Slide 9

Slide 9 text

トレース用語 以降は、主にOpenTelemetryのトレースを例に出して説明します: 9 POST /message validation() saveMessage() INSERT INSERT ● http.request.method = “POST” ● url.path = “/message” ● url.scheme = “https” 属性 注釈・メタデータを付与

Slide 10

Slide 10 text

セマンティック規約 Semantic Conventions (semconv) メトリクス名や属性名などのデータについて、 ● コードベース ● ライブラリ ● プラットフォーム これらの違いを超えて、標準の名前・意味を定義するもの https://opentelemetry.io/docs/specs/semconv/ 10

Slide 11

Slide 11 text

セマンティック規約がカバーする領域 ◯ 領域を問わない一般的な規約 例) メトリクスの単位にはUCUM形式を使用する ◯ 領域ごとの規約 ● HTTPサーバ・クライアント ● クラウドプロバイダー ● CI/CD ● 生成AI など…… 11

Slide 12

Slide 12 text

領域ごとのセマンティック規約の例 HTTPサーバのトレーススパンには以下のような属性を必須で付与 しましょう、と書かれている https://opentelemetry.io/docs/specs/semconv/http/http-spans/ #http-server-span 12 属性名 属性の意味 属性値の例 http.request.method リクエストのHTTPメソッド GET url.path URIのパス /search url.scheme URIのスキーム https

Slide 13

Slide 13 text

セマンティック規約のバージョン セマンティック規約は変化する ● 安定版でないものについて、より良い命名のために ● 新たな領域に関して規約を策定 しかし、決まり事がmutableだと都合が悪いので、バージョニング されている 2025-07-11時点ではv1.36.0 13

Slide 14

Slide 14 text

セマンティック規約と計装ライブラリ OpenTelemetry利用者がセマンティック規約を意識しなければな らない機会は少ない OpenTelemetryの計装ライブラリは基本的にはセマンティック 規約に準じているので、それを使えば良い ライブラリによっては古い規約に準じていることがある(コント リビュートチャンス!) 例) https://github.com/open-telemetry/opentelemetry-ruby/issues/1647 14

Slide 15

Slide 15 text

セマンティック規約の役割 ◯ システムが違っても、同じやり方で運用できる ➔ ダッシュボードのテンプレートを使いまわせる ➔ 他と同じだから、名前を見るだけでどんなものか想像できる ◯ シグナルとオブザーバビリティバックエンドを繋ぐ ➔ 意味に合意があるので、特化した表示・分析ができる ➔ テレメトリ同士を関連づけることができる 15

Slide 16

Slide 16 text

セマンティック規約を活用した MackerelのAPM機能 16

Slide 17

Slide 17 text

Mackerel APMとは アプリケーション(サービス)を中心とした、シンプルで扱いやすい インタフェースで、テレメトリーデータから洞察を得られる機能 2025年5月に正式リリース🎊 17

Slide 18

Slide 18 text

現時点のAPMはトレース中心 トレースの集計情報から、着目したい属性を特定してドリルダウン +α 具体的なトレースの様子を観察 → アプリケーションの問題解決のための洞察を得られる 18

Slide 19

Slide 19 text

トレースの投稿はOpenTelemetryで OpenTelemetry形式のトレースを、OTLP (OpenTelemetry Protocol) でMackerelに投稿 19 アプリ ケーション トレース 計装 OTelで標準化された形式/手法で トレースを生成/投稿

Slide 20

Slide 20 text

APM機能紹介 | HTTPサーバー endpointごとの統計情報を 表形式で表示 どのendpointが遅いのか、 エラーが多いのかがわかる ここから、特定のendpoint のトレースに遷移可能 20

Slide 21

Slide 21 text

APM機能紹介 | データベース 呼び出しているデータベー スのクエリごとの統計情報 を表形式で表示 どのクエリが遅いのか、呼 び出しが多いのかがわかる ここから、特定のクエリを 呼び出しているトレースに 遷移可能 21

Slide 22

Slide 22 text

APM機能紹介 | 課題 アプリケーションで起きてい るエラーを管理 どのエラーが多いのかや、エ ラーになる処理の中身がどう なっているかがわかる 発生回数の推移や関連するト レースの表示が可能 22

Slide 23

Slide 23 text

APM機能紹介 | 簡易フィルタ機能 APMサービス詳細の各タブ の上部には、環境やデプロ イバージョンを絞り込める セレクタを設置 本番環境だけ見たいとき、 リリース後に様子を見たい ときなどで便利 23

Slide 24

Slide 24 text

これらの機能はセマンティック規約あってこそ 「HTTPサーバーのスパンにはこんな属性を必須で付与する」とい う約束がセマンティック規約で定められている Mackerelはそれを元にHTTPサーバーのスパンを抽出し、アプリ ケーション目線での分析情報をユーザーに提示する データベース・課題・簡易フィルタ機能についても同様 24

Slide 25

Slide 25 text

更新される規約との向き合い Mackerel開発チームでは、セマンティック規約の更新を都度確認 し、最新のセマンティック規約に準じたシグナルにも対応して分析 表示できるようにしている セマンティック規約のschemaファイルに含まれている変更情報を解 析し、参照している属性に変更があれば通知 25 metrics: changes: - rename_metrics: system.network.connections: system.network.connection.count

Slide 26

Slide 26 text

まとめ 26

Slide 27

Slide 27 text

セマンティック規約の恩恵 セマンティック規約は、シグナルデータの名前や意味を標準化す る取り決め この規約があることで、オブザーバビリティプラットフォームは シグナルの意味を解釈して、システム目線の分かりやすい分析を 提供できる 27

Slide 28

Slide 28 text

MackerelはSRE NEXTにスポンサーしています 本日紹介したAPMのデモや、監視・オブザーバビリティに関する 投票企画をやっています。ノベルティの配布もあります。 スポンサーブースにぜひお越しください! 28 「モニタリングツール体験 パーク」企画でもMackerelが 展示されています!

Slide 29

Slide 29 text

8/7(木)イベントやります! 29

Slide 30

Slide 30 text

ご清聴いただき ありがとうございました 30