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.1k
明日から始める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
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
37
15k
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
20241220_S3 tablesの使い方を検証してみた
handy
4
620
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
200
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
190
C++26 エラー性動作
faithandbrave
2
770
Storage Browser for Amazon S3
miu_crescent
1
230
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
170
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
400
Featured
See All Featured
It's Worth the Effort
3n
183
28k
Become a Pro
speakerdeck
PRO
26
5k
The Cult of Friendly URLs
andyhume
78
6.1k
BBQ
matthewcrist
85
9.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Site-Speed That Sticks
csswizardry
2
190
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
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!!!