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
明日から始めるSidekiqオブザーバビリティ向上
Search
imaharu
November 12, 2023
Technology
5.6k
3
Share
明日から始めるSidekiqオブザーバビリティ向上
After Kaigi on Rails LT Night で登壇しました
https://smartbank.connpass.com/event/299631
imaharu
November 12, 2023
Other Decks in Technology
See All in Technology
"スキルファースト"で作る、AIの自走環境
subroh0508
1
700
AI Agent に“攻略本”を渡したら、150フォームの移行が回り始めた話/登壇資料(高橋 悟生)
hacobu
PRO
1
410
情シスがMCP環境導入時に打ちのめされる認可の崖
oidfj
0
360
AI全盛の今だからこそ、あえてもう一度振り返るAPIの基礎
smt7174
3
160
開発にAIを組織として取り入れる一歩目とその後
yujishibuya
0
200
AIコーディングエージェントの活用で、コードは静かに肥大化した
yosukeshinoda
1
310
ECSのTerraformモジュールにコントリビュートした話
harukasakihara
1
340
RubyでRuby拡張を書いたらRubyより35倍速になったってどういうこと??
kazuho
3
570
TSKaigi 2026 - 10秒のビルドを1秒へ:tsdownが切り拓く2026年のTypeScriptライブラリ開発
teamlab
PRO
2
240
権限管理設計を完全に理解した
rsugi
1
190
GCASアップデート(202603-202605)
techniczna
0
280
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
2
310
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
570
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
580
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
170
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Designing Experiences People Love
moore
143
24k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
The Cost Of JavaScript in 2023
addyosmani
55
9.9k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
150
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
300
Transcript
GLOBIS DIGITAL PLATFORM 明日から始める Sidekiqオブザーバビリティ向上
GLOBIS DIGITAL PLATFORM 2 自己紹介 越智亮太 @imaharuTech 株式会社グロービス Railsエンジニア3年 SRE
1.5年
会社紹介
GLOBIS DIGITAL PLATFORM 4 本日のゴール 明日、Sidekiqオブザーバビリティ向上 Pull Requestを作成し 検証環境で実験できるになる
GLOBIS DIGITAL PLATFORM 5 オブザーバビリティとは システムで何が起きているか把握できる能力
GLOBIS DIGITAL PLATFORM 6 Sidekiqのオブザーバビリティがある状態 1. 遅いJobが特定可能 2. Jobが完了していない原因を特定可能
GLOBIS DIGITAL PLATFORM 7 Sidekiqのオブザーバビリティがある状態 遅いJobが特定可能
GLOBIS DIGITAL PLATFORM 8 Sidekiqのオブザーバビリティがある状態 Jobが完了していない原因を特定可能
GLOBIS DIGITAL PLATFORM 9 Sidekiqのオブザーバビリティがある状態 Jobが完了していない原因を特定可能
GLOBIS DIGITAL PLATFORM 10 Sidekiqのオブザーバビリティ向上施策の紹介 1. エラーログにjid追加 2. enqueuedログ追加 3.
dequeuedログにjob引数を追加 4. datadogのdurationとelapsedを紐付け 5. job statusを追加
GLOBIS DIGITAL PLATFORM 11 Sidekiqのオブザーバビリティ向上施策の紹介 1. エラーログにjid追加 2. enqueuedログ追加 3.
dequeuedログにjob引数を追加 4. datadogのdurationとelapsedを紐付け 5. job statusを追加
GLOBIS DIGITAL PLATFORM 12 Sidekiq JSONログの出力形式
GLOBIS DIGITAL PLATFORM 13 成功するJobのログ
GLOBIS DIGITAL PLATFORM 14 失敗するJobのログ
GLOBIS DIGITAL PLATFORM 15 エラーメッセージに jidがない
GLOBIS DIGITAL PLATFORM 16 Jobライフサイクル全てのログを追跡できない つまり、Jobが完了していない原因を特定可能できない 引用: https://github.com/sidekiq/sidekiq/wiki/Job-Lifecycle
GLOBIS DIGITAL PLATFORM 17 実装 $ cat config/initializers/sidekiq.rb
GLOBIS DIGITAL PLATFORM 18 実装前後のログ変化
GLOBIS DIGITAL PLATFORM 19 実装 $ cat config/initializers/sidekiq.rb Sidekiq::Context.add
GLOBIS DIGITAL PLATFORM 20 実装の解説 ctxにjidを詰めれば良さそう Sidekiq::Context.add
GLOBIS DIGITAL PLATFORM 21 実装の解説 Sidekiq::Context.add
GLOBIS DIGITAL PLATFORM 22 実装の解説 Sidekiq::Contextは Jobの状態をハッシュに詰め込んだもの Sidekiq::Context.add
GLOBIS DIGITAL PLATFORM 23 実装の解説 $ cat config/initializers/sidekiq.rb config.error_handlers
GLOBIS DIGITAL PLATFORM 24 実装の解説 config.error_handlers
GLOBIS DIGITAL PLATFORM 25 実装の解説 config.error_handlers default error handler add_jid_
error_handler default error handler Array#unshiftで配列に先頭追加することで 以降のhandlerでctx.jidが出力される
GLOBIS DIGITAL PLATFORM 26 まとめ Jobが完了していない原因を特定しやすくなった!!! 引用: https://github.com/sidekiq/sidekiq/wiki/Job-Lifecycle
GLOBIS DIGITAL PLATFORM 27 まとめ 明日、Sidekiqオブザーバビリティ向上 Pull Requestを作成し 検証環境で実験できるようになった!
We are hiring!!!