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
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
The Cult of Friendly URLs
andyhume
79
6.8k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Rails Girls Zürich Keynote
gr2m
96
14k
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
From π to Pie charts
rasagy
0
140
Between Models and Reality
mayunak
1
210
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Believing is Seeing
oripsolob
1
68
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 でも同様の監視ができる