In diesem Dokument wird beschrieben, wie Sie benutzerdefinierte Messwerte erstellen und diese Messwertdaten mithilfe der Cloud Monitoring API schreiben. Benutzerdefinierte Messwerte verwenden dieselben Elemente wie 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 darüber geben, woher die Datenpunkte stammen.
Benutzerdefinierte Messwerte, manchmal auch als benutzerdefinierte Messwerte bezeichnet, können auf dieselbe Weise verwendet werden wie integrierte Messwerte. Sie können also Diagramme und Benachrichtigungen für diese Messwertdaten erstellen.
Wir empfehlen die Verwendung eines anbieterneutralen Instrumentierungs-Frameworks auf Open-Source-Basis wie OpenTelemetry anstelle von anbieter- und produktspezifischen APIs oder Clientbibliotheken, um Ihre Anwendung zu instrumentieren. 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, Zeitachsen 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:
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Prüfen Sie, ob die Monitoring API aktiviert ist. Weitere Informationen finden Sie unter Monitoring-API aktivieren.
Bei Anwendungen, die außerhalb von Google Cloud ausgeführt werden, muss sie von Ihrem Google Cloud-Projekt authentifiziert werden. In der Regel konfigurieren Sie die Authentifizierung, indem Sie ein Dienstkonto für Ihr Projekt erstellen und eine Umgebungsvariable konfigurieren.
Erstellen Sie für Anwendungen, die auf einer Amazon Elastic Compute Cloud-Instanz (Amazon EC2) ausgeführt werden, das Dienstkonto für das AWS-Connector-Projekt der Instanz.
Informationen zum Erstellen eines Dienstkontos finden Sie unter Erste Schritte bei der Authentifizierung.
Benutzerdefinierten Messwerttyp erstellen
Zum Erstellen eines benutzerdefinierten Messwerts definieren Sie entweder ein MetricDescriptor
-Objekt, das verschiedene Informationen zum Messwert angibt, oder Sie schreiben Messwertdaten. Wenn Sie Messwertdaten schreiben, erstellt Monitoring den Messwertdeskriptor anhand der Struktur der von Ihnen bereitgestellten Daten.
Informationen zum Entwerfen eines Messwertdeskriptors finden Sie unter Messwertdeskriptoren für benutzerdefinierte Messwerte.
Messwertdeskriptoren automatisch erstellen
Wenn beim Schreiben von Messwertdaten noch kein Messwertdeskriptor für diesen 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 ein neues MetricDescriptor
, wenn das TimeSeries
-Objekt in einem Aufruf von timeSeries.create
auf ein Metric
-Objekt verweist, das einen nicht vorhandenen Namen des Messwerttyps angibt.
Cloud Monitoring verwendet die folgenden Regeln, um den MetricDescriptor
zu füllen:
type
: Der Typ wird aus dem Feldtype
desMetric
-Objekts 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 wird aufGAUGE
festgelegt, sofern Sie den ParametermetricKind
des ObjektsTimeSeries
nicht angeben. Wenn SiemetricKind
angeben, hat der neue Messwert diese Art. Sie können nur die ArtenGAUGE
undCUMULATIVE
angeben.valueType
: Der Werttyp wird aus dem eingegebenen Wert desPoint
übernommen, der geschrieben wird. Der Werttyp mussBOOL
,INT64
,DOUBLE
oderDISTRIBUTION
sein. Wenn Sie im FeldvalueType
vonTimeSeries
einen Werttyp angeben, muss dieser mit dem Typ vonPoint
ü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 bestehen die Labels im neuen Messwertdeskriptor aus der Zusammenführung aller Labels in den Metric
-Objekten in allen Zeitachsen in diesem Aufruf von create
.
Nächster Schritt: Siehe Benutzerdefinierte Messwerte schreiben.
Messwertdeskriptoren manuell erstellen
So erstellen Sie einen Messwertdeskriptor:
Bestimmen Sie die Struktur des Messwertdeskriptors. Zur Entscheidungsfindung 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 oder mehrere Projekte aus, in denen Sie den benutzerdefinierten Messwert definieren und die Zeitachsendaten schreiben möchten. Wenn Sie denselben Messwert in mehreren Projekten benötigen, definieren Sie ihn in jedem Projekt identisch.
Wenn Sie benutzerdefinierte Messwerte aus Ressourcen schreiben möchten, die von einem AWS-Konto verwaltet werden, erstellen Sie den Messwertdeskriptor im AWS-Verbindungsprojekt für dieses Konto.
Bestimmen Sie die Art, den Werttyp und (optional) die Einheiten des Messwerts. 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.
Ermitteln Sie die überwachten Ressourcen, mit denen die Messwertdaten geschrieben werden. Wähle 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 Aufgabegke_container
: GKE-Containerinstanz.global
: Verwenden Sie diese Ressource, wenn kein anderer Ressourcentyp geeignet ist. Für die meisten Anwendungsfälle sindgeneric_node
odergeneric_task
eine bessere Wahl alsglobal
.k8s_cluster
: Kubernetes-Clusterk8s_container
: Kubernetes-Containerk8s_node
: Kubernetes-Knoten.k8s_pod
: Kubernetes-Pod
Erstellen Sie ein
MetricDescriptor
-Objekt und übergeben Sie es dann als Argument an einen Aufruf an die MethodemetricDescriptors.create
.
In der Regel tritt ein Fehler auf, wenn metricDescriptors.create
mit demselben Typnamen wie bei einem vorhandenen Messwertdeskriptor aufgerufen wird. 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 erstellen Sie einen Messwert vom Typ „Gauge“.
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 weggelassen 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 einen Messwertdeskriptor 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.
Weitere Informationen finden Sie unter Fehler bei API-Aufrufen beheben.
Nächster Schritt: Siehe Benutzerdefinierte Messwerte schreiben.
Benutzerdefinierte Messwerte schreiben
Sie können Daten nur in Messwerttypen für benutzerdefinierte Messwerte schreiben. Verwenden Sie zum Schreiben von Daten die Methode timeSeries.create
.
Wenn die Zeitachse vorhanden ist, wird mit dieser Methode ein neuer Datenpunkt an die vorhandene Zeitachse angehängt. Wenn die Zeitachse nicht vorhanden ist, wird sie mit dieser 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 maximale Listengröße beträgt 200 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 jedem bereits vorhandenen Punkt in der Zeitachse 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, müssen Sie die Methode
timeSeries.create
für jeden Punkt separat aufrufen. Schreiben Sie Daten nicht schneller als alle 5 Sekunden in eine einzelne Zeitachse. Wenn Sie Datenpunkte in verschiedene Zeitreihen einfügen, gibt es keine Ratenbegrenzung.
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 Manuelle Erstellung von Messwertdeskriptoren 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. Das folgende Beispiel enthält nur eine Zeitreihe in der Liste.{ "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.
Weitere Informationen finden Sie unter Fehler bei API-Aufrufen beheben.
Benutzerdefinierte Messwerte löschen
Wenn Sie einen benutzerdefinierten Messwert löschen möchten, löschen Sie seinen Messwertdeskriptor. Sie können die in Ihrem Google Cloud-Projekt gespeicherten Zeitreihendaten nicht löschen. Durch das Löschen des Messwertdeskriptors werden die Daten jedoch nicht mehr zugä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 die Methode metricDescriptors.delete
auf, um den Messwertdeskriptor zu löschen.
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
, der unter Manuelle Erstellung von Messwertdeskriptoren erstellt wurde:
- 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.
Weitere Informationen finden Sie unter Fehler bei API-Aufrufen beheben.
Benutzerdefinierten Messwert ändern
Wenn Sie einen benutzerdefinierten Messwert ändern möchten, müssen Sie das Objekt MetricDescriptor
aktualisieren, das den Messwert definiert.
Die einzige unterstützte Änderung ist das Hinzufügen von Labels.
Verwenden Sie zum Hinzufügen von Labels zu einem vorhandenen benutzerdefinierten Messwert die Methode timeSeries.create
und fügen Sie die neuen Labels in die Zeitreihendaten ein. Die Labels werden dem Messwertdeskriptor hinzugefügt, wenn die Labels, die Sie schreiben möchten, gültig sind und die Gesamtzahl der Labels kleiner als 30 ist.
Die Zeitachsendaten werden dann so geschrieben, als wäre das Label von Anfang an vorhanden gewesen.
Wenn Sie mehr tun möchten als neue Labels hinzufügen 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 und Diagnose ansehen
- Liste der integrierten Messwerte
- Liste der überwachten Ressourcen