写入大查询时,用于云监控指标的 App Engine 引发 500 错误
Posted
技术标签:
【中文标题】写入大查询时,用于云监控指标的 App Engine 引发 500 错误【英文标题】:App Engine for cloud monitoring metrics throwing 500 error when writing to big query 【发布时间】:2020-11-12 09:23:18 【问题描述】:我想将 Metrics 从 Cloud Monitoring 导出到 Big Query,谷歌已经给出了如何做到这一点的解决方案。我正在关注这篇this 文章。
我已经从github 下载了代码,我能够成功部署和运行应用程序(python2.7),
我将聚合调整期指定为 86400s(我想从 7 月 1 日开始每天聚合指标) 其中一个应用引擎 write-metrics 应用引擎通过将 api 响应作为 pub-sub 消息将指标写入大查询,总是向我抛出这些错误:
> 在服务 5 个请求后,超过 270 MB 的软内存限制 256 MB。考虑在 app.yaml 中设置更大的实例类。
> 在处理这个请求时,发现处理这个请求的进程使用了太多内存并被终止。这可能会导致一个新进程被用于对您的应用程序的下一个请求。如果您经常看到此消息,则您的应用程序中可能存在内存泄漏,或者可能正在使用内存不足的实例。考虑在 app.yaml 中设置更大的实例类。
上面是 500 错误并且非常频繁,我发现重复记录仍然被插入到 BigQuery 的表中 还有下面这个
DeadlineExceededError:超过响应 HTTP 请求的总期限。
应用引擎日志经常显示带有代码 500 和 200 的 POST
在应用引擎(标准)中,我已将缩放添加为自动,并在 app.yaml 中设置如下:
automatic_scaling:
target_cpu_utilization: 0.65
min_instances: 5
max_instances: 25
min_pending_latency: 30ms
max_pending_latency: automatic
max_concurrent_requests: 50
但这似乎没有效果。我对应用引擎、谷歌云及其堆栈驱动指标非常陌生。
【问题讨论】:
愚蠢的问题,但是您是否尝试过在 app.yaml 中增加实例类?你的 app.yaml 有这样的字段吗? 看来,您需要使用 AppEngine Flex 来更改软内存限制***.com/a/57470956/946789 @NicholasElkaim 我试过 instance_class 但该字段未被接受为合法标识符 instance_class 作品我应该放在正确的地方 【参考方案1】:此更改使其生效
instance_class: F4_1G
这需要作为一个独立的标签,之前我犯了把automatic scaling:
放在下面的错误,所以它给出了非法修饰符
【讨论】:
以上是关于写入大查询时,用于云监控指标的 App Engine 引发 500 错误的主要内容,如果未能解决你的问题,请参考以下文章
统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?