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
Cloud Monitoringで非同期処理のオブザーバビリティ向上
Search
kekke-n
March 07, 2025
Technology
650
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloud Monitoringで非同期処理のオブザーバビリティ向上
kekke-n
March 07, 2025
More Decks by kekke-n
See All by kekke-n
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
4.9k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
1.8k
Other Decks in Technology
See All in Technology
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
230
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
150
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
270
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
370
V8コントリビュート超入門
riyaamemiya
0
140
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
110
Tab5をRubyで動くパソコンにする
kishima
1
180
データエンジニアリングワークショップ:Auto LoaderとSparkで学ぶデータパイプライン構築
databricksjapan
PRO
0
150
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
190
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
250
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
130
IoTハンズオンの舞台裏
shirouz
2
120
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
Statistics for Hackers
jakevdp
799
230k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
A better future with KSS
kneath
240
18k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
GitHub's CSS Performance
jonrohan
1033
470k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
BBQ
matthewcrist
89
10k
Transcript
Cloud Monitoringで非同期処理 オブザーバビリティ向上 Keisuke Nakama @kekke-n 2025.3.7 Jagu'e'r オブザーバビリティ分科会 Meetup#1
中間 啓介(なかま けいすけ) 株式会社SmartHR / SRE 自己紹介 ・今年からプロダクト 開発者から SREになりました
・5歳 息子と3歳 娘がいます ・芋焼酎とクラフトビールが大好きです ・最近 楽しみ 家族で外出することです @kekke-n
非同期処理 メトリクスを Cloud Monitoringで 確認できるようにして、 オブザーバビリティを向上させた話をします ※Ruby Sidekiq 事例になりますが、他 非同期処理でも使える
ネタ あるんじゃないか?と思っています 🙏 本日 内容
• Sidekiqからメトリクスを取得するため 細かい実 装 話 話さないこと
Sidekiqと
Sidekiqと • Rubyでバックグラウンド処理を行うため ライ ブラリ • メール送信、画像処理など、時間 かかる処 理を非同期で実行 https://github.com/sidekiq/sidekiq
管理画面もある で便利
プロダクト システム構成
Sidekiq メトリクス 課題
過去にあったインシデント
文書配付 雇用契約書を SmartHR上で配付できる機能です 文書配付 プロダクト開発をしていた時 人事担当 従業員
カスタマーサポート お客様から 従業員に雇用契約書が送られていな いと問い合わせがきています ...
開発者 や い、Sidekiq ジョブが大 量に詰まって処理が遅くなっ ている!! ジョブ 状況
App Engine インスタンス数 を増やしてひとまず回避 ... ジョブ 状況
インシデント 時間帯でジョブ がどんな状況だったか確認し てみよう〜 Sidekiq管理画面
キュー毎にジョブ 状況が見 れないから分析がし辛い ... Sidekiq管理画面
• キュー毎に ◦ ジョブ 数が確認できない ◦ ジョブがどれだけ待たされたか確認できない ↓ 原因 分析がやりづらい
... Sidekiq メトリクス 課題
つまり、 オブザーバビリティが 良くない!!! 🥺
Sidekiq メトリクスを取得
• Sidekiq::MetricsExporterという社内ライブラリを作りまし た! ◦ Sidekiq プロセスやキュー毎 メトリクスを Cloud Monitoringに送信できます ◦
試験的に導入しているため現状 公開せず社内 み で利用しています SREとしてやったこと
メトリクス送信 全体像
こんな情報が取得できます 送信される Sidekiq メトリクス 以下 ようなも があります。 • 各キュー レイテンシー、サイズ
• プロセス、ワーカー 数 • 完了、失敗、デット ...など ジョブ 数
メトリクス送信時 擬似コード • メトリクスデータを作成 ◦ メトリクス タイプを指定 ◦ 値(ジョブ 数等)
• Cloud Monitoringにメトリクス送信
Metrics Explorer でキュー別に指標を選択
Cloud Monitoringでジョブ 数を確認
Cloud Monitoringでジョブ レイテンシーを確認
ダッシュボードで見る も便利
オブザーバビリティ よくなった ☺
• Periodic Jobsを使って定期的にメトリクスを送る ◦ キューが詰まっている場合にメトリクスも送れなくなってしまうという問題が ありました • メトリクスを出力する httpエンドポイントを作り、 Prometheus的なやり方でメトリ
クスを取得する ◦ Sidekiq App Engine, Cloud Run 両方で動作するケースがあります ◦ そ 両方でprivateなエンドポイントを叩くため 仕組みが必要になり難易 度が高そうでした 検討したけどやらなかったこと
検討したけどやらなかったこと • メトリクスをログに出すエンドポイントを作成し、そ エンドポイントを定期的にリ クエストしてログベース 指標を作る ◦ New Relicにもメトリクスを送る必要があったため見送りました
なぜSREがこ 取り組みをし た か?
• プロダクトエンジニア 167人 • プロダクト数 約 20 • SRE 2人
SmartHR SRE 現状
• Embedded SREで なくEnabling SRE • 他チームへ新しい技術やスキル 導入を支援する • 開発チームが自走できるような状況を作る
SmartHR SRE スタンス
メトリクス 取り方 どうやってやるんだろう .. SmartHR SRE スタンス うおお、これがあれ 自分達でできそうだ! 開発者
SRE 開発者 仕組み 作ったよ〜
• Sidekiq::MetricsExporterという社内ライブラリを各チームに 提供する • 開発チームに非同期処理 オブザーバビリティに関心を持っ てもらう • 開発チームが非同期処理 デバッグや分析を自走できるよう
にする 今回 取り組み 狙い
まとめ
• Sidekiq メトリクスを Cloud Monitoringで確認する方 法について紹介しました • 同様な課題がある場合、参考にしていただけると幸い です •
実 SRE まだ2人です...絶賛採用中!! まとめ
ありがとうございました!