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
Trace Metrics と Istio Metrics でサービス健全性を監視する
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hayato Kawai
February 26, 2025
0
540
Trace Metrics と Istio Metrics でサービス健全性を監視する
Japan Datadog User Group Meetup#7 での登壇資料です
イベントページ:
https://datadog-jp.connpass.com/event/343144/
Hayato Kawai
February 26, 2025
Tweet
Share
More Decks by Hayato Kawai
See All by Hayato Kawai
Amazon Bedrock のコスト内訳を気合でトラッキングする
fohte
0
70
Bedrock のコスト監視設計
fohte
2
550
Data Access Control で実現するより細かい権限制御
fohte
0
360
Datadog が支える Wantedly のシステム運用
fohte
0
120
Devin や Cursor などの生成 AI ツール導入に向けて何を取り組んだのか
fohte
2
340
Datadog Network Monitoring を活用して NAT Gateway 課金を 80 % 削減した話
fohte
2
780
段階的リリースを実現する kube canary
fohte
1
240
巨大 tfstate に立ち向かう技術
fohte
1
1.3k
RubyKaigi で LT 初登壇したきっかけと感想
fohte
1
1.4k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
340
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
190
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
660
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Chasing Engaging Ingredients in Design
codingconduct
0
130
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
380
We Have a Design System, Now What?
morganepeng
55
8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
300
The Mindset for Success: Future Career Progression
greggifford
PRO
0
260
Transcript
© 2025 Wantedly, Inc. Trace Metrics と Istio Metrics で
サービス健全性を監視する Japan Datadog User Group Meetup #7 2025-02-26 - Hayato Kawai (@fohte)
© 2025 Wantedly, Inc. 自己紹介 名前 Fohte (ふぉーて) 本名: 川井
颯人 (Hayato Kawai) 所属 ウォンテッドリー株式会社 Infra Squad 趣味 🎮 🎹
© 2025 Wantedly, Inc. 持ち帰ってほしいこと • エラーレートやレイテンシーは APM の trace
metrics で監視できる • Istio metrics でも同様の監視ができる
© 2025 Wantedly, Inc. やりたいこと • 特定の機能のエラーレートとレイテンシーを監視したい • かつアプリケーションのバージョンごとに監視したい
© 2025 Wantedly, Inc. 特定の機能のエラーレートとレイテンシーを監視したい • 例: GET https://wantedly.com/id/:user_id の
エラーレートが xx % になったら or レイテンシーが xx 秒以上のリクエストが多くなったら アラート
© 2025 Wantedly, Inc. かつアプリケーションのバージョンごとに監視したい • canary release で canary
へのリクエストだけ区別し エラーレートやレイテンシーを監視したい (参考) canary release を実現する仕組み → https://speakerdeck.com/fohte/duan-jie-de-ririsuw oshi-xian-suru-kube-canary
© 2025 Wantedly, Inc. ウォンテッドリーの Datadog にあるこれに満たせそうなもの • Datadog Logs
に ALB のアクセスログを入れている • Datadog APM を使っている
© 2025 Wantedly, Inc. Datadog Logs にある ALB のアクセスログで監視できないか •
💡 Logs から custom metrics を生成できるので それで計測できそう ◦ が、Logs Pipeline つらい問題が… ▪ 詳しくは → • 🆖 アプリケーションの バージョン情報が ALB 単体では取れない https://speakerdeck.com/fohte/datadog-logs-wohuo-yong-site- slo-jian-shi-ji-pan-wogou-zhu-suru
© 2025 Wantedly, Inc. Datadog APM • 💡 Datadog APM
でもクエリできる ◦ 取りたいエラーレートやレイテンシー (duration) をクエリできる ◦ これで良さそう => 大きなハマりどころがあった
© 2025 Wantedly, Inc. Datadog APM でクエリするときのハマりどころ • 🆖 クエリは
Indexed Spans に対して計算される ◦ Indexed Spans はサンプリングされた後のデータ ◦ 期待すること: サンプリングされていないデータで計算したい ▪ 実際、意図したエラーレートやレイテンシーが算出できなかった https://docs.datadoghq.com/tracing/trace_pipeline/
© 2025 Wantedly, Inc. Metrics Summary からメトリクス一覧が見られる Metrics Summary から
今回の用途で使えそうな メトリクスを発見した • Trace Metrics ◦ trace.<SPAN_NAME>.hits など • Istio Metics ◦ istio.*
© 2025 Wantedly, Inc. 今回話す metrics 2 種類ざっくり紹介 Trace Metrics
• Datadog APM のトレースをもとに生成される メトリクス ◦ https://docs.datadoghq.com/tracing/metrics/metrics_namespace/ Istio Metrics • Istio 自体が生成するメトリクスが Datadog の Istio integration で送られる ◦ https://docs.datadoghq.com/integrations/istio/
© 2025 Wantedly, Inc. Trace Metrics • Ingested Spans から生成されるメトリクス
◦ Indexed Spans ではないのでサンプリングされない ! https://docs.datadoghq.com/tracing/trace_pipeline/
© 2025 Wantedly, Inc. Trace Metrics の実用例 APM の Service
Summary のグラフは Trace Metrics で クエリされている
© 2025 Wantedly, Inc. Trace Metrics で実現できるのか • ✅ エラーレートを取りたい
◦ trace.<SPAN_NAME>.errors / trace.<SPAN_NAME>.hits で実現できる • ✅ レイテンシーを取りたい ◦ trace.<SPAN_NAME> で duration を取れる • ❌ canary release かどうかを区別したい ◦ version タグはあるものの、それが canary release された version なのかは 判別できない
© 2025 Wantedly, Inc. Istio Metrics • Istio が提供するメトリクスを Datadog
でも見られる ◦ 例: istio.mesh.request.count (リクエスト数) • (補足) Wantedly はほぼ全てが k8s cluster に乗っている & pod の通信はすべて Istio を通している
© 2025 Wantedly, Inc. Istio Metrics で実現できるのか • ✅ エラーレートを取りたい
◦ istio.mesh.request.count.total で実現できる
© 2025 Wantedly, Inc. Istio Metrics で実現できるのか • ✅ レイテンシーを取りたい
◦ istio.mesh.request.duration.milliseconds.sum.total で実現できる
© 2025 Wantedly, Inc. Istio Metrics で実現できるのか • ✅ canary
release かどうかを区別したい ◦ ウォンテッドリーの canary release の仕組みでは Deployment 名が必ず -canary で終わるので、それをもとにクエリできた ◦ Trace Metrics には kube_deployment tag がない
© 2025 Wantedly, Inc. Trace Metrics vs Istio Metrics •
すべて Istio Metrics でよいのでは? => 部分的にそう • Trace Metrics は span の情報でクエリできるのが強み ◦ もともと要件として「ある機能のエラーレート等を監視したい」があった ▪ 例: Rails のある controller のエラーレート・レイテンシーを監視したい ◦ Trace Metrics ではこれが実現できる (resource name が取れる) ▪ Istio Metrics では request path などの情報はない (含めようと思えば Telemetry API でできる) • 結論: 使い分けよう
© 2025 Wantedly, Inc. 持ち帰ってほしいこと • エラーレートやレイテンシーは APM の trace
metrics で監視できる • Istio metrics でも同様の監視ができる