gRPC-clientseitige Messwerte verwenden

Auf dieser Seite wird beschrieben, wie Sie clientseitige gRPC-Messwerte an Cloud Monitoring senden, wenn Sie gRPC verwenden, um über eine der folgenden unterstützten Schnittstellen mit Cloud Storage zu interagieren:

Mit clientseitigen Messwerten können Sie die Leistung der Clientanwendung überwachen, die über gRPC mit Cloud Storage interagiert. Der clientseitige Messwert unterscheidet sich von serverseitigen Messwerten, die Aufschluss über die Cloud Storage-Leistung aus serverseitiger Sicht geben.

Funktionsweise

Sie können clientseitige Messwerte an Cloud Monitoring senden, wenn Sie gRPC verwenden, um über eine der unterstützten Schnittstellen mit Cloud Storage zu interagieren. Im Metrics Explorer können Sie sich clientseitige Messwerte ansehen, um die Interaktionen zwischen Cloud Storage und dem gRPC-Client zu überwachen und zu optimieren, die Nutzung zu verwalten und Leistungsengpässe und technische Probleme zu beheben.

Preise

Für clientseitige Cloud Storage-Messwerte fallen keine Kosten an. Sie können sie also generieren, speichern und abrufen, ohne Cloud Monitoring-Gebühren zu zahlen. Weitere Informationen zu den Preisen finden Sie unter Google Cloud Observability-Preise.

Hinweise

Wenn Sie clientseitige Messwerte verwenden möchten, müssen Sie zuerst die folgenden Schritte ausführen:

  1. Prüfen Sie, ob die Cloud Storage-Clientbibliothek oder der Cloud Storage-Connector, den Sie verwenden möchten, gRPC unterstützt. Die folgenden Cloud Storage-Clientbibliotheken und ‑Connectors unterstützen gRPC:

  2. Richten Sie die Authentifizierung ein.

  3. Aktivieren Sie die Cloud Monitoring API.

  4. Aktivieren Sie die Cloud Storage API.

    Cloud Storage API

  5. Legen Sie die erforderlichen Rollen und Berechtigungen fest, die zum Senden clientseitiger Messwerte erforderlich sind.

Erforderliche Rollen

Wenn Sie die Berechtigungen festlegen möchten, die Sie zum Senden von gRPC-clientseitigen Messwerten an Cloud Monitoring benötigen, gewähren Sie dem vom gRPC-Client verwendeten Dienstkonto die IAM-Rolle Monitoring-Messwert-Autor (roles/monitoring.metricWriter).

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Senden von gRPC-clientseitigen Messwerten an Cloud Monitoring erforderlich sind. Die genauen erforderlichen Berechtigungen finden Sie im Abschnitt Erforderliche Berechtigungen:

Erforderliche Berechtigungen

  • monitoring.timeSeries.create

Sie können diese Berechtigungen auch mit anderen benutzerdefinierten Rollen oder vordefinierten Rollen erhalten. Weitere Informationen zur Rolle „Monitoring Metric Writer“ finden Sie in der IAM-Dokumentation zu roles/monitoring.metricWriter.

Hinweise

Messwerte in Metrics Explorer aufrufen

Folgen Sie der Anleitung unten, um clientseitige gRPC-Messwerte für Cloud Storage im Metrics Explorer aufzurufen.

  1. Rufen Sie in der Google Cloud Console die Seite Metrics Explorer auf.

    Zum Metrics Explorer

  2. Wählen Sie das Projekt aus, für das Sie Messwerte sehen möchten.

  3. Klicken Sie im Drop-down-Menü Messwert auf Messwert auswählen.

  4. Geben Sie in der Suchleiste Nach Ressourcen- oder Messwertname filtern den Wert storage.googleapis.com/Client ein oder suchen Sie nach dem Messwert, den Sie anwenden möchten, und klicken Sie auf Übernehmen. Wenn Sie mehrere Messwerte hinzufügen möchten, klicken Sie auf Abfrage hinzufügen.

    Cloud Storage wendet die Messwerte auf Ihr Projekt an. Sie können Ihre Messwerte mithilfe der folgenden Drop-down-Menüs filtern oder zusammenfassen:

    • Wenn Sie eine Teilmenge Ihrer Daten anhand bestimmter Kriterien auswählen und anzeigen lassen möchten, verwenden Sie das Drop-down-Menü Filter.

    • Wenn Sie mehrere Datenpunkte zu einem einzelnen Wert kombinieren und eine zusammengefasste Ansicht Ihrer Messwerte aufrufen möchten, verwenden Sie das Drop-down-Menü Aggregation.

    Lassen Sie die Anwendung mindestens eine Minute lang laufen, bevor Sie nach veröffentlichten Messwerten suchen.

Informationen zu den Messwerten, die Sie Ihrem Projekt über ein Dashboard hinzugefügt haben, finden Sie unter Dashboards – Übersicht.

Messwertbeschreibungen

In den folgenden Abschnitten werden clientseitige Cloud Storage-Messwerte beschrieben, mit denen die Leistung des gRPC-Clients überwacht werden kann.

Clientmesswerte pro Versuch

Mit den folgenden Messwerten werden Leistungsdaten zu einzelnen Versuchen erfasst, die von einem Client unternommen wurden, um mit einem Server zu kommunizieren. Mithilfe von Messwerten pro Clientversuch können Sie das Wiederholungsverhalten, Engpässe und die Kommunikation zwischen einem Client und einem Server analysieren und optimieren.

Vollständiger Messwert Beschreibung Zahlungsmittel Einheit Attribute
storage.googleapis.com/client/grpc/client/attempt/started Preview: Die Gesamtzahl der gestarteten RPC-Versuche, einschließlich der nicht abgeschlossenen. Zähler {attempt}
  • grpc.method: der vollständige Name der gRPC-Methode, einschließlich Paket, Dienst und Methode.
  • grpc.target: Kanonischer Ziel-URI, der beim Erstellen des gRPC-Kanals verwendet wurde.
storage.googleapis.com/client/grpc/client/attempt/duration Preview. Die End-to-End-Zeit, die für die Ausführung eines RPC-Versuchs benötigt wird, einschließlich der Zeit für die Auswahl eines Subkanals. Histogramm s
  • grpc.method: Vollständiger Name der gRPC-Methode, einschließlich Paket, Dienst und Methode.
  • grpc.target: Kanonischer Ziel-URI, der beim Erstellen des gRPC-Kanals verwendet wird.
  • grpc.status: empfangener gRPC-Server-Statuscode, z. B. OK, CANCELLED oder DEADLINE_EXCEEDED.
  • grpc.lb.locality: den Ort, an den der Traffic gesendet wird. Es wird auf das Resolver-Attribut festgelegt, das aus der weighted_target-Richtlinie übergeben wird, oder auf den leeren String, wenn das Resolver-Attribut nicht festgelegt ist.
storage.googleapis.com/client/grpc/client/attempt/sent_total_compressed_message_size Preview: Die Gesamtzahl der komprimierten, aber nicht verschlüsselten Byte, die pro RPC-Versuch über alle Anfragenachrichten (außer Metadaten) gesendet werden. GRPC- oder Transport-Framing-Byte sind nicht enthalten. Histogramm By
  • grpc.method: Vollständiger Name der gRPC-Methode, einschließlich Paket, Dienst und Methode.
  • grpc.target: Kanonischer Ziel-URI, der beim Erstellen des gRPC-Kanals verwendet wird.
  • grpc.status: empfangener gRPC-Server-Statuscode, z. B. OK, CANCELLED oder DEADLINE_EXCEEDED.
  • grpc.lb.locality: den Ort, an den der Traffic gesendet wird. Es wird auf das Resolver-Attribut festgelegt, das von der weighted_target-Richtlinie übergeben wird, oder auf den leeren String, wenn das Resolver-Attribut nicht festgelegt ist.
storage.googleapis.com/client/grpc/client/attempt/rcvd_total_compressed_message_size Preview: Die Gesamtzahl der komprimierten, aber nicht verschlüsselten Byte, die in allen Antwortnachrichten (außer Metadaten) pro RPC-Versuch empfangen werden. GRPC- oder Transport-Framing-Byte sind nicht enthalten. Histogramm By
  • grpc.method: Vollständiger Name der gRPC-Methode, einschließlich Paket, Dienst und Methode.
  • grpc.target: Kanonischer Ziel-URI, der beim Erstellen des gRPC-Kanals verwendet wird.
  • grpc.status: empfangener gRPC-Server-Statuscode, z. B. OK, CANCELLED oder DEADLINE_EXCEEDED.
  • grpc.lb.locality: den Ort, an den der Traffic gesendet wird. Es wird auf das Resolver-Attribut festgelegt, das von der weighted_target-Richtlinie übergeben wird, oder auf den leeren String, wenn das Resolver-Attribut nicht festgelegt ist.

Weitere Informationen zu Instrumenten für Versuche pro Client finden Sie in der OpenTelemetry-Messwertdokumentation auf GitHub.

Messwerte pro Anruf

Die folgenden Messwerte bieten eine aggregierte Ansicht des gesamten Lebenszyklus eines Clientaufrufs an einen Server. Messwerte pro Anruf eines Kunden liefern allgemeine Daten zu Kundenanrufen, Tracking-Messwerte zur Analyse von Anrufmustern und helfen Ihnen, die Häufigkeit von Fehlern zu ermitteln.

Vollständiger Messwert Beschreibung Zahlungsmittel Einheit Attribute
storage.googleapis.com/client/grpc/client/call/duration Preview. Misst die End-to-End-Zeit, die die gRPC-Bibliothek benötigt, um einen RPC aus Sicht der Anwendung abzuschließen. Histogramm s
  • grpc.method: Vollständiger Name der gRPC-Methode, einschließlich Paket, Dienst und Methode.
  • grpc.target: Kanonischer Ziel-URI, der beim Erstellen des gRPC-Kanals verwendet wird.
  • grpc.status: Der empfangene gRPC-Server-Statuscode, z. B. OK, CANCELLED oder DEADLINE_EXCEEDED.

Weitere Informationen zu clientseitigen Instrumenten pro Aufruf finden Sie in der OpenTelemetry-Messwertdokumentation auf GitHub.

Messwerte zur Lasterkennung anfordern

Die folgenden Messwerte geben Aufschluss über die Effektivität der Anfragelasterfassung Ihrer Clientanwendung. Mithilfe von Messwerten zur Lasterfassung können Sie die Serverlast ausgleichen, die Ressourcennutzung optimieren und die Clientantwortzeiten verbessern. Die folgenden Messwerte sind nur bei direkter Verbindung verfügbar.

Vollständiger Messwert Beschreibung Zahlungsmittel Einheit Attribute
storage.googleapis.com/client/grpc/lb/rls/cache_entries Preview. Die Anzahl der Einträge im Cache für die Anfragelasterkennung. Gauge {entry}
  • grpc.target: Gibt das Ziel des gRPC-Kanals an, in dem die WRR verwendet wird.
  • grpc.lb.rls.server_target: Der Ziel-URI des Servers, mit dem der Server zur Lasterfassung von Anfragen kommuniziert.
  • grpc.lb.rls.instance_uuid: Eine eindeutig globale Kennung (Universally Unique Identifier, UUID) für eine einzelne Clientinstanz zur Erfassung der Anfragelast. Der Wert ist an sich nicht aussagekräftig, aber nützlich, um zwischen Clientinstanzen zu unterscheiden, die die Anfragelast erfassen, wenn es entweder mehrere Instanzen im selben gRPC-Kanal oder mehrere Kanäle zum selben Ziel gibt.
storage.googleapis.com/client/grpc/lb/rls/cache_size Preview. Die aktuelle Größe des Caches für die Anfragelasterkennung. Gauge By
  • grpc.target: Das Ziel des gRPC-Kanals, in dem die WRR verwendet wird.
  • grpc.lb.rls.server_target: Der Ziel-URI des Servers, mit dem der Server zur Lasterfassung von Anfragen kommuniziert.
  • grpc.lb.rls.instance_uuid: Eine UUID für eine einzelne Clientinstanz zur Lasterfassung. Der Wert ist an sich nicht aussagekräftig, aber nützlich, um zwischen Clientinstanzen zu unterscheiden, die die Anfragelast erfassen, wenn es entweder mehrere Instanzen im selben gRPC-Kanal oder mehrere Kanäle zum selben Ziel gibt.
storage.googleapis.com/client/grpc/lb/rls/default_target_picks Preview. Die Anzahl der Load Balancer-Auswahlen, die an das Standardziel gesendet wurden. Zähler {pick}
  • grpc.target: Gibt das Ziel des gRPC-Kanals an, in dem die Lasterfassung von Anfragen verwendet wird.
  • grpc.lb.rls.server_target: Der Ziel-URI des Servers, mit dem die Lasterfassung angefordert werden soll.
  • grpc.lb.rls.data_plane_target: Ein Zielstring, der vom Load Sensing für das Routing von Datenebenen-Traffic verwendet wird. Der Wert wird entweder vom Server für die Anfragelasterfassung für einen bestimmten Schlüssel zurückgegeben oder in der Konfiguration für die Anfragelasterfassung als Standardziel konfiguriert.
  • grpc.lb.pick_result:Das Ergebnis einer LB-Auswahl, z. B. "complete", "fail" oder "drop".
storage.googleapis.com/client/grpc/lb/rls/target_picks Preview. Die Anzahl der LB-Auswahlen, die an jedes Ziel für die Anfragelasterfassung gesendet werden. Wenn das Standardziel auch vom Server zur Erfassung der Anfragelast zurückgegeben wird, werden RPCs, die aus dem Cache an dieses Ziel gesendet werden, in diesem Messwert und nicht in grpc.rls.default_target_picks gezählt. Zähler {pick}
  • grpc.target: Das Ziel des gRPC-Kanals, in dem die Lasterfassung von Anfragen verwendet wird.
  • grpc.lb.rls.server_target: Der Ziel-URI des Servers, mit dem die Lasterfassung angefordert werden soll.
  • grpc.lb.rls.data_plane_target: Ein Zielstring, der vom Load Sensing für das Routing von Datenebenen-Traffic verwendet wird. Der Wert wird entweder vom Server für die Anfragelasterfassung für einen bestimmten Schlüssel zurückgegeben oder in der Konfiguration der Anfragelasterfassung als Standardziel konfiguriert.
  • grpc.lb.pick_result: Das Ergebnis einer LB-Auswahl, z. B. "complete", "fail" oder "drop".
storage.googleapis.com/client/grpc/lb/rls/failed_picks Preview. Die Anzahl der LB-Auswahlen, die fehlgeschlagen sind, weil entweder eine Anfrage zur Lasterfassung fehlgeschlagen ist oder der Kanal zur Lasterfassung gedrosselt wurde. Zähler {pick}
  • grpc.target: Das Ziel des gRPC-Kanals, in dem die Lasterfassung von Anfragen verwendet wird.
  • grpc.lb.rls.server_target: Der Ziel-URI des Servers, mit dem die Lasterfassung angefordert werden soll.

Clientmesswerte des xDiscovery-Dienstes

Die folgenden Messwerte geben Aufschluss darüber, wie Ihre Clientanwendung mit der xDiscovery Service (xDS)-Kontrollebene interagiert, um Verbindungen zu Backend-Diensten zu finden und zu konfigurieren. Mit xDS-Messwerten können Sie die Latenz von Dienstanfragen erfassen, Konfigurationsupdates beobachten und die allgemeine xDS-Leistung optimieren.

Die folgenden Messwerte sind nur bei direkter Verbindung verfügbar.

Vollständiger Messwert Beschreibung Zahlungsmittel Einheit Attribute
storage.googleapis.com/client/grpc/xds_client/connected Preview. Gibt an, ob der xDS-Client einen funktionierenden ADS-Stream zum xDS-Server hat. Für einen bestimmten Server wird dieser Messwert beim Erstellen des Streams auf 1 festgelegt. Wenn ein Verbindungsfehler auftritt oder der ADS-Stream fehlschlägt, ohne dass eine Antwortmeldung gemäß A57 angezeigt wird, wird der Messwert auf 0 festgelegt. Nachdem der Messwert auf 0 festgelegt wurde, wird er auf 1 zurückgesetzt, sobald die erste Antwort in einem ADS-Stream empfangen wird. Dieser Messwert ist nur für Cloud-Clientbibliotheken für C++ verfügbar. Gauge {bool}
  • grpc.target: Gibt für Clients das Ziel des gRPC-Kanals an, in dem XdsClient verwendet wird. Bei Servern ist das der String "#server".
  • grpc.xds.server: Der Ziel-URI des xDS-Servers, mit dem XdsClient kommuniziert.
storage.googleapis.com/client/grpc/xds_client/resource_updates_invalid Preview. Die Anzahl der empfangenen Ressourcen, die als ungültig eingestuft wurden. Dieser Messwert ist nur für Cloud-Clientbibliotheken für C++ verfügbar. Zähler {resource}
  • grpc.target: Gibt für Clients das Ziel des gRPC-Kanals an, in dem die XdsClient verwendet wird. Bei Servern ist das der String "#server".
  • grpc.xds.server: Der Ziel-URI des XDS-Servers, mit dem XdsClient kommuniziert.
  • grpc.xds.resource_type: Gibt einen xDS-Ressourcentyp an, z. B. "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/resource_updates_valid Preview: Die Anzahl der empfangenen Ressourcen, die als gültig eingestuft wurden, auch wenn sie unverändert sind. Dieser Messwert ist nur für Cloud-Clientbibliotheken für C++ verfügbar. Zähler {resource}
  • grpc.target: Gibt für Clients das Ziel des gRPC-Kanals an, in dem die XdsClient verwendet wird. Bei Servern ist das der String "#server".
  • grpc.xds.server: Der Ziel-URI des xDS-Servers, mit dem XdsClient kommuniziert.
  • grpc.xds.resource_type: Gibt einen xDS-Ressourcentyp an, z. B. "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/resources Preview: Die Anzahl der xDS-Ressourcen. Dieser Messwert ist nur für Cloud-Clientbibliotheken für C++ verfügbar. Gauge {resource}
  • grpc.target: Gibt für Clients das Ziel des gRPC-Kanals an, in dem die XdsClient verwendet wird. Bei Servern ist das der String "#server".
  • grpc.xds.authority: die xDS-Autorität. Der Wert ist "#old" für nicht xdstp-Ressourcennamen, die in der xDS API vor der Einführung der xdstp://-URI-Darstellung angegeben wurden.
  • grpc.xds.cache_state: Gibt den Cache-Status einer xDS-Ressource an.
  • grpc.xds.resource_type gibt einen xDS-Ressourcentyp an, z. B. "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/server_failure Preview. Die Anzahl der xDS-Server, die nicht mehr richtig funktionieren und entweder nicht mehr verfügbar sind, überlastet sind oder falsche oder ungültige Konfigurationsdaten bereitstellen. Dieser Messwert ist nur für Cloud-Clientbibliotheken für C++ verfügbar. Zähler {failure}
  • grpc.target: Der Ziel-URI des xDS-Servers, mit dem XdsClient kommuniziert.
  • grpc.xds.server: Gibt für Clients das Ziel des gRPC-Channels an, in dem die XdsClient verwendet wird. Für Server ist dies der String "#server".

Weitere Informationen zu xDS-Clientmesswerten finden Sie in der Dokumentation xDS-basiertes globales Load Balancing auf GitHub.

Clientseitige Messwerte deaktivieren

Sie können clientseitige Messwerte bei Bedarf deaktivieren.

Java

public GrpcStorageOptions.Builder setEnableGrpcClientMetrics(false enableGrpcClientMetrics)

Weitere Informationen finden Sie unter Cloud-Clientbibliotheken für Java-Klasse GrpcStorageOptions.Builder-Methode für gRPC-Clientmesswerte.

C++

Informationen zum Deaktivieren clientseitiger Messwerte für die gRPC API mit Cloud-Clientbibliotheken für C++ finden Sie unter Struktur EnableGrpcMetricsOption.

Nächste Schritte