Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Spanner Monitoring 入門 / Cloud Spanner Monitoring Introduction

Cloud Spanner Monitoring 入門 / Cloud Spanner Monitoring Introduction

GCPUG Tokyo Spanner Day August 2021
https://gcpug-tokyo.connpass.com/event/220499/

923237754890d536819892ad42451555?s=128

sakajunquality

August 06, 2021
Tweet

Transcript

  1. Jun Sakata Google Developers Expert, Cloud @sakajunquality Cloud Spanner Monitoring

    入門 #GCPUG Tokyo Spanner Day August 2021 2021.08.06
  2. 注意 Spanner自体については @sinmetal 資料参照 Google Cloud Spanner Deep Dive What

    is Cloud Spanner? A gcpsketchnote cheat sheet (こちらもおすすめ)
  3. Cloud Spanner in Ubie メインは Cloud SQL だけど Cloud Spanner

    も使ってるよ
  4. Ubie と Cloud Spanner 現状は Cloud SQL を使用している部分が多い - マイクロサービス(のような)形で各サービスがDBを持っている

    - 多くのサービスは Cloud SQL for PostgreSQL で使用している - 一部新規のプロダクトで Cloud Spanner を採用 - (Cloud SQL の話は Data Cloud Summit でします) - (ちなみに自分は一番 MySQL が詳しい)
  5. Ubie の Cloud Spanner Scalability と Availability を重視 - 複数のプロダクトの連携を行うマイクロサービスで使用

    - 高いサービスレベルが想定 - e.g. Uptime SLA 99.999% (multi-regional) - v.s.Cloud SQL 99.95% - データが膨大に増えることが想定されていた - (つかってみたかった)
  6. Ubie の Cloud Spanner Multi-regional Instance - asia1 (Tokyo-Osaka) -

    完全SLA目的 - (高いので) 共有インスタンス - (Processing Unit 柔軟になったので検討の余地あり) - 2 Node (2,000 Processing Unit) - データベースごとに IAM
  7. Latency guide

  8. Latency guide Cloud Spanner end-to-end latency guide - https://cloud.google.com/spanner/docs/latency-guide?hl=ja#capture -client-latency

    - OpenCensus で一部実装する必要があり - ちょっと面倒くささはあるw
  9. Latency guide

  10. Latency guide Open Census Implementation grpc.io/client/roundtrip_latency

  11. Latency guide Open Census Implementation cloud.google.com/[language]/spanner/gfe_latency

  12. Latency guide Managed spanner.googleapis.com/api/request_latencies

  13. Latency guide Managed spanner.googleapis.com/api/request_latencies Cloud Monitoringで気軽に出るのはこの部分

  14. Latency guide Open Census Implementation [custom]

  15. Latency guide まとめ Cloud Monitoring で見れてるのはこれ! spanner.googleapis.com/api/request_latencies https://cloud.google.com/spanner/docs/latency-guide?hl=ja#capture-client-latency

  16. Query Stats

  17. これ

  18. これではない

  19. Query Stats SPANNER_SYS.QUERY_STATS* https://cloud.google.com/spanner/docs/introspection/query-statistics - built-inのSPANNER_SYSテーブルに保存される - これは下記でアクセス可能 - Cloud

    Console の Query (とりあえずならこれかな) - gcloud spanner databases execute-sql - executeQuery API
  20. None
  21. Query Stats でできること 基本的なクエリの統計情報の取得 https://cloud.google.com/spanner/docs/introspection/query-statistics

  22. Query Stats でできること 基本的なクエリの統計情報の取得 SELECT text, interval_end, execution_count, avg_latency_seconds, avg_rows,

    avg_bytes, avg_rows_scanned, avg_cpu_seconds FROM spanner_sys.query_stats_top_minute ORDER BY interval_end DESC; https://cloud.google.com/spanner/docs/introspection/query-statistics
  23. Query Stats でできること 基本的なクエリの統計情報の取得 SELECT text, interval_end, execution_count, avg_latency_seconds, avg_rows,

    avg_bytes, avg_rows_scanned, avg_cpu_seconds FROM spanner_sys.query_stats_top_minute ORDER BY interval_end DESC; クエリごとに集計したCPU負荷の統計 すべてのクエリを集計した統計 https://cloud.google.com/spanner/docs/introspection/query-statistics
  24. Query Stats でできること Explain (これはQuery Statsじゃないけど)

  25. Query Stats でできること Explain (これはQuery Statsじゃないけど) あんまりいい例が見つけられなかったけど比較的 負荷がかかっているクエリ

  26. トラブルシューティング インデックスがちゃんと効いていなかった例 呼び出し元サービスのレイテンシーの悪化も

  27. Query Stats トラブルシューティング インデックスがちゃんと効いていなかった例 呼び出し元サービスのレイテンシーの悪化も この時の情報がすぐ出てきませんでした...

  28. トラブルシューティング例 https://cloud.google.com/spanner/docs/introspection/query-statistics

  29. Key Visualizer

  30. これ

  31. これです

  32. None
  33. 時間 テ ー ブ ル ・ 行

  34. Key Visualizer 時系列に Cloud Spanner の利用状況を可視化 - デフォルトで有効化されている - 既存インスタンスは

    DDL で有効化可能 - ALTER DATABASE `database_id` SET OPTIONS ( enable_key_visualizer=true )
  35. Key Visualizer のメトリクス

  36. Key Visualizer Heatmap パターン 正常 https://cloud.google.com/spanner/docs/key-visualizer/patterns

  37. Key Visualizer Heatmap パターン アンチパターン https://cloud.google.com/spanner/docs/key-visualizer/patterns

  38. Key Visualizer Heatmap パターン ホットスポット生まれてるかも https://cloud.google.com/spanner/docs/key-visualizer/patterns

  39. Key Visualizer Heatmap 実例 https://www.youtube.com/watch?v=P3hiF3iNQew

  40. Key Visualizer Heatmap 実例 https://www.youtube.com/watch?v=P3hiF3iNQew 自社のものがわかりにくかったので公式の動画より引用

  41. Key Visualizer Heatmap 実例 https://www.youtube.com/watch?v=P3hiF3iNQew インデックスが無いため、テーブルを全スキャンしていた

  42. Key Visualizer Heatmap 実例 https://www.youtube.com/watch?v=P3hiF3iNQew

  43. IAM おまけ

  44. Cloud Spanner の IAM 一部センシティブな情報をSpanner に入れていると... - 人(グループ)の権限を制限したい - KeyVisualizer

    見れない...
  45. まとめ

  46. まとめ - スキーマ設計の ベストプラクティス も公開されているが、実際に使っている と意図通りに分散されていない場合もある - またアプリケーションを開発していく上でインデックスが効いていなかった り、リクエストが増えてから負荷が顕著になる場合もある -

    Query Stats でクエリの実行計画、Key Visualizer で Read/Write が分散さ れているか確認することで Cloud Spanner の真価を発揮できる
  47. Thank You! Jun Sakata Google Developers Expert, Cloud @sakajunquality