Core Concepts
フォームレンダラーのパフォーマンス問題の根本原因を特定し、効率的な修正を行うことで、ユーザーエクスペリエンスの向上を実現した。
Abstract
この記事では、Typeformのコアサービスの1つであるフォームレンダラーで発生したパフォーマンス問題の調査プロセスについて説明しています。
デプロイ後、フォームレンダラーのレスポンス時間に鋸歯状のパターンが見られるようになりました。この問題の原因を特定するために、以下の手順で調査を行いました:
メトリクスとトレーシングの分析
フォームAPI呼び出しに100msもかかっているなど、レスポンス時間の内訳に疑問が生じた
ランタイムメトリクスの収集
CPUの使用率と、イベントループの遅延が問題の発生と一致することが分かった
メモリ使用量に変化はなかったため、オブジェクトの過剰な生成が疑われた
プロファイラの活用
デプロイ直後と問題発生時のフレームグラフを比較し、trackPrivateForm関数が問題の原因であることを特定した
問題の修正
trackPrivateForm関数内で毎回生成していたRudderStackAnalyticsインスタンスを、関数外で1回だけ生成するように変更した
これにより、レスポンス時間の鋸歯状パターンが解消された
この調査を通して、継続的なシステムのモニタリングと詳細な分析の重要性を学びました。問題の早期発見と迅速な対応により、ユーザーエクスペリエンスの向上につなげることができました。
Stats
フォームAPI呼び出しに100msもかかっていた
デプロイ直後はCPU使用率が低下し、イベントループの遅延も減少していた
問題発生時はCPU使用率が上昇し、イベントループの遅延が増加していた
メモリ使用量に変化はなかった
Quotes
"Tools like Datadog help us track important metrics, like how fast our systems respond to requests."
"We could even confirm and narrow down the issue with distributed tracing."
"The Datadog Profiler allows us to choose different time frames and compare their flame graphs."