2016-08-16 1 views
1

정말 간단한 질문입니다. 나는 다른 많은 통계와 함께 실행중인 인스턴스의 수를 데이터 맵에보고하려고합니다.실행중인 App Engine 인스턴스의 수를 얻기 위해 만들 수있는 API 호출이 있습니까?

매번 Google App Engine 문서에서 Google App Engine에서 무언가를 수행하고 가능한 가장 치명적인 결과를 얻는 방법에 대해 Google 웹 검색에서 검색한다는 사실은 아이러니합니다. 나는 그것을 발견하기 어렵다 동의

답변

0

SO 질문에 부분 답변 만있는 경우 싫지만 여기에 완전한 작동 예제가 있습니다. 대화 형 콘솔에 붙여 넣으면 작동합니다. (기본 앱 버전이 무엇이든 versionsId으로 설정하는 것을 잊지 마세요. 기본 버전 사용 방법을 알고 있다면 'default', '*', 'any'등의 의견을 게시하십시오. 전혀 다 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) 
0

, 내가 찾을 수있는 가장 가까운 일이 고정 모듈에 대해서만 유효이

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

는 Btw는 또한 총 예를

3

당신은이를 알아 내기 위해 최근 GA'd 앱 엔진 관리 API를 사용할 수 있어야 메트릭이있는 명칭 : StackDriver에서 모니터링 할 수 있습니다.

https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions.instances/list

: 여기 https://cloud.google.com/appengine/docs/admin-api/

이 주어진 서비스/버전의 모든 인스턴스를 반환하는 엔드 포인트의 : 관리자 API에 대해 좋은 점은 표준 및 유연한 모두 일 것이다 사용하는 언어에 따라 일반적으로 "Google API 클라이언트"+ 언어 라이브러리 형식의 멋진 래퍼가 있습니다.

희망이 도움이됩니다.

+0

윽. "AppsId"아래에는 "apps/myapp/services/default/versions/v1"이라는 예가 있습니다. 실제로 의미하는 바는 해당 필드에 응용 프로그램 이름, "기본"(또는 응용 프로그램 아래에 다른 서비스, 해당 서비스의 이름을 배치 한 경우) 및 세 번째 필드에 응용 프로그램의 서비스 버전을 표시하려는 것입니다. 의사는 또한 필요한 권한에 대해 언급하지 않습니다. 그래도 "Permission Denied"응답에 나타납니다. 클라우드 서비스에 대한 전형적인 문서 스타일의 전형입니다. – Sniggerfardimungus

+0

당신이 듣기 좋다는 사실을 알기 위해이 일을 할 수있었습니다. 문서 업데이트에 대해 살펴 보겠습니다. –

+0

감사!방금 전 완벽한 작업 코드 예제를 게시했지만, 모든 버전의 모든 인스턴스 또는 기본 버전의 목록을 얻는 방법을 파악할 수 있으면 저주받을 것입니다. 나는 최근에 '기본'버전의 개념이 관리 콘솔에서 사라진 것으로 나타났습니다. 그 일이 일어 났을 때 별칭도 사라 졌을까요? – Sniggerfardimungus

0

통계를 수집하려는 경우 Stackdriver Monitoring API을 사용하여 Google이 이미 집계 한 timeseries 값을 수집 할 수 있습니다.

특히 App Engine Metrics is here의 목록입니다. 예를 들어 system/instance_count은 App Engine이 실행중인 인스턴스의 수를 나타내는 측정 항목입니다.

관련 문제