监控 Google Cloud Run 内存使用情况

Posted

技术标签:

【中文标题】监控 Google Cloud Run 内存使用情况【英文标题】:Monitor Google Cloud Run memory usage 【发布时间】:2020-01-16 16:14:32 【问题描述】:

是否有任何内置方法可以监控在托管 Google Cloud Run 实例中运行的应用程序的内存使用情况?

在托管 Cloud Run 服务的“Metrics”页面中,有一个名为“Container Memory Allocation”的项目。但是,据我了解,此图指的是实例的最大分配内存(在设置中选择),而不是容器内实际使用的内存。 (如果我错了,请纠正我。)

在托管 Cloud Run (https://cloud.google.com/monitoring/api/metrics_gcp#gcp-run) 的可用指标的 Stackdriver Monitoring 列表中,似乎也没有与内存使用相关的任何指标,仅与分配的内存有关。

提前谢谢你。

【问题讨论】:

【参考方案1】:

Cloud Run 现在在 Cloud Monitoring 中公开了一个名为“内存利用率”的新指标,请参阅here 的更多详细信息。

此指标捕获修订的所有容器实例中的容器内存利用率分布。建议查看此指标的百分位数:第 50 个百分位数、第 95 个百分位数和第 99 个百分位数,以了解您的实例的利用率

【讨论】:

【参考方案2】:

目前,似乎无法通过 Stackdriver 或“Cloud Run”监控 Google Cloud Run 实例的内存使用情况" Google Cloud Console 中的页面。

我已代表您提交了功能请求,以便将内存使用量指标添加到 Cloud Run。您可以在以下link 中查看和跟踪此功能请求。

【讨论】:

【参考方案3】:

目前没有关于内存利用率的指标。但是,如果您的服务达到内存限制,Stackdriver Logging 中将显示以下日志,严重程度为 ERROR 级:

"Memory limit of 256M exceeded with 325M used. Consider increasing the memory limit, see https://cloud.google.com/run/docs/configuring/memory-limits"  

(相应地替换特定数字。)

根据此日志消息,您可以为超出的内存创建基于日志的指标。

【讨论】:

以上是关于监控 Google Cloud Run 内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章

GCP - 无法在 Cloud Run 中使用 Google Secret Manager (@google-cloud/secret-manager)

Google Cloud Tasks 无法向 Cloud Run 进行身份验证

输入使用 Google Cloud Run 运行的 docker 容器

使用 OpenTelemetry 在 Google Cloud Run 上跟踪传播

Google Cloud Run 不加载 .env 文件

使用 Google Cloud Run 时如何访问已装载的机密?