In diesem Dokument wird beschrieben, wie Sie mit der Cloud Monitoring API benutzerdefinierte Messwerte erstellen und diese Messwertdaten schreiben. Für benutzerdefinierte Messwerte werden dieselben Elemente verwendet wie für die integrierten Cloud Monitoring-Messwerte:
- Eine Reihe von Datenpunkten.
- Informationen zum Messwerttyp, die Aufschluss darüber geben, für was die Datenpunkte stehen.
- Informationen zu überwachten Ressourcen, die Aufschluss über den Ursprung der Datenpunkte geben.
Benutzerdefinierte Messwerte werden genauso verwendet wie integrierte Messwerte. Das heißt, Sie können Diagramme und Benachrichtigungen für diese Messwertdaten erstellen.
Logbasierte Messwerte sind eine Klasse von benutzerdefinierten Messwerten, die Sie jedoch nicht mit der Cloud Monitoring API erstellen können. Bei logbasierten Messwerten werden Messwertdaten aus Logeinträgen abgeleitet. Die Monitoring API bietet jedoch keine Möglichkeit, anzugeben, wie Messwertdaten aus Logeinträgen extrahiert werden sollen. Verwenden Sie stattdessen Cloud Logging, um logbasierte Messwerte zu erstellen. Wenn Sie einen logbasierten Messwert erstellen, werden in Logging die in diesem Dokument beschriebenen Strukturen erstellt und die Messwertdaten werden für Sie an Cloud Monitoring gesendet. Informationen zum Erstellen logbasierter Messwerte finden Sie in den folgenden Dokumenten:
Wir empfehlen, zur Instrumentierung Ihrer Anwendung ein anbieterneutrales Open-Source-Instrumentierungsframework wie OpenTelemetry zu verwenden, anstatt anbieter- und produktspezifische APIs oder Clientbibliotheken. Weitere Informationen zur Instrumentierung Ihrer Anwendung finden Sie unter Instrumentierung und Beobachtbarkeit.
Hinweise
Informationen zu den Strukturen, die allen Messwerten zugrunde liegen, finden Sie unter Messwerte, Zeitreihen und Ressourcen.
Um Cloud Monitoring verwenden zu können, muss ein Google Cloud-Projekt mit aktivierter Abrechnungsfunktion vorhanden sein. Gehen Sie bei Bedarf so vor:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Die Monitoring API muss aktiviert sein. Weitere Informationen finden Sie unter Monitoring-API aktivieren.
Bei Anwendungen, die außerhalb von Google Cloud ausgeführt werden, muss Ihre Anwendung von Ihrem Google Cloud-Projekt authentifiziert werden. Normalerweise konfigurieren Sie die Authentifizierung, indem Sie ein Dienstkonto für Ihr Projekt erstellen und eine Umgebungsvariable konfigurieren.
Informationen zum Erstellen eines Dienstkontos finden Sie unter Erste Schritte bei der Authentifizierung.
Benutzerdefinierten Messwerttyp erstellen
Wenn Sie einen benutzerdefinierten Messwert erstellen möchten, definieren Sie entweder ein MetricDescriptor
-Objekt, mit dem verschiedene Informationen über den Messwert angegeben werden, oder Sie schreiben Messwertdaten. Wenn Sie Messwertdaten schreiben, erstellt Monitoring den Messwertdeskriptor für Sie basierend auf der Struktur der von Ihnen bereitgestellten Daten.
Informationen zum Erstellen eines Messwertdeskriptors finden Sie unter Messwertdeskriptoren für benutzerdefinierte Messwerte.
Messwertdeskriptoren automatisch erstellen
Falls Sie Messwertdaten schreiben, wenn noch kein Messwertdeskriptor für den benutzerdefinierten Messwert vorhanden ist, wird automatisch ein Messwertdeskriptor erstellt. Dieser neue Messwertdeskriptor entspricht jedoch vielleicht nicht Ihren Vorstellungen, da die automatische Erstellung von Messwertdeskriptoren auf verschiedenen Annahmen und Standardwerten basiert.
Cloud Monitoring erstellt eine neue MetricDescriptor
, wenn das TimeSeries
-Objekt in einem Aufruf von timeSeries.create
auf ein Metric
-Objekt verweist, das einen nicht vorhandenen Namen für einen Messwerttyp angibt.
In Cloud Monitoring werden die folgenden Regeln verwendet, um MetricDescriptor
auszufüllen:
type
: Der Typ wird aus dem Feldtype
des ObjektsMetric
kopiert.name
: Der Name wird aus der Projekt-ID im Methodenaufruf und aus dem Wert vontype
im ObjektMetric
erstellt.labels
: Die Labels, die imMetric
-Objekt angezeigt werden. Jeder Labeldeskriptor im neuen Messwertdeskriptor enthält folgende Felder:key
: Der Labelschlüssel im ObjektMetric
.valueType
:STRING
description
: Nicht definiert
metricKind
: Die Messwertart ist aufGAUGE
festgelegt, es sei denn, Sie geben den ParametermetricKind
desTimeSeries
-Objekts an. Wenn SiemetricKind
angeben, hat der neue Messwert diese Art. Sie können als Art nurGAUGE
oderCUMULATIVE
festlegen.valueType
: Der Werttyp ergibt sich aus dem eingegebenen Wert des zu schreibendenPoint
-Objekts. Der Werttyp mussBOOL
,INT64
,DOUBLE
oderDISTRIBUTION
sein. Wenn Sie im FeldvalueType
desTimeSeries
-Objekts einen Werttyp angeben, muss er mit dem Typ desPoint
-Objekts übereinstimmen.unit
: Nicht definiertdescription
:"Auto created custom metric."
.displayName
: Nicht definiert
In einem einzigen timeSeries.create
-Aufruf können Sie mehrere TimeSeries
-Objekte einschließen, die auf denselben nicht vorhandenen Messwerttyp verweisen. In diesem Fall umfassen die Labels im neuen Messwertdeskriptor die Gesamtheit aller Labels, die in den Metric
-Objekten sämtlicher Zeitachsen in diesem Aufruf von create
enthalten sind.
Nächster Schritt: Benutzerdefinierte Messwerte erstellen
Messwertdeskriptoren manuell erstellen
So erstellen Sie einen Messwertdeskriptor:
Legen Sie die Struktur des Messwertdeskriptors fest. Zur Erleichterung der Auswahl können Sie die integrierten Messwerte durchsuchen und sich ihre Zeitachsendaten ansehen:
Wählen Sie einen Messwertnamen für den benutzerdefinierten Messwert aus.
Wählen Sie einen Anzeigenamen und eine Beschreibung für den Messwert aus. Der Anzeigename wird in der Google Cloud Console verwendet.
Wählen Sie ein Projekt oder Projekte aus, in denen Sie den benutzerdefinierten Messwert festlegen und in die seine Zeitachsendaten geschrieben werden. Wenn Sie denselben Messwert in mehreren Projekten benötigen, geben Sie in jedem Projekt dieselbe Definition dafür an.
Legen Sie die Art, den Werttyp und optional Einheiten für den Messwert fest. Nicht alle Werttypen und Messwertarten werden für benutzerdefinierte Messwerte unterstützt. Weitere Informationen zu diesen Feldern finden Sie unter Werttypen und Messwertarten.
Wählen Sie die Labels für den Messwert aus – den Namen, den Werttyp und die Beschreibung.
Legen Sie die überwachten Ressourcen fest, für die die Messwertdaten geschrieben werden. Wählen Sie eine der folgenden Optionen aus:
aws_ec2_instance
: Amazon EC2-Instanz.dataflow_job
: Dataflow-Job.gae_instance
: App Engine-Instanz.gce_instance
: Compute Engine-Instanz.generic_node
: Vom Nutzer angegebener Rechenknoten.generic_task
: Benutzerdefinierte Aufgabe.gke_container
: GKE-Container-Instanz.global
: Verwenden Sie diese Ressource, wenn kein anderer Ressourcentyp geeignet ist. Für die meisten Anwendungsfälle istgeneric_node
odergeneric_task
die bessere Wahl alsglobal
.k8s_cluster
: Kubernetes-Cluster.k8s_container
: Kubernetes-Container.k8s_node
: Kubernetes-Knoten.k8s_pod
: Kubernetes-Pod.
Erstellen Sie ein
MetricDescriptor
-Objekt und übergeben Sie es dann als Argument an einen Aufruf der MethodemetricDescriptors.create
.
Sie erhalten in der Regel einen Fehler, wenn Sie metricDescriptors.create
mit demselben Typnamen wie für einen vorhandenen Messwertdeskriptor aufrufen. Wenn jedoch alle Felder des neuen MetricDescriptor
-Objekts mit den Feldern des vorhandenen Deskriptors exakt identisch sind, entsteht kein Fehler, aber der Vorgang ist wirkungslos.
Im folgenden Beispiel wird ein Messwert vom Typ „Greifschaufel“ erstellt.
Protokoll
Verwenden Sie zum Erstellen eines Messwertdeskriptors die Methode metricDescriptors.create
.
Sie können diese Methode mithilfe des APIs Explorer-Widgets auf der Referenzseite der Methode ausführen. Weitere Informationen finden Sie unter APIs Explorer.
Im Folgenden finden Sie die Beispielparameter für metricDescriptors.create
:
- Name (URL):
projects/[PROJECT_ID]
Anfragetext: Geben Sie ein
MetricDescriptor
-Objekt an. Beispiel:{ "name": "", "description": "Daily sales records from all branch stores.", "displayName": "Sales", "type": "custom.googleapis.com/stores/sales", "metricKind": "GAUGE", "valueType": "DOUBLE", "unit": "{USD}", "labels": [ { "key": "store_id", "valueType": "STRING", "description": "The ID of the store." }, ], }
Geben Sie diese Werte in die Felder des Widgets ein. Ersetzen Sie dabei [PROJECT_ID
durch Ihre Projekt-ID:
Klicken Sie auf die Schaltfläche Ausführen, um die Methode auszuführen.
Beim Erstellen eines neuen Messwerts wird das Feld name
in MetricDescriptor
ignoriert und kann ausgelassen werden. Die Methode create
gibt den neuen Messwertdeskriptor mit einem Eintrag im Feld name
zurück. Dieser würde im gegebenen Beispiel so lauten:
"name": "projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales"
Wenn Sie beispielsweise den Deskriptor eines Messwerts abrufen möchten, verwenden Sie diesen Namen.
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Wenn Probleme auftreten, lesen Sie Fehler bei API-Aufrufen beheben.
Nächster Schritt: Benutzerdefinierte Messwerte erstellen
Benutzerdefinierte Messwerte erstellen
Daten können nur in benutzerdefinierte Messwerttypen geschrieben werden. Verwenden Sie zum Schreiben von Daten die Methode timeSeries.create
.
Wenn die Zeitachse bereits vorhanden ist, hängt diese Methode einen neuen Datenpunkt an die vorhandene Zeitachse an. Ist die Zeitachse nicht vorhanden, wird sie durch diese Methode erstellt und die Daten werden angehängt.
Zum Schreiben von Datenpunkten übergeben Sie eine Liste mit Objekten vom Typ TimeSeries
an die Methode timeSeries.create
.
Die Liste darf maximal 200 Objekte enthalten und jedes Objekt in der Liste muss eine andere Zeitachse angeben:
- Die Werte der Felder
metric
undresource
identifizieren ein bestimmtesTimeSeries
-Objekt. Diese Felder stellen den Messwerttyp der Daten und die überwachte Ressource dar, aus der die Daten erfasst wurden. - Lassen Sie die Felder
metricKind
undvalueType
weg. Sie werden beim Schreiben von Datenpunkten ignoriert. Jedes
TimeSeries
-Objekt darf nur ein einzigesPoint
-Objekt enthalten:- Der Wert und das Zeitintervall des Punkts müssen mit der Definition des Messwerttyps übereinstimmen. Informationen zu Zeitintervallen für unterschiedliche Messwertarten finden Sie unter
TimeInterval
. - Das Zeitintervall des Punkts muss nach allen bereits in der Zeitachse enthaltenen Punkten liegen.
- Das Ende des Intervalls darf maximal 25 Stunden in der Vergangenheit oder fünf Minuten in der Zukunft liegen.
- Der Wert und das Zeitintervall des Punkts müssen mit der Definition des Messwerttyps übereinstimmen. Informationen zu Zeitintervallen für unterschiedliche Messwertarten finden Sie unter
Wenn Sie mehrere Punkte in dieselbe Zeitachse schreiben möchten, verwenden Sie für jeden Punkt einen separaten Aufruf der Methode
timeSeries.create
. Schreiben Sie keine Daten in eine einzelne Zeitachse, die nicht schneller als ein Punkt alle 5 Sekunden sind. Wenn Sie Datenpunkte in unterschiedliche Zeitachsen einfügen, besteht keine zeitliche Einschränkung.
Protokoll
Verwenden Sie zum Schreiben von Messwertdaten die Methode timeSeries.create
.
Sie können diese Methode mithilfe des APIs Explorer-Widgets auf der Referenzseite der Methode ausführen. Weitere Informationen finden Sie unter APIs Explorer.
So schreiben Sie einen Punkt in den Messwert stores/daily_sales
, der unter Messwertdeskriptoren manuell erstellen erstellt wurde:
- Rufen Sie die Referenzseite für
timeSeries.create
auf. - Geben Sie im APIs Explorer-Widget die unten aufgeführten Parameter an.
- Klicken Sie auf die Schaltfläche Ausführen.
Verwenden Sie folgende Beispielparameter:
- Name:
projects/[PROJECT_ID]
Anfragetext: Fügen Sie eine Liste mit
TimeSeries
-Objekten hinzu. Im folgenden Beispiel ist nur eine einzige Zeitachse in der Liste enthalten.{ "timeSeries": [ { "metric": { "type": "custom.googleapis.com/my_metric", "labels": { "my_label": "my_value" } }, "resource": { "type": "gce_instance", "labels": { "project_id": "[PROJECT_ID]", "instance_id": "1234567890123456789", "zone": "us-central1-f" } }, "points": [ { "interval": { "endTime": "2018-06-01T10:00:00-04:00" }, "value": { "doubleValue": 123.45 } } ] } ] }
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Wenn Probleme auftreten, lesen Sie Fehler bei API-Aufrufen beheben.
Benutzerdefinierte Messwerte löschen
Löschen Sie den Messwertdeskriptor des benutzerdefinierten Messwerts, um diesen zu löschen. Sie können die in Ihrem Google Cloud-Projekt gespeicherten Zeitreihendaten nicht löschen. Durch Löschen des Messwertdeskriptors werden die Daten jedoch unzugänglich. Die Daten laufen ab und werden gemäß der Datenaufbewahrungsrichtlinie gelöscht.
Der Messwertdeskriptor für einen integrierten Messwert kann nicht gelöscht werden.
Rufen Sie zum Löschen des Messwertdeskriptors die Methode metricDescriptors.delete
auf.
Protokoll
Verwenden Sie zum Löschen eines Messwertdeskriptors die Methode metricDescriptors.delete
.
Sie können diese Methode mithilfe des APIs Explorer-Widgets auf der Referenzseite der Methode ausführen. Weitere Informationen finden Sie unter APIs Explorer.
So löschen Sie den Messwert stores/daily_sales
, den Sie unter Messwertdeskriptoren manuell erstellen erstellt haben:
- Rufen Sie die Referenzseite für
metricDescriptors.delete
auf: Geben Sie im APIs Explorer-Widget den Namen des Messwertdeskriptors an:
Name:
projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales
Klicken Sie auf die Schaltfläche Ausführen.
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Wenn Probleme auftreten, lesen Sie Fehler bei API-Aufrufen beheben.
Benutzerdefinierten Messwert ändern
Wenn Sie einen benutzerdefinierten Messwert ändern möchten, müssen Sie das MetricDescriptor
-Objekt aktualisieren, das den Messwert definiert.
Die einzige unterstützte Änderung ist das Hinzufügen von Labels.
Wenn Sie einem vorhandenen benutzerdefinierten Messwert Labels hinzufügen möchten, verwenden Sie die Methode timeSeries.create
und fügen Sie die neuen Labels den Zeitreihendaten hinzu. Die Labels werden dem Messwertdeskriptor hinzugefügt, wenn die zu schreibenden Labels gültig sind und die Gesamtzahl der Labels weniger als 30 beträgt.
Die Zeitachsendaten werden dann so geschrieben, als wäre das Label von Anfang an vorhanden gewesen.
Wenn Sie neben dem Hinzufügen neuer Labels noch andere Vorgänge ausführen möchten, müssen Sie den Messwertdeskriptor löschen und neu erstellen. In diesem Fall gehen alle Zeitachsendaten verloren, die zuvor für den alten Messwertdeskriptor erfasst wurden. Weitere Informationen finden Sie unter Benutzerdefinierte Messwerte löschen.
Messwerte können nicht umbenannt werden.
Nächste Schritte
- Messwertnutzung ansehen und verwalten
- Liste der integrierten Messwerte
- Liste der überwachten Ressourcen