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
510
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
420
DiscordとCloudflare
sugarcat7
2
1.1k
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
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Are puppies a ranking factor?
jonoalderson
1
3.7k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
660
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
310
A designer walks into a library…
pauljervisheath
211
24k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
How to Talk to Developers About Accessibility
jct
2
430
From π to Pie charts
rasagy
0
240
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Writing Fast Ruby
sferik
630
63k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
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クライアントを計装する場合は実行環境に注意 まとめ