2016-07-20 15 views
4

Ich versuche, die Google Monitoring API zu verwenden, um Messwerte über meine Cloud-Nutzung abzurufen. Ich verwende die Google Client-Bibliothek für Python.Google Monitoring API: Werte abrufen

Die API wirbt die Möglichkeit, den Zugriff auf mehr als 900 Stackdriver Überwachungs Metrics. Ich möchte einige Google App Engine-Messwerte abrufen, z. B. Anzahl der Instanzen, Gesamtspeicher usw. Die Seite Google API-Messwerte enthält eine Liste aller Messwerte, auf die ich zugreifen kann.

Ich habe die Führungen auf der Google-Client-Bibliothek Seite gefolgt, aber mein Skript die API-Anrufe wird die Metriken nicht gedruckt wird, es druckt nur die metrischen Beschreibungen.

Wie verwende ich die Google Monitoring-API, um auf die Messwerte und nicht auf die Beschreibungen zuzugreifen?

Mein Code:

from oauth2client.service_account import ServiceAccountCredentials 
from apiclient.discovery import build 
... 
response = monitor.projects().metricDescriptors().get(name='projects/{my-project-name}/metricDescriptors/appengine.googleapis.com/system/instance_count').execute() 

print(json.dumps(response, sort_keys=True, indent=4)) 

My Output

Ich erwarte, dass die tatsächliche Instanz sehen zählen. Wie kann ich das erreichen?

Antwort

1

Für alle, die dies lesen, dachte ich, das Problem aus. Ich ging davon aus, dass die Werte aus der Klasse der metrischen Deskriptoren in der API stammen würden, aber das war eine schlechte Annahme.

Für Werte müssen Sie einen 'timeSeries'-Aufruf verwenden. Für diesen Aufruf müssen Sie das Projekt angeben, das Sie überwachen möchten, Startzeit, Endzeit und einen Filter (die gewünschte Metrik wie CPU, Speicher usw.).

So, um die App-Engine abzurufen Projektspeicher, der obige Code wird

request = monitor.projects().timeSeries().list(name='projects/my-appengine-project', 
             interval_startTime='2016-05-02T15:01:23.045123456Z', 
             interval_endTime='2016-06-02T15:01:23.045123456Z', 
             filter='metric.type="appengine.googleapis.com/system/memory/usage"') 

response = request.execute() 

Dieses Beispiel hat die Startzeit und Endzeit einen Monat von Daten zu decken.

Verwandte Themen