Wenn Sie benutzerdefinierte Messwerte (auch benutzerdefinierte Messwerte genannt) mit der Cloud Monitoring API erstellen, können Sie anwendungsspezifische Messwerte erfassen und in Diagrammen darstellen oder Benachrichtigungen dafür einrichten, genau wie bei integrierten Cloud Monitoring-Messwerten. Wie integrierte Messwerte kombiniert jeder benutzerdefinierte Messwert Datenpunkte, einen Messwerttyp, der definiert, was die Punkte darstellen, und eine überwachte Ressource, die angibt, woher die Daten stammen.
Wir empfehlen, für die Instrumentierung Ihrer Anwendung ein anbieterneutrales als Open Source veröffentliches Instrumentierungs-Framework wie OpenTelemetry anstelle von anbieter- und produktspezifischen APIs oder Clientbibliotheken zu verwenden. Informationen zu diesen Frameworks finden Sie unter Beobachtbarkeit für Anwendungsentwickler und Instrumentierungsansatz auswählen.
Sie können die Monitoring API nicht verwenden, um logbasierte Messwerte zu erstellen, die Messwertdaten aus Logeinträgen ableiten. Stattdessen erstellt Cloud Logging die Messwertstrukturen und sendet die Daten für Sie an Cloud Monitoring. Weitere Informationen finden Sie unter Zählermesswerte erstellen und Verteilungsmesswerte erstellen.
Hinweis
Informationen zu den Strukturen, die allen Messwerten zugrunde liegen, finden Sie unter Messwerte, Zeitreihen und Ressourcen.
Wenn Sie Cloud Monitoring verwenden möchten, benötigen Sie ein Google Cloud -Projekt mit aktivierter Abrechnung. Gehen Sie bei Bedarf so vor:
-
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Projekt von Google Cloud aus oder erstellen Sie eines.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud -Projekt aktiviert ist.
- Prüfen Sie, ob die Monitoring API aktiviert ist. Weitere Informationen finden Sie unter Monitoring-API aktivieren.
- Bei Anwendungen, die außerhalb von Google Cloudausgeführt werden, muss Ihr Google Cloud -Projekt Ihre Anwendung mit lokalen Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) authentifizieren. Weitere Informationen finden Sie unter ADC für lokale Umgebungen oder andere Cloud-Anbieter einrichten.
Benutzerdefinierten Messwerttyp erstellen
Wenn Sie einen benutzerdefinierten Messwert erstellen möchten, definieren Sie entweder ein MetricDescriptor-Objekt, das verschiedene Informationen zum Messwert angibt, oder Sie schreiben Messwertdaten. Wenn Sie Messwertdaten schreiben, erstellt Monitoring den Messwert-Deskriptor für Sie basierend auf der Struktur der von Ihnen bereitgestellten Daten.
Informationen zum Entwerfen eines Messwert-Deskriptors finden Sie unter Messwert-Deskriptoren für benutzerdefinierte Messwerte.
Messwertdeskriptoren automatisch erstellen
Wenn Sie Messwertdaten schreiben, obwohl 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 einen neuen MetricDescriptor, wenn das in einem Aufruf von timeSeries.create enthaltene TimeSeries-Objekt auf ein Metric-Objekt verweist, das einen nicht vorhandenen Messwerttypnamen angibt.
Cloud Monitoring verwendet die folgenden Regeln, um die MetricDescriptor zu füllen:
type: Der Typ wird aus dem FeldtypedesMetric-Objekts kopiert.name: Der Name wird aus der Projekt-ID im Methodenaufruf und aus dem Wert vontypeim ObjektMetricerstellt.labels: Die Labels, die imMetric-Objekt angezeigt werden. Jeder Labeldeskriptor im neuen Messwertdeskriptor enthält folgende Felder:key: Der Labelschlüssel im ObjektMetric.valueType:STRINGdescription: Nicht definiert
metricKind: Die Messwertart ist aufGAUGEfestgelegt, sofern Sie nicht den ParametermetricKinddes ObjektsTimeSeriesangeben. Wenn SiemetricKindangeben, hat der neue Messwert diese Art. Sie können nur die ArtenGAUGEundCUMULATIVEangeben.valueType: Der Werttyp wird aus dem typisierten Wert des geschriebenenPointübernommen. Der Werttyp mussBOOL,INT64,DOUBLEoderDISTRIBUTIONsein. Wenn Sie im FeldvalueTypedesTimeSerieseinen Werttyp angeben, muss dieser Typ mit dem Typ desPointü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 Vereinigung aller Labels in den Metric-Objekten in allen Zeitreihen in diesem Aufruf von create.
Nächster Schritt: Benutzerdefinierte Messwerte schreiben.
Manuelle Erstellung von Messwertdeskriptoren
So erstellen Sie einen Messwertdeskriptor:
Struktur des Messwert-Deskriptors bestimmen Wenn Sie Hilfe bei der Auswahl benötigen, können Sie die integrierten Messwerte durchsuchen und sich die zugehörigen Zeitreihendaten 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 Ihren benutzerdefinierten Messwert definieren und die zugehörigen Zeitreihendaten schreiben möchten. Wenn Sie denselben Messwert in mehreren Projekten benötigen, erstellen Sie in jedem Projekt identische Definitionen des Messwerts.
Legen Sie die Art, den Werttyp und optional die Einheiten des Messwerts 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.
Bestimmen Sie die überwachten Ressourcen, für die die Messwertdaten geschrieben werden. Wählen Sie aus der folgenden Liste aus:
aws_ec2_instance: Amazon EC2-Instanz.dataflow_job: Dataflow-Job.gae_instance: App Engine-Instanz.gce_instance: Compute Engine-Instanz.generic_node: Nutzerdefinierter Rechenknoten.generic_task: Benutzerdefinierte Aufgabe.gke_container: GKE-Containerinstanz.global: Verwenden Sie diese Ressource, wenn kein anderer Ressourcentyp geeignet ist. Für die meisten Anwendungsfälle sindgeneric_nodeodergeneric_taskbesser geeignet 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 als Argument an einen Aufruf der MethodemetricDescriptors.create.
In der Regel ist es ein Fehler, metricDescriptors.create mit demselben Typnamen wie ein vorhandener Messwertdeskriptor aufzurufen. 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 Messgerät-Messwert.
Protokoll
Verwenden Sie zum Erstellen eines Messwertdeskriptors die Methode metricDescriptors.create.
Sie können diese Methode mit dem APIs Explorer-Widget 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 wie das folgende an:{ "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 im Widget ein und verwenden Sie dabei die ID Ihres Projekts anstelle von [PROJECT_ID]:
Klicken Sie auf den Button Ausführen, um die Methode auszuführen.
Beim Erstellen eines neuen Messwerts wird das Feld name in der 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 die Beschreibung 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 ADC für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Wenn Sie Probleme haben, lesen Sie den Abschnitt Fehlerbehebung bei API-Aufrufen.
Nächster Schritt: 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 Zeitreihe vorhanden ist, wird mit dieser Methode ein neuer Datenpunkt an die vorhandene Zeitreihe angehängt. Wenn die Zeitreihe 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 Zeitreihe angeben:
- Die Werte der Felder
metricundresourceidentifizieren 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
metricKindundvalueTypeweg. 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 Punkten liegen, die bereits in der Zeitreihe vorhanden sind.
- 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 mehr als einen Punkt in dieselbe Zeitreihe schreiben möchten, verwenden Sie für jeden Punkt einen separaten Aufruf der Methode
timeSeries.create. Schreiben Sie Daten nicht schneller als einen Punkt alle 5 Sekunden in eine einzelne Zeitreihe. Wenn Sie Datenpunkte zu verschiedenen Zeitreihen hinzufügen, gibt es keine Ratenbegrenzung.
Protokoll
Verwenden Sie zum Schreiben von Messwertdaten die Methode timeSeries.create.
Sie können diese Methode mit dem APIs Explorer-Widget 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.createauf. - Geben Sie im APIs Explorer-Widget die unten aufgeführten Parameter an.
- Klicken Sie auf den Button Ausführen.
Verwenden Sie folgende Beispielparameter:
- Name:
projects/[PROJECT_ID] Anfragetext: Fügen Sie eine Liste von
TimeSeries-Objekten ein. 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 ADC für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Wenn Sie Probleme haben, lesen Sie den Abschnitt Fehlerbehebung bei API-Aufrufen.
Benutzerdefinierte Messwerte löschen
Wenn Sie einen benutzerdefinierten Messwert löschen möchten, löschen Sie den zugehörigen Messwertdeskriptor. Sie können die in Ihrem Google Cloud -Projekt gespeicherten Zeitreihendaten nicht löschen. Wenn Sie jedoch den Messwertdeskriptor löschen, sind die Daten nicht mehr zugänglich. Die Daten laufen gemäß den Richtlinien zur Datenaufbewahrung ab und werden gelöscht.
Sie können den Messwertdeskriptor für einen integrierten Messwert nicht löschen.
Rufen Sie zum Löschen des Messwert-Deskriptors die Methode metricDescriptors.delete auf.
Protokoll
Verwenden Sie zum Löschen eines Messwertdeskriptors die Methode metricDescriptors.delete.
Sie können diese Methode mit dem APIs Explorer-Widget 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 Messwertdeskriptoren manuell erstellen erstellt wurde:
- Rufen Sie die Referenzseite für
metricDescriptors.deleteauf. Geben Sie im APIs Explorer-Widget den Namen des Messwertdeskriptors an:
Name:
projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_salesKlicken Sie auf den Button Ausführen.
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Wenn Sie Probleme haben, lesen Sie den Abschnitt Fehlerbehebung bei API-Aufrufen.
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 Labels zu einem vorhandenen benutzerdefinierten Messwert 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 Labels, die Sie schreiben möchten, gültig sind und die Gesamtzahl der Labels weniger als 30 beträgt.
Die Zeitreihendaten werden dann so geschrieben, als wäre das Label von Anfang an vorhanden gewesen.
Wenn Sie mehr als nur neue Labels hinzufügen möchten, müssen Sie den Messwertdeskriptor löschen und neu erstellen. In diesem Fall gehen alle Zeitreihendaten 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.