$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloud Monitoringで非同期処理のオブザーバビリティ向上
Search
kekke-n
March 07, 2025
Technology
0
420
Cloud Monitoringで非同期処理のオブザーバビリティ向上
kekke-n
March 07, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
Noを伝える技術2025: 爆速合意形成のためのNICOフレームワーク速習 #pmconf2025
aki_iinuma
2
1.2k
pmconf2025 - 他社事例を"自社仕様化"する技術_iRAFT法
daichi_yamashita
0
540
AI/MLのマルチテナント基盤を支えるコンテナ技術
pfn
PRO
5
730
20251127 BigQueryリモート関数で作る、お手軽AIバッチ実行環境
daimatz
0
430
なぜフロントエンド技術を追うのか?なぜカンファレンスに参加するのか?
sakito
9
2k
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
540
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
1.6k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.3k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
37k
Capture Checking / Separation Checking 入門
tanishiking
0
110
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
130
プラットフォームエンジニアリングとは何であり、なぜプラットフォームエンジニアリングなのか
doublemarket
1
550
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Music & Morning Musume
bryan
46
7k
KATA
mclloyd
PRO
32
15k
GitHub's CSS Performance
jonrohan
1032
470k
Scaling GitHub
holman
464
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
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人です...絶賛採用中!! まとめ
ありがとうございました!