是否可以通过 API 调用来获取我 运行 的 App Engine 实例数?
Is there an API call I can make to get the number of App Engine Instances I'm running?
这个问题真的很简单。我想向 datadog 报告 运行 个实例的数量,以及我的一些其他统计数据。
具有讽刺意味的是,我在 Google 网络搜索中搜索如何在 Google App Engine 中执行某些操作,但每次都得到最糟糕的结果: Google App Engine 文档页面。
我同意很难找到,我能找到的最近的是这个
google.appengine.api.modules.modules.get_num_instances(module=None, version=None)source
Return the number of instances that are set for the given module
version.
仅对固定模块有效,自动缩放模块会报错。以后可能会支持自动缩放模块。
https://cloud.google.com/appengine/docs/python/refdocs/google.appengine.api.modules.modules
顺便说一下,您还可以从 StackDriver 进行监控,它具有总实例的指标
您还应该能够使用最近发布的 GA App Engine Admin API 来解决这个问题。 admin API 的好处在于它适用于标准和灵活:
https://cloud.google.com/appengine/docs/admin-api/
这是 returns 给定 service/version 的所有实例的端点:
根据您使用的语言,通常有一个 "Google API client" + 语言库形式的很好的包装器。
希望对您有所帮助!
如果您正在尝试收集统计信息,您可能希望使用 Stackdriver Monitoring API 来收集 Google 已经汇总的时间序列值。
特别是 App Engine Metrics is here 的列表。例如,system/instance_count
是指示 App Engine 实例数量的指标 运行。
我讨厌 SO 问题只得到部分答案,所以这里有一个完整的工作示例。如果您将它粘贴到您的交互式控制台,它应该适合您。 (不要忘记将 versionsId
设置为您的默认应用程序版本。如果您知道我如何使用默认版本,请 post 发表评论。'default', '*', 'any', 等都不是 da workie.)
通过反复试验严格实现:
import httplib2
import logging
import time
import webapp2
from google.appengine.api.app_identity import app_identity
from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = build('appengine', 'v1', credentials=credentials)
appsId = app_identity.get_application_id()
version_list = service.apps().services().versions().list(
servicesId='default', appsId=appsId).execute()
for version in version_list['versions']:
if not version['id'].startswith('ah-builtin'):
rpc_result = service.apps().services().versions().instances().list(
versionsId=version['id'], servicesId='default',
appsId=appsId).execute()
if rpc_result:
instance_list = rpc_result['instances']
else:
instance_list = []
print version['id'], len(instance_list)
这个问题真的很简单。我想向 datadog 报告 运行 个实例的数量,以及我的一些其他统计数据。
具有讽刺意味的是,我在 Google 网络搜索中搜索如何在 Google App Engine 中执行某些操作,但每次都得到最糟糕的结果: Google App Engine 文档页面。
我同意很难找到,我能找到的最近的是这个
google.appengine.api.modules.modules.get_num_instances(module=None, version=None)source
Return the number of instances that are set for the given module version.
仅对固定模块有效,自动缩放模块会报错。以后可能会支持自动缩放模块。
https://cloud.google.com/appengine/docs/python/refdocs/google.appengine.api.modules.modules
顺便说一下,您还可以从 StackDriver 进行监控,它具有总实例的指标
您还应该能够使用最近发布的 GA App Engine Admin API 来解决这个问题。 admin API 的好处在于它适用于标准和灵活: https://cloud.google.com/appengine/docs/admin-api/
这是 returns 给定 service/version 的所有实例的端点:
根据您使用的语言,通常有一个 "Google API client" + 语言库形式的很好的包装器。
希望对您有所帮助!
如果您正在尝试收集统计信息,您可能希望使用 Stackdriver Monitoring API 来收集 Google 已经汇总的时间序列值。
特别是 App Engine Metrics is here 的列表。例如,system/instance_count
是指示 App Engine 实例数量的指标 运行。
我讨厌 SO 问题只得到部分答案,所以这里有一个完整的工作示例。如果您将它粘贴到您的交互式控制台,它应该适合您。 (不要忘记将 versionsId
设置为您的默认应用程序版本。如果您知道我如何使用默认版本,请 post 发表评论。'default', '*', 'any', 等都不是 da workie.)
通过反复试验严格实现:
import httplib2
import logging
import time
import webapp2
from google.appengine.api.app_identity import app_identity
from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = build('appengine', 'v1', credentials=credentials)
appsId = app_identity.get_application_id()
version_list = service.apps().services().versions().list(
servicesId='default', appsId=appsId).execute()
for version in version_list['versions']:
if not version['id'].startswith('ah-builtin'):
rpc_result = service.apps().services().versions().instances().list(
versionsId=version['id'], servicesId='default',
appsId=appsId).execute()
if rpc_result:
instance_list = rpc_result['instances']
else:
instance_list = []
print version['id'], len(instance_list)