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
HonoとOpenTelemetryで実現するオブザーバービリティ構築
Search
sugar-cat
October 17, 2025
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HonoとOpenTelemetryで実現するオブザーバービリティ構築
sugar-cat
October 17, 2025
More Decks by sugar-cat
See All by sugar-cat
ErrorTrackingとOrchestrion
sugarcat7
0
430
DiscordとCloudflare
sugarcat7
2
1.2k
Cloudflare Workflowsを使いたい倒したい
sugarcat7
8
2.6k
tslogで実現するセキュアなメタデータ管理とロギング
sugarcat7
4
1.6k
最近個人開発が熱い ~モニタリング強化編v0.1.0~
sugarcat7
3
520
Honoで実現するバックエンド開発のイマ
sugarcat7
23
6.4k
GoとWASI~超入門~
sugarcat7
2
320
最近個人開発が熱い ~多言語対応編~
sugarcat7
2
430
ボイラープレート自動生成ツールを使わなくなった話.pdf
sugarcat7
4
780
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
940
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
460
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Believing is Seeing
oripsolob
1
190
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
640
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
Thoughts on Productivity
jonyablonski
76
5.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
990
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Transcript
HonoとOpenTelemetryで実現 するオブザーバービリティ構築 2025/10/18 Hono Conference 2025 sugar cat
2 sugar cat(@sugar235711) SRE || SWE [Hono登壇] ・Hono Conference 2024(Using
Hono in B2B SaaS) ・Honoで実現するバックエンド開発のイマ [Honoブログ] ・Honoを使い倒したい2024 ・HonoとCasbinで認可制御を実装する ・HonoでService Workerを扱いやすくする ・Honoざっくりキャッチアップ(v4.6.0〜v4.10.0) 登壇者情報 @sugar235711 @sugar-cat7
3 Agenda 1. 速習OpenTelemetry 2. Honoと分散トレーシング 3. Honoの計装
4 システムの内部状態を外部から観測する能力のこと(=可観測性) オブザーバビリティ 1. 速習OpenTelemetry
5 システムの内部状態を外部から観測する能力のこと(=可観測性) オブザーバビリティ 1. 速習OpenTelemetry システムに対して計装を行いテレメトリデータが収集、 適切に可視化がされている状態(=可観測性が高い) ・ログ ・メトリクス ・トレース
6 計装し収集したテレメトリデータを任意のモニタリングツールで可視化を 行い障害モード(デバッグ)に役立てる オブザーバビリティ 1. 速習OpenTelemetry
7 テレメトリデータ(ログ、トレース、メトリクス...etc)を統一的なフォー マットで扱うための仕様を策定したCFCNのIncubatingプロジェクト ・仕様/プロトコルの標準化(OTLP) ・各種言語向けのSDKの提供 ・ベンダー非依存のCollectorの提供 OpenTelemetryとは 1. 速習OpenTelemetry
8 テレメトリデータ(ログ、トレース、メトリクス...etc)を統一的なフォー マットで扱うための仕様を策定したCFCNのIncubatingプロジェクト ・仕様/プロトコルの標準化(OTLP) ・各種言語向けのSDKの提供 ・ベンダー非依存のCollectorの提供 OpenTelemetryとは 1. 速習OpenTelemetry
9 複数のシステム・サービス間のトランザクションの流れを追跡し収集する 監視手法 例えばAPIのエンドポイントごとの流れや処理時間をTraceできる ・Span: 操作の単位 ・Attribute: メタデータ 分散トレーシング 2.
Honoと分散トレーシング
10 複数のサービスを経由する場合、HTTPヘッダーに格納された情報を コンテキストに乗せて伝搬することで関連づける(Context Propagation) 分散トレーシング 2. Honoと分散トレーシング
11 複数のサービスを経由する場合、HTTPヘッダーに格納された情報をコンテ キストに乗せて伝搬することで関連づける(Context Propagation) 分散トレーシング 2. Honoと分散トレーシング エンドポイントへのリクエストから HTTP Headerの情報を取り出す
12 複数のサービスを経由する場合、HTTPヘッダーに格納された情報をコンテ キストに乗せて伝搬することで関連づける(Context Propagation) 分散トレーシング 2. Honoと分散トレーシング HTTP Serverの場合は セマンティック規約に従い
Attributeを付与してSpanを開始 https://opentelemetry.io/docs/specs/semconv/http/http-spans/#http-server-span
13 複数のサービスを経由する場合、HTTPヘッダーに格納された情報をコンテキストに乗せて伝搬する ことで関連づける(Context Propagation) 分散トレーシング 2. Honoと分散トレーシング 通信を行う場合はHTTP Client(fetch)に対してHeaderを注入
14 再見 分散トレーシング 2. Honoと分散トレーシング
15 HTTP Server/Clientにおいて手動でSpanやPropagation等の実装をして も良いが、仕様(セマンティック規約等)への追従が大変なので、基本は用 意されたライブラリを使うのが良い Honoにおける計装 2. Honoと分散トレーシング
16 Honoにおける計装対象はHono HTTP ServerのHandlerとRPC の”hc”(Fetch Client)がある Hono Client/ServerへのOpenTelemetry統合 3. Honoの計装
Server ・honojs/middlewareのotelをミドルウェア に仕込むだけでOK Client ・opentrlemetry-jsのパッケージを 使い分ける必要あり
17 Honoにおける計装対象はHono HTTP ServerのHandlerとRPC の”hc”(Fetch Client)がある Hono Client/ServerへのOpenTelemetry統合 3. Honoの計装
Server ・honojs/middlewareのotelをミドルウェア に仕込むだけでOK Client ・opentrlemetry-jsのパッケージを 使い分ける必要あり
18 “hc”内部ではfetchが使われており、下記パッケージを使うと既存コード に修正を入れずにfetchに透過的に計装が行える ブラウザ: @opentelemetry/instrumentation-fetch Node.js: @opentelemetry/instrumentation-undici Hono Clientへの計装 3.
Honoの計装
19 ブラウザとNode.js(v18以降)はbuiltinのfetchの内部実装が異なる Hono Clientへの計装 3. Honoの計装
20 環境ごとにfetchの計装方法が異なる、undiciに関してはNode.jsの API(AsyncLocalStorageやDiagnostics Channel)が使用されている Hono Clientへの計装 3. Honoの計装 グローバルに fetchが置き換え
られ、リクエスト開始時に Span を構成 Diagnostics Channel API経 由でリクエストの内容を SubscribeしSpanを構成
21 ・Hono MiddlewareにはOpenTelemetryの計装パッケージを使おう ・fetchクライアントを計装する場合は実行環境に注意 まとめ