Google API Client, вызывает встроенный API с точкой в ​​имени параметра - PullRequest
0 голосов
/ 30 августа 2018

Я в Google App Engine, я пытаюсь вызвать определенный метод API мониторинга через Google API Client. Когда я вызываю timeSeries.list с interval.startTime, тогда ошибка - SyntaxError: keyword can't be an expression. Когда я заменяю interval.startTime и interval.EndTime на interval=intervalobj, возникает ошибка:

File "/base/data/home/apps/e~bwm2-bgi/scaler:
scaling-readmon.412218217025616715/lib/googleapiclient/discovery.py", 
line 716, in method raise TypeError
('Got an unexpected keyword argument "%s"' % name) 
TypeError: Got an unexpected keyword argument "interval"

Я использовал Compute API таким же образом, как interval=intervalobl, и он работал. Любой совет приветствуется.

КОД:

import webapp2
import logging
from google.appengine.ext import vendor
vendor.add('lib')
from google.appengine.api import app_identity
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials

monitoring = discovery.build('monitoring','v3', credentials=GoogleCredentials.get_application_default())
class Scaler(webapp2.RequestHandler):
        def post(self):
                '''
                req = monitoring.projects().metricDescriptors().list(name='projects/PROJ')
                res = req.execute()
                logging.info(res)
                '''
                intervalobj = {
                        'startTime': '2018-08-10T11:01:23.045123456Z',
                        'endTime': '2018-08-10T11:01:23.045123456Z'
                }

                res = monitoring.projects().timeSeries().list(
                        name = 'projects/bwm2-bgi',
                        filter = 'metric.type="appengine.googleapis.com/http/server/response_style_count"',
                        interval.startTime = '2018-08-10T11:01:23.045123456Z',
                        interval.endTime = '2018-08-28T11:01:23.045123456Z').execute()
                logging.info(res)

app = webapp2.WSGIApplication([
        ('/scaler', Scaler)
], debug=True)

1 Ответ

0 голосов
/ 19 марта 2019

Использование interval_startTime и interval_endTime сработало вместо interval.startTime и interval.endTime для меня.

request = monitor.projects().timeSeries().list(name=project_name,
                                        interval_startTime='2019-03-19T06:00:00.045123456Z',
                                        interval_endTime='2019-03-19T07:00:00.045123456Z', 
                                        filter='metric.type="appengine.googleapis.com/http/server/response_style_count"')

Я полагаю, что установка точечного интервала с помощью period.endTime используется при указании точек с помощью monitor_v3.MetricServiceClient TimeSeries, но не с ресурсом обнаружения.

...