$30 off During Our Annual Pro Sale. View Details »

オブザーバビリティを民主化してコア分析ループを加速したい話 / trace-log-corre...

オブザーバビリティを民主化してコア分析ループを加速したい話 / trace-log-correlation-on-google-cloud-observability

Jagu'e'r Observability-SRE分科会 Meetup#7 ハイブリッド で使った登壇資料です。
https://jaguer.connpass.com/event/314081/

逆井(さかさい)

April 26, 2024
Tweet

More Decks by 逆井(さかさい)

Other Decks in Technology

Transcript

  1. 自己紹介 ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー 逆 井 啓 佑

    さかさい intro_po.yaml 1 2 3 4 5 6 7 8 9 10 11 Kind: Datadog <- 今週頭にジョインしました Community: - OpenTelemetry Meetup スタッフ - Google Cloud Champion Innovators コミュニティ 逆井(さかさい) @ k6s4i53rx
  2. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー イントロダクション (オブザーバビリティ) • オブザーバビリティ? ◦

    外部シグナルから推測されるシステムの状態を推論する能力 • 何が嬉しいのか? ◦ 例えば、障害モード時(デバッグの観点) ※ 低頻度でサービスの応答時間が長くなるメトリクスがあるケース
  3. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー イントロダクション (オブザーバビリティ) • オブザーバビリティ? ◦

    外部シグナルから推測されるシステムの状態を推論する能力 • 何が嬉しいのか? ◦ 例えば、障害モード時(デバッグの観点) ※ 低頻度でサービスの応答時間が長くなるメトリクスがあるケース 経験豊富なベテランメンバー (仙人) (経験から) サービス A の 処理 B 辺りがくさいな
  4. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー イントロダクション (オブザーバビリティ) • オブザーバビリティ? ◦

    外部シグナルから推測されるシステムの状態を推論する能力 • 何が嬉しいのか? ◦ 例えば、障害モード時(デバッグの観点) ※ 低頻度でサービスの応答時間が長くなるメトリクスがあるケース 経験豊富なベテランメンバー (仙人) (経験から) サービス A の 処理 B 辺りがくさいな 問題のあるメトリクスを検知 よりカーディナリティの高い (情報量の多い)関連するトレースにジャンプ システムに 精通しきっていない メンバー トレースからボトルネックのサービス A 特定 スパンから処理 B で遅延しているか特定
  5. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー イントロダクション (オブザーバビリティ) • オブザーバビリティ? ◦

    外部シグナルから推測されるシステムの状態を推論する能力 • 何が嬉しいのか? ◦ 例えば、障害モード時(デバッグの観点) ※ 低頻度でサービスの応答時間が長くなるメトリクスがあるケース 経験豊富なベテランメンバー (仙人) (経験から) サービス A の 処理 B 辺りがくさいな 問題のあるメトリクスを検知 よりカーディナリティの高い (情報量の多い)関連するトレースにジャンプ システムに 精通しきっていない メンバー トレースからボトルネックのサービス A 特定 スパンから処理 B で遅延しているか特定 コア分析 ループ (の一例) 直感ではなく 事実が起点 (第一原理からデバッグ) 参考:オブザーバビリティ・エンジニアリング Charity Majors, Liz Fong-Jones, and George Miranda
  6. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー 参考 ※※※ 参考 第一原理からのデバッグや、コア分析ループについては、 オブザーバビリティエンジニアリング第8章で具体的に語られていて参考になります。

    そのような環境においては "好奇心の強いエンジニアが最高のデバッガーになり得る" 参考:オブザーバビリティ・エンジニアリング Charity Majors, Liz Fong-Jones, and George Miranda
  7. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー オブザーバビリティの民主化と SRE コア分析ループを回すために以下が重要な要素 • 回すために、情報量の高いテレメトリーを収集するための計装

    をサービスに行う • 素早く回すために、"テレメトリー同士の関連付け" をして計測する • (使っているオブザーバビリティツールを使い倒して、コア分析を自動化する)
  8. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー オブザーバビリティの民主化と SRE コア分析ループを回すために以下が重要な要素 • 回すために、情報量の高いテレメトリーを収集するための計装

    をサービスに行う • 素早く回すために、"テレメトリー同士の関連付け" をして計測する • (使っているオブザーバビリティツールを使い倒して、コア分析を自動化する) しかし、大規模 PJ や 複数チームにおいて、チーム間のオブザーバビリティ格差が課題 になりがち... • マイクロサービスの途中で 分散トレースが途切れている • テレメトリーの 属性情報 / ラベル(ビジネス上重要な顧客や店舗 ID なども含む)に濃淡 がある • サービスによって メトリクスやプロファイル 取得していたり、いなかったり • テレメトリー同士の関連付け がなされていたり、なされていなかったり • e.t.c...
  9. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー オブザーバビリティの民主化と SRE コア分析ループを回すために以下が重要な要素 • 回すために、情報量の高いテレメトリーを収集するための計装

    をサービスに行う • 素早く回すために、"テレメトリー同士の関連付け" をして計測する • (使っているオブザーバビリティツールを使い倒して、コア分析を自動化する) しかし、大規模 PJ や 複数チームにおいて、チーム間のオブザーバビリティ格差が課題になりがち • マイクロサービスの途中で分散トレースが途切れる • テレメトリーに付与されるアトリビュート(ビジネス上重要な顧客や店舗 ID なども含む)に濃淡がある • サービスによってメトリクスやプロファイル取得していたり、いなかったり • テレメトリー同士が関連付けられていたり、られていなかったり • e.t.c... このようなチーム横断的課題に対して、 横串で課題解決を行い格差是正を図っていくような動きを SRE として、 • オブザーバビリティセットアップ方法の標準化 • (それらモジュールの開発と配布)
  10. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー オブザーバビリティの民主化と SRE このようなチーム横断的課題に対して、 横串で課題解決を行い格差是正を図っていくような動きを SRE

    として... • オブザーバビリティセットアップ方法の標準化 • それらモジュールの開発と配布 コア分析ループを回すために以下が重要な要素 • 回すために、情報量の高いテレメトリーを収集するための計装 をサービスに行う • 素早く回すために、"テレメトリー同士の関連付け" をして計測する • (使っているオブザーバビリティツールを使い倒して、コア分析を自動化する) しかし、大規模 PJ や 複数チームにおいて、チーム間のオブザーバビリティ格差が課題 になりがち... • マイクロサービスの途中で分散トレースが途切れる • テレメトリーに付与されるアトリビュート(ビジネス上重要な顧客や店舗 ID なども含む)に濃淡がある • サービスによってメトリクスやプロファイル取得していたり、いなかったり • テレメトリー同士の関連付け がなされていたり、なされていなかったり • e.t.c...
  11. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー テレメトリー同士の関連付け テレメトリー同士の関連付けにより、コア分析ループを回す一助となる ❶ エラーログから、関連するスパンを特定する ❷

    異常なメトリクス値から、原因となるトレースを特定する • オブザーバビリティ界隈でよく目にする "looking for a needle in a haystack" ( 膨大な情報から探しているものを目的を持って即座に見つける ) に通ずる ログ メトリクス ✔ Status OK ✔ Status OK ✔ Status OK ✔ Status OK ❌ ERROR トレース Trace Span A Span B Span C で ERROR & 遅延 ❶ ❷
  12. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー テレメトリー同士の関連付け on Google Cloud Observability

    テレメトリー同士の関連付けにより、コア分析ループを回す一助となる ❶ エラーログから、関連するスパンを特定する ❷ 異常なメトリクス値から、原因となるトレースを特定する • オブザーバビリティ界隈でよく目にする "looking for a needle in a haystack" ( 膨大な情報から探しているものを目的を持って即座に見つける ) に通ずる ログ メトリクス ✔ Status OK ✔ Status OK ✔ Status OK ✔ Status OK ❌ ERROR トレース Trace Span A Span B Span C で ERROR & 遅延 ❶ ❷ 🥰 Google Cloud Observability スタック を使うと関連付けたテレメトリーをいい感じに表示できる ( 今回は時間の都合上、ログとトレース )
  13. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー デモ • Google Cloud Stack:

    Cloud Logging / Cloud Trace ※ 細かい仕様はドキュメント参考:Cloud Logging との統合 ( https://cloud.google.com/trace/docs/trace-log-integration?hl=ja ) • デモは GitHub に公開してるので興味のある方は確認してください https://github.com/keisukesakasai/jaguer-o11y-sre-07 アプリ Otel Collector ログ Cloud Trace トレース Trace ID Cloud Logging googlecloud exporter トレース ログ Trace ID ログフィールドに TraceID と Span ID を埋め込む 関連付け
  14. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー トレースとメトリクスも Google Cloud Observability でできるよ

    https://speakerdeck.com/k6s4i53rx/otel-trace-exemplar (宣伝) 先日 Findy さんのイベントでやりました
  15. ー Jagu'e'r Observability-SRE分科会 Meetup#7 ー まとめ • サービス / プロジェクト横断的な、

    オブザーバビリティの課題に対する技術的な支援を SRE チームで実施 • オブザーバビリティを高める上で、テレメトリー同士を関連付ける ことは重要。 そのようなノウハウを養うための計装技術を習得することはとても大事です • 触れなかったけどプロファイルも Primary Signals としてあります。 今後 プロファイルと他のテレメトリーの関連付け などもできるようになってくると思うので注目