Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
HonoとOpenTelemetryで実現するオブザーバービリティ構築
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
sugar-cat
October 17, 2025
620
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
450
DiscordとCloudflare
sugarcat7
2
1.4k
Cloudflare Workflowsを使いたい倒したい
sugarcat7
8
2.8k
tslogで実現するセキュアなメタデータ管理とロギング
sugarcat7
4
1.7k
最近個人開発が熱い ~モニタリング強化編v0.1.0~
sugarcat7
3
530
Honoで実現するバックエンド開発のイマ
sugarcat7
23
6.5k
GoとWASI~超入門~
sugarcat7
2
330
最近個人開発が熱い ~多言語対応編~
sugarcat7
2
500
ボイラープレート自動生成ツールを使わなくなった話.pdf
sugarcat7
4
810
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
RailsConf 2023
tenderlove
30
1.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
The Limits of Empathy - UXLibs8
cassininazir
2
720
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
Raft: Consensus for Rubyists
vanstee
142
7.8k
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クライアントを計装する場合は実行環境に注意 まとめ