我们通过nginx / uwsgi服务于Django。 我们在VPC后面使用AWS ELB。
这是移动客户端的web服务。
我们在开发过程中报告了超时,所以我们为每个请求添加了一个request_id的概念
我现在遇到的问题是我得到了在野外发生的超时错误报告。 但是,相关的request_id不会显示在任何nginx或uwsgi日志中。
我有点怀疑亚马逊弹性负载平衡器。 但是我不能确定。 由于这是一个超时我们没有ELB标题看,或状态码或响应身体或任何东西。
我们使用newrelic来监视我们的后端。 偶尔会logging3-4秒的“慢速交易”。 (没有像大多数客户端库中典型的30秒超时)
实际的问题:下一步看什么? 根据我和我在服务器上的数据,NOTHING实际上是错误的,但超时仍然存在。 在这一点上,我甚至不知道如何开始debugging。 应用程序服务器运行在10%的容量(对于mem和cpu)缓慢的sql查询正在被logging(没有什么有趣的)
(我也在分别查看客户端错误)
提前致谢。
鉴于客户是移动设备,有可能这个问题不是你或ELB。
AWS ELB不只是将stream量放在地板上, 或者至less不是不让你知道的。 如果问题在ELB中,那么您应该看到ELB指标中反映的问题; ELB_5XX或Spillover是我会首先在这个案例中检查的指标。 不过,您的监控不太可能表明该服务处于在线状态。