Messwertbereich mithilfe der API konfigurieren

In diesem Dokument wird beschrieben, wie Sie die Google Cloud CLI oder den Cloud Monitoring API zum Konfigurieren des Messwertbereichs eines Google Cloud-Projekts. Diese Seite richtet sich an Entwickler und Systemadministratoren.

Die Befehle auf dieser Seite beziehen sich auf einen Ressourcencontainer, der immer ein Google Cloud-Projekt ist.

Hinweis

  • Wenn Sie mit den Begriffen Messwertumfang und den Umfang festlegendes Projekt nicht vertraut sind, lesen Sie den Abschnitt Messwertbereiche.

  • Ihre IAM-Rollen (Identity and Access Management) für das Projekt, für das Sie den Umfang festlegen, und für jedes Projekt, das Sie als überwachtes Projekt hinzufügen möchten, müssen alle Berechtigungen der Rolle „Monitoring Admin“ (roles/monitoring.admin) enthalten. Weitere Informationen finden Sie unter Konfigurationen für Messwertbereiche.

  • Die Messwertbereichsmethoden der Cloud Monitoring API, die Informationen abrufen, sind synchron. APIs, die den Zustand ändern, sind jedoch asynchron. Die Google Cloud CLI-Befehle werden blockiert, bis der asynchrone Vorgang abgeschlossen ist. Informationen dazu, wie Sie feststellen, wann eine asynchrone API-Methode abgeschlossen ist, und wie Sie ihren Status ermitteln, finden Sie unter Asynchrone API-Methoden.

  • Wenn Sie die Cloud Monitoring API mit curl aufrufen möchten oder die Sie auf dieser Seite verwenden möchten, und führen Sie dann Schritte für die Einrichtung des curl-Befehls.

Alle Messwertbereiche auflisten, die ein Projekt enthalten

gcloud

So rufen Sie eine Liste der Messwertbereiche ab, die die Messwerte für eine z. B. ein Google Cloud-Projekt, führen Sie den gcloud beta monitoring metrics-scopes list-Befehl:

gcloud beta monitoring metrics-scopes list MONITORED_RESOURCE_CONTAINER_NAME

Geben Sie vor dem Ausführen des Befehls die Kennung des Ressourcencontainers in die Variable MONITORED_RESOURCE_CONTAINER_NAME ein. Wenn der Ressourcencontainer ein Google Cloud-Projekt ist, Geben Sie projects/PROJECT_ID_OR_NUMBER ein.

Um beispielsweise die Messwertbereiche aufzulisten, in denen das Projekt my-project, führen Sie den folgenden Befehl aus:

gcloud beta monitoring metrics-scopes list projects/my-project

Die folgende Antwort gibt an, dass das Projekt my-project in zwei Messwertbereichen enthalten ist:

metricsScopes:
- createTime: '2018-08-06T17:13:42Z'
  name: locations/global/metricsScopes/012345012345
  updateTime: '2018-08-18T16:20:37.032928Z'
- createTime: '2021-04-13T15:37:26.869Z'
  name: locations/global/metricsScopes/9876543210
  updateTime: '2021-04-13T15:37:27.284239Z'

Führen Sie den Befehl gcloud beta monitoring metrics-scopes describe aus, um detaillierte Informationen zu einem Messwertbereich abzurufen.

curl

Wenn Sie eine Liste der Messwertbereiche abrufen möchten, die die Messwerte für ein Projekt aufrufen können, senden Sie eine GET-Anfrage an den Endpunkt locations.global.metricsScopes.listMetricsScopesByMonitoredProject und fügen Sie den Abfrage-Parameter ein, der das Projekt angibt.

curl -H "Authorization: Bearer ${TOKEN}" \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes:listMetricsScopesByMonitoredProject?monitored_resource_container=projects/${PROJECT_ID_OR_NUMBER}

Wenn der Vorgang erfolgreich abgeschlossen wurde, ist die Antwort ein Array von MetricsScope-Objekten.

Diese Methode führt nicht dazu, dass ein Eintrag in die Audit-Logs des den Bereich festlegenden Projekts geschrieben wird. Damit diese Aktionen im Audit-Log aufgezeichnet werden, aktivieren Sie Datenlesevorgänge für die Cloud Resource Manager API. Weitere Informationen finden Sie unter Audit-Logs zum Datenzugriff konfigurieren.

Details zu einem Messwertbereich abrufen

gcloud

Um detaillierte Informationen zu einem Messwertbereich zu erhalten, führen Sie den Befehl gcloud beta monitoring metrics-scopes describe-Befehl:

gcloud beta monitoring metrics-scopes describe METRICS_SCOPE_ID

Bevor Sie den Befehl ausführen, geben Sie den Namen des voll qualifizierten Namens eines in die Variable METRICS_SCOPE_ID ein. Die folgenden ist ein Beispiel für einen voll qualifizierten Namen:

locations/global/metricsScopes/012345012345

Im Folgenden finden Sie ein Beispiel für eine Antwort: In diesem Beispiel hat der Messwertbereich enthält ein Projekt und die ID des Messwertbereichs und des Projekts sind die gleich:

createTime: '2018-08-06T17:13:42Z'
monitoredProjects:
- createTime: '2018-08-06T17:13:42Z'
  name: locations/global/metricsScopes/012345012345/projects/012345012345
name: locations/global/metricsScopes/012345012345
updateTime: '2018-08-18T16:20:37.032928Z'

Wenn Sie das Google Cloud-Projekt anhand seiner ID ermitteln möchten, führen Sie den Befehl gcloud projects list aus und filtern Sie nach der Projekt-ID. Zum Beispiel Führen Sie den folgenden Befehl aus, um den Namen für das Projekt 012345012345 abzurufen:

gcloud projects list --filter="012345012345" --format="value(NAME)"

curl

Wenn Sie Informationen zu einem Messwertbereich abrufen möchten, senden Sie eine GET-Anfrage an den Endpunkt locations.global.metricsScopes.get:

curl -H "Authorization: Bearer ${TOKEN}" \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}

Wenn der Vorgang erfolgreich abgeschlossen wurde, ist die Antwort ein MetricsScope-Objekt.

Diese Methode führt nicht dazu, dass ein Eintrag in die Audit-Logs des den Bereich festlegenden Projekts geschrieben wird. Damit diese Aktionen im Audit-Log aufgezeichnet werden, aktivieren Sie Datenlesevorgänge für die Cloud Resource Manager API. Weitere Informationen finden Sie unter Audit-Logs zum Datenzugriff konfigurieren.

Projekt einem Messwertbereich hinzufügen

Wenn Sie den App Hub verwenden, müssen Sie sowohl das App Hub-Hostprojekt als auch den Messwertbereich konfigurieren, um Systemmesswerte aus dem App Hub aufzurufen. Wenn Sie einem App Hub-Hostprojekt ein App Hub-Dienstprojekt hinzufügen, ändert sich der Messwertbereich des Projekts nicht. Das Hinzufügen eines Projekts zu einem Durch den Messwertbereich wird die Liste der App Hub-Dienstprojekte, die angehängt sind das App Hub-Hostprojekt. Informationen zum Konfigurieren ein App Hub-Hostprojekt, siehe Dienstprojekte hinzufügen oder entfernen

gcloud

So fügen Sie einem Messwertbereich einen Ressourcencontainer wie ein Google Cloud-Projekt hinzu: gcloud beta monitoring metrics-scopes create ausführen Befehl:

gcloud beta monitoring metrics-scopes create MONITORED_RESOURCE_CONTAINER_NAME --project=SCOPING_PROJECT_ID_OR_NUMBER

Führen Sie die folgenden Schritte aus, bevor Sie den vorherigen Befehl ausführen:

  • Geben Sie den Namen oder die ID des Google Cloud-Projekts ein, dessen Messumfang in der Variablen SCOPING_PROJECT_ID_OR_NUMBER geändert werden soll.

  • Geben Sie die Kennung Ihres Ressourcencontainers in die Variable ein MONITORED_RESOURCE_CONTAINER_NAME Wenn der Parameter Ressourcencontainer ein Google Cloud-Projekt, Geben Sie projects/PROJECT_ID_OR_NUMBER ein.

Mit dem folgenden Befehl wird beispielsweise das Projekt my-monitored-project Messwertbereich des Projekts mit dem Namen my-staging-projects:

gcloud beta monitoring metrics-scopes create projects/my-monitored-project --project=my-staging-projects

Die Antwort auf den vorherigen Befehl bestätigt, dass der Befehl erfolgreich abgeschlossen wurde:

Created monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].

curl

Senden Sie eine POST-Anfrage an den Endpunkt locations.global.metricsScopes.projects.create, um ein Google Cloud-Projekt zu einem Messwertbereich hinzuzufügen. Im folgenden Beispiel wird das durch die Umgebungsvariable MONITORED_PROJECT_ID_OR_NUMBER identifizierte Projekt als überwachtes Projekt hinzugefügt:

curl -H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" -X POST \
-d "{'name': 'locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects/${MONITORED_PROJECT_ID_OR_NUMBER}'}" \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects

Die Antwort dieser asynchronen Methode ist ein Operation-Objekt.

Anwendungen, die diese Methode aufrufen, sollten den Endpunkt operation.get abfragen, bis das Feld Operation.done den Wert true hat. Wenn das Feld Operation.done auf false gesetzt ist, bedeutet dies, dass der Vorgang läuft. Weitere Informationen finden Sie unter Asynchrone API-Befehle.

Das folgende Beispiel zeigt die Antwort wenn das Hinzufügen eines überwachten Projekts erfolgreich:

{
  "name": "operations/6915efde-1915-400a-ad49-7b62041d9bd2",
  "metadata": {
    "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.OperationMetadata",
    "state": "DONE",
    ...
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.MonitoredProject",
    "name": "locations/global/metricsScopes/012012012012/projects/678678678678",
    "provider": "G​C​P",
    "providerAccountId": "...",
    ...
  }
}

In der vorherigen Antwort ist das Feld Operation.done auf true gesetzt. Dieser Wert gibt an, dass der Befehl abgeschlossen ist. Da der Befehl erfolgreich ausgeführt wurde, wird das Feld Operation.response festgelegt und sein Wert ist ein MonitoredProject-Objekt. Das Feld response.name enthält die ID des den Bereich festlegenden überwachten Projekts. Im Feld providerAccountId ist der Name des überwachten Projekts aufgeführt.

Der Aufruf dieser Methode führt zu einem Eintrag in den Audit-Logs des den Bereich festlegenden Projekts. Die Google Cloud Console ruft diese API-Methode nicht auf. Daher werden Änderungen an einem Messwertbereich, wenn Sie die Google Cloud Console verwenden, nicht in den Audit-Logs aufgezeichnet.

Projekt aus einem Messwertbereich entfernen

Wenn Sie den App Hub verwenden, prüfen Sie vor dem Entfernen eines Projekts aus dem Messwertbereich, ob es von einer App Hub-Anwendung verwendet wird. Das Entfernen des Projekts aus dem Messwertbereich hat keine Auswirkungen auf die Anwendung. Sie können jedoch nicht Systemmesswerte für diese Anwendung aus dem Kontext des App Hub-Hostprojekt. Informationen zum Konfigurieren eines App Hub-Hostprojekts finden Sie unter Dienstprojekte hinzufügen oder entfernen.

gcloud

So entfernen Sie einen Ressourcencontainer wie ein Google Cloud-Projekt: aus einem Messwertbereich gcloud beta monitoring metrics-scopes delete-Befehl:

gcloud beta monitoring metrics-scopes delete MONITORED_RESOURCE_CONTAINER_NAME --project=SCOPING_PROJECT_ID_OR_NUMBER

Führen Sie vor dem Ausführen des vorherigen Befehls die folgenden Schritte aus:

  • Geben Sie den Namen oder die ID des Google Cloud-Projekts ein, dessen Messumfang in der Variablen SCOPING_PROJECT_ID_OR_NUMBER geändert werden soll.

  • Geben Sie die Kennung Ihres Ressourcencontainers in die Variable ein MONITORED_RESOURCE_CONTAINER_NAME Wenn der Ressourcencontainer ein Google Cloud-Projekt ist, geben Sie projects/PROJECT_ID_OR_NUMBER ein.

Mit dem folgenden Befehl wird beispielsweise das Projekt my-monitored-project entfernt. aus dem Messwertbereich des Projekts my-staging-projects:

gcloud beta monitoring metrics-scopes delete projects/my-monitored-project --project=my-staging-projects

Die Antwort auf den vorherigen Befehl bestätigt, dass der Befehl erfolgreich abgeschlossen wurde:

Deleted monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].

Der folgende Fehler wird gemeldet, wenn das Projekt für die Definition des Umfangs das Projekt, das durch die Variable MONITORED_RESOURCE_CONTAINER_NAME angegeben ist, nicht überwacht:

NOT_FOUND: Requested entity was not found.

curl

Senden Sie zum Entfernen eines Google Cloud-Projekts aus einem Messwertbereich eine DELETE-Anfrage an den Endpunkt locations.global.metricsScopes.projects.delete:

curl -H "Authorization: Bearer ${TOKEN}" -X DELETE \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects/${MONITORED_PROJECT_ID_OR_NUMBER}

Die Antwort auf diese asynchrone Methode ist ein Operation-Objekt.

Anwendungen, die diese Methode aufrufen, sollten den Endpunkt operation.get abfragen, bis das Feld Operation.done den Wert true hat. Wenn das Feld Operation.done auf false gesetzt ist, bedeutet dies, dass der Vorgang läuft. Weitere Informationen finden Sie unter Asynchrone API-Befehle.

Das folgende Beispiel zeigt die Antwort bei erfolgreicher Entfernung eines überwachten Projekts:

{
  "name": "operations/4367ff34-0ff0-4767-b8d3-0638e30f077c",
  "metadata": {
    "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.OperationMetadata",
    "state": "DONE",
    ...
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

In der vorherigen Antwort ist das Feld Operation.done auf true gesetzt. Dieser Wert gibt an, dass der Befehl abgeschlossen ist. Da der Befehl erfolgreich ausgeführt wurde, wird das Feld Operation.response festgelegt und enthält ein Feld @type.

Der Aufruf dieser Methode führt zu einem Eintrag in den Audit-Logs des den Bereich festlegenden Projekts. Diese API-Methode wird von der Google Cloud Console nicht aufgerufen. Daher werden Änderungen an einem Messwertbereich, wenn Sie die Google Cloud Console verwenden, nicht in den Audit-Logs aufgezeichnet.

Asynchrone API-Methoden

Alle Messwertbereichsmethoden der Cloud Monitoring API, die den Systemzustand ändern, beispielsweise der Befehl zum Hinzufügen eines überwachten Projekts zu einem Messwertbereich, sind asynchron. Bei diesen Befehlen ist die Befehlsantwort ein Operation-Objekt.

Anwendungen, die eine asynchrone API-Methode aufrufen, sollten den Endpunkt operation.get abfragen, bis das Feld Operation.done den Wert true hat:

  • Wenn done den Wert false hat, wird der Vorgang noch ausgeführt.

    Senden Sie zum Aktualisieren der Statusinformationen eine GET-Anfrage an den Endpunkt operation.get:

    curl -H "Authorization: Bearer ${TOKEN}" \
    https://monitoring.googleapis.com/v1/${OPERATION_NAME}

    Im vorherigen Befehl ist OPERATION_NAME eine Umgebungsvariable, die den Wert des Felds Operation.name speichert.

  • Wenn done den Wert true hat, ist der Vorgang abgeschlossen und entweder das Feld error oder response ist festgelegt:

    • error: Wenn dies festgelegt ist, ist der asynchrone Vorgang fehlgeschlagen. Der Wert dieses Felds ist ein Status-Objekt, das einen gRPC-Fehlercode und eine Fehlermeldung enthält.
    • response: Wenn dies festgelegt ist, wurde der asynchrone Vorgang erfolgreich abgeschlossen und der Wert spiegelt das Ergebnis wider.

Einrichtung des curl-Befehls

In diesem Abschnitt wird die Einrichtung beschrieben, mit der die curl-Befehle in diesem Dokument erstellt wurden. Jeder curl-Befehl auf dieser Seite enthält eine Reihe von Argumenten, gefolgt von der URL einer API-Ressource:

curl -H "Authorization: Bearer ${TOKEN}" <other_args> \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/<resource>

Legen Sie die folgenden Umgebungsvariablen fest, um die Erstellung der curl-Befehle zu vereinfachen:

  1. Erstellen Sie die Umgebungsvariable, um die ID oder Nummer des den Umfang festlegenden Projekts zu speichern:

    SCOPING_PROJECT_ID_OR_NUMBER=SCOPING_PROJECT_ID_OR_NUMBER
    
  2. Optional. Wenn Sie beabsichtigen, überwachte Projekte hinzuzufügen oder zu entfernen, konfigurieren Sie die Umgebungsvariable mit der ID oder Nummer des überwachten Projekts:

    MONITORED_PROJECT_ID_OR_NUMBER=MONITORED_PROJECT_ID_OR_NUMBER
    
  3. Authentifizieren Sie sich in der Google Cloud CLI:

    gcloud auth login
    
  4. Optional. Damit Sie nicht bei jedem gcloud-Befehl Ihre Projekt-ID angeben müssen, legen Sie Ihre Projekt-ID mithilfe der gcloud CLI als Standard fest:

    gcloud config set project ${SCOPING_PROJECT_ID_OR_NUMBER}
    
  5. Erstellen Sie ein Autorisierungstoken und erfassen Sie es in einer Umgebungsvariablen.

    TOKEN=`gcloud auth print-access-token`
    

    Tokens sind für eine begrenzte Zeit gültig. Wenn zuvor funktionierende Befehle plötzlich melden, dass Sie nicht authentifiziert sind, führen Sie diesen Befehl noch einmal aus.

  6. Bestätigen Sie, dass Sie ein Zugriffstoken erhalten haben. Geben Sie dazu die Variable TOKEN zurück:

    echo ${TOKEN}
    ya29.GluiBj8o....
    

Möglicherweise müssen Sie auch andere Argumente angeben, um beispielsweise den Typ der HTTP-Anfrage anzugeben (z. B. -X DELETE). Die Standardanfrage ist GET. Daher wird sie in den Beispielen nicht angegeben.

Nächste Schritte

Informationen zur Verwendung von Google Cloud mit Terraform finden Sie in den folgenden Ressourcen: