Slide 1

Slide 1 text

オブザーバビリティプラットフォーム 開発におけるオブザーバビリティ との向き合い id:arthur-1 株式会社はてな 2025-07-30 Hatena Engineer Seminar #34 「オブザーバビリティの実現と運用編」

Slide 2

Slide 2 text

Arthurと申します 株式会社はてな Mackerel開発チーム サブディレクター・テックリード 𝕏: @Arthur1__ Mackerelのオブザーバビリティ関連機能 の企画・開発を担当 2

Slide 3

Slide 3 text

“Mackerel” as an Observability Platform 3

Slide 4

Slide 4 text

ラベル付きメトリック機能のリリース 4

Slide 5

Slide 5 text

APM機能のリリース 5

Slide 6

Slide 6 text

2つの目線でO11yと向き合う ● オブザーバビリティプラットフォームとし ての機能の企画者として ● システム開発・運用者として 6

Slide 7

Slide 7 text

おしながき ● オブザーバビリティについておさらい ● Mackerelチームでのオブザーバビリティ実践 事例 ● Mackerelチームのオブザーバビリティキャッ チアップ 7

Slide 8

Slide 8 text

オブザーバビリティ についておさらい 8

Slide 9

Slide 9 text

オブザーバビリティ Observability(可観測性) システムの出力から、その内部の状態を測定できる度合い 9 🔥 🔥

Slide 10

Slide 10 text

OpenTelemetry OpenTelemetryは、メトリックやログなどのテレメトリー データの生成・投稿を、ベンダーの違いを超えて標準化する オブザーバビリティフレームワーク・ツールキット 10 https://opentelemetry.io/

Slide 11

Slide 11 text

Mackerelチームでの オブザーバビリティ実践事例 11

Slide 12

Slide 12 text

Case 1: APIコール時のレートリミッ ト Mackerelはクラウドインテグレーション機能を提供し ている 定期的にクラウドプロバイダーのAPIをコールし、メト リックを取得してMackerelに投稿 たまにレートリミットに達してAPIの結果取得に失敗こ とがあり、これがよく発生しているサービスやユー ザーを知りたい 12

Slide 13

Slide 13 text

Case 1の解決方法 APIコール数を可視化 クラウドプロバイダーAPIの呼び出し数を、以下 のような属性を持つラベル付きメトリックとして 計装 ● API名 ● インテグレーション設定を識別できるID ● HTTPステータスコード 13

Slide 14

Slide 14 text

呼び出しエラーになったOrgがわかる 14 ***インテグレーション 設定を識別するID***

Slide 15

Slide 15 text

API名ごとの呼び出し回数がわかる 15

Slide 16

Slide 16 text

APIコール数計装の成果 以下のようにドリルダウンして、影響範囲を特定 できる: ● レートリミットが発生しているインテグレーション設 定と時間を特定 ● 具体的にどのAPIコールで発生しているかを特定 APIコール数が異常に多いケースを特定し、コー ル数削減に成功 16

Slide 17

Slide 17 text

Case 2: 処理の高速化 Mackerelのラベル付きメトリックの保存処理を 高速化するため、リファクタリングを行った 実装を切り替える前に、どれぐらい処理が速く なったのかを知りたい 17

Slide 18

Slide 18 text

Case 2の解決方法 高速化対象の処理にトレースを計装 トレースを計装しMackerelに送信すること で、どの処理で詰まっているかが可視化される 18

Slide 19

Slide 19 text

トレースの検索 新実装はまだ一部の 環境でのみ展開され ている 新実装のスパン名を 指定することでト レースを検索できる 19

Slide 20

Slide 20 text

トレースの様子 20 ←新実装の方が速くなっていることがわかる 旧実装

Slide 21

Slide 21 text

dogfooding Mackerelチームでは、自分たちのサービスを 使って、システムのオブザーバビリティを担保し ている 見たいものが見えない!となったら新機能として 企画・実装するケースもある 21

Slide 22

Slide 22 text

PWGとオブザーバビリティ PWG (Performance Working Group) Mackerelチームや他のはてなのチームで行っている ミーティング 定期的に集まり、みんなでシステムの様子を観察する ダッシュボードを眺めて感じた違和感から問題の根 本に辿り着くためにも、オブザーバビリティが役 立っている 22

Slide 23

Slide 23 text

Mackerelチームの オブザーバビリティ キャッチアップ 23

Slide 24

Slide 24 text

オブザーバビリティの動向 オブザーバビリティは今ホットなトピック フレームワークであるOpenTelemetryのツール 群も頻繁に更新される Mackerelチームとしては、最新の動向を追って いく必要がある 24

Slide 25

Slide 25 text

オブザーバビリティ研究会 オブザーバビリティ研究会を2週間に1回実施 →OpenTelemetry Collectorが2週間に1回リ リースされるのと同じ周期 オブザーバビリティの動向やOpenTelemetryに 関するアップデートをキャッチアップ 25

Slide 26

Slide 26 text

開発合宿の実施 まとまった時間で技術検証したいものについては、 開発合宿を開催して行っている ● OpAMPによるOTel Collectorのリモート設定管理 ● トレースによるデプロイフローの可視化 ラベル付きメトリック機能も開発合宿から生まれた 26

Slide 27

Slide 27 text

機械的な仕組みも APM機能でテレメトリーの意味を尊重した表示や集計を行うた めに参照しているOpenTelemetryセマンティック規約に更新が あると、私たちも対応する必要がある セマンティック規約のschemaファイルに含まれている変更情 報を解析し、参照している属性に変更があれば通知 27 metrics: changes: - rename_metrics: system.network.connections: system.network.connection.count

Slide 28

Slide 28 text

まとめ 28

Slide 29

Slide 29 text

まとめ Mackerelチームでは、システムの問題解決のためにオ ブザーバビリティを実践している また、オブザーバビリティやOpenTelemetryに関する 動向を定期的に追っている これらの取り組みで得た知識やアイデアは、自分たち のシステムの運用のみならず、Mackerelの機能開発に も役立てている 29

Slide 30

Slide 30 text

関連エントリ ● Azure SDKのHTTP Pipeline Policyの活用事例:APIコール数手動計装とクライ アントサイドキャッシュ - Diary of a Perpetual Student https://blog.arthur1.dev/entry/2024/07/15/110000 ● トレースを起点としたアプリケーションエラー調査の事例を紹介します - Mackerel ブログ https://mackerel.io/ja/blog/entry/tech/tracing-workthrough ● はてなの「PWG」という取り組みを builderscon 2024 で話してきました - Hatena Developer Blog https://developer.hatenastaff.com/entry/2025/03/31/190000 ● SRE NEXT 2025でOpenTelemetryセマンティック規約の紹介をしました - Diary of a Perpetual Student https://blog.arthur1.dev/entry/2025/07/14/174055 30

Slide 31

Slide 31 text

宣伝: 8/7(木)イベントやります! 31 https://mackerelio.connpass.com/event/361275/

Slide 32

Slide 32 text

おしまい 32