• 自分たちの監視したい項目を洗い出しつつ、Apollo StudioなどのSaaSを参考に設計 • 200 OKでエラーが返ることもあるので、4XX/5XXメトリクスの監視だけでは障害を見落とす可能性がある → ログベースでGraphQLエラーコードのカスタムメトリクスを作成して監視 • 従来よりREST APIのリクエスト成功率は以下の式で計算していたが、GraphQL APIでも成り立つ? リクエスト成功率 = 200レスポンス数 / (200レスポンス数+5XXレスポンス数) → GraphQLエラーの内容に応じてHTTP Status Codeを上書きして計算式が成り立つように工夫 GraphQL Gateway 200 OK {"errors": [{"extensions": {"code": "HOGE_ERROR"}}]} 200 OK 400 Bad Request {“errors”: [{“extensions”: {“code": "BAD_REQUEST"}}]} 200 OK 500 Internal Server Error {“errors”: [{“extensions”: {“code": "INTERNAL_SERVER_ERROR"}}]} メトリクス監視