【问题标题】:Runtime Utilities API alternative for python 3.7 | Google App EnginePython 3.7 的运行时实用程序 API 替代方案 |谷歌应用引擎
【发布时间】:2019-10-04 14:13:33
【问题描述】:

我正在将我现有的 py 2.7 存储库迁移到目前在 Google App Engine 上工作的 py 3.7。

我发现了一个在项目中广泛使用的 runtime 库(Runtime Utilities API)。

from google.appengine.api.runtime import runtime
import logging

logging.info(runtime.memory_usage())

这将输出内存使用统计信息,其中数字以 MB 表示。例如:

current: 464.0859375
average1m: 464
average10m: 379.575

我正在尝试找到与 python 3.7 兼容的替代库,但在 GAE 中没有找到。有人可以帮忙吗? 谷歌方面有没有我不知道的替代品?

【问题讨论】:

    标签: google-app-engine python-3.7


    【解决方案1】:

    不幸的是,google.appengine.api.runtime.runtime 模块 is deprecated 从版本 1.8.1 开始。

    我也找不到任何类似或等效的 Python3 官方 App Engine API。

    作为替代方案,您可以尝试仅在您的代码中实现这些功能。例如,查看this question 的答案,它与如何使用 Python 获取 RAM 和 CPU 统计信息有关。其中一些包括使用psutil library。

    您还可以考虑使用StackDriver Agent,它可以将此页面上列出的指标类型的数据传输到 Stackdriver;例如 CPU(负载、使用率等)、磁盘(使用的字节数、io_time 等)和其他指标。

    【讨论】:

      【解决方案2】:

      以下得到的内存使用值与仪表板显示的完全相同:

      def current():
          vm = psutil.virtual_memory()
          return (vm.active + vm.inactive + vm.buffers) / 1024 ** 2
      

      如果想最小化转换成本,那么可以将以下内容放入一个新模块中,并导入而不是谷歌原来的界面:

      import psutil
      class MemoryUsage:
          def __init__(self):
              pass
      
          @staticmethod
          def current():
              vm = psutil.virtual_memory()
              return (vm.active + vm.inactive + vm.buffers) / 1024 ** 2
      
      def memory_usage():
          return MemoryUsage()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-15
        • 1970-01-01
        • 2019-01-16
        • 2016-11-28
        • 1970-01-01
        • 2011-10-08
        相关资源
        最近更新 更多