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
3
5.4k
明日から始めるSidekiqオブザーバビリティ向上
After Kaigi on Rails LT Night で登壇しました
https://smartbank.connpass.com/event/299631
imaharu
November 12, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
Node.js 2025: What's new and what's next
ruyadorno
0
290
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
AI Agent Dojo #2 watsonx Orchestrateフローの作成
oniak3ibm
PRO
0
120
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
0
210
アイテムレビュー機能導入からの学びと改善
zozotech
PRO
0
160
今この時代に技術とどう向き合うべきか
gree_tech
PRO
0
1.2k
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
450
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
3
220
業務効率化をさらに加速させる、ノーコードツールとStep Functionsのハイブリッド化
smt7174
2
140
BI ツールはもういらない?Amazon RedShift & MCP Server で試みる新しいデータ分析アプローチ
cdataj
0
160
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
320
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Visualization
eitanlees
149
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Thoughts on Productivity
jonyablonski
70
4.9k
The Cult of Friendly URLs
andyhume
79
6.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Making Projects Easy
brettharned
120
6.4k
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!!!