Mit Tools zur Beobachtbarkeit von Mikrodiensten können Sie Ihre Anwendungen instrumentieren, um Telemetriedaten in Cloud Monitoring, Cloud Logging und Cloud Trace zu erfassen und zu präsentieren, die von gRPC-Arbeitslasten stammen, die in Google Cloud und an anderen Orten bereitgestellt werden. Die Beobachtbarkeit von Mikrodiensten funktioniert mit jeder Bereitstellung, der durch Aktivieren der Microservices API Zugriff auf Monitoring, Logging, und Trace gewährt wurde.
In dieser Anleitung erfahren Sie, wie Sie Features für die Beobachtbarkeit von Mikrodiensten nutzen, indem Sie eine einfache gRPC-Anwendung in Google Cloud mit Compute Engine erstellen und Ihre Anwendung mit Beobachtbarkeit für Mikrodienste instrumentieren und sie live in Monitoring and Logging anzeigen.
Ziele
Auf übergeordneter Ebene führen Sie diese Schritte aus.
Als Dienstentwickler haben Sie folgende Möglichkeiten:
- Erstellen Sie eine gRPC-Anwendung in der Sprache Ihrer Wahl (C++, Go oder Java).
- Aktivieren Sie das Plug-in für die Beobachtbarkeit von Mikrodiensten für Ihre Anwendung und steuern Sie es.
- Stellen Sie die Anwendung auf einer Compute Engine-VM bereit.
Als Dienstoperator nutzen Sie die erfassten Daten auf verschiedene Arten:
- Traces in Trace ansehen.
- Messwerte im Monitoring-Dashboard „Microservices (gRPC) Monitoring“ aufrufen
- Messwerte in Metrics Explorer aufrufen.
- Logeinträge im Log-Explorer prüfen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
Console
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Aktivieren Sie die Compute Engine API und die Microservices API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen -
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
roles/iam.serviceAccountCreator) und die IAM-Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen -
Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.
Zur Seite „Dienstkonto erstellen“ - Wählen Sie Ihr Projekt aus.
-
Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.
Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel:
Service account for quickstart. - Klicken Sie auf Erstellen und fortfahren.
-
Weisen Sie dem Dienstkonto die folgenden Rollen zu: Logging > Logs-Betrachter > Logs-Autor, Monitoring > Monitoring-Bearbeiter > Messwert-Autor, Trace > Trace-Administrator > Trace-Agent.
Wenn Sie eine Rolle zuweisen möchten, suchen Sie die Liste Rolle auswählen und wählen Sie die Rolle aus.
Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
- Klicken Sie auf Weiter.
-
Geben Sie im Feld Rolle „Dienstkontonutzer“ die Kennung für das Hauptkonto ein, mit dem das Dienstkonto an andere Ressourcen angehängt wird, z. B. Compute Engine-Instanzen.
Dies ist in der Regel die E‑Mail-Adresse eines Google-Kontos.
-
Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Aktivieren Sie die Compute Engine API und die Microservices API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen -
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
roles/iam.serviceAccountCreator) und die IAM-Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen -
Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.
Zur Seite „Dienstkonto erstellen“ - Wählen Sie Ihr Projekt aus.
-
Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.
Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel:
Service account for quickstart. - Klicken Sie auf Erstellen und fortfahren.
-
Weisen Sie dem Dienstkonto die folgenden Rollen zu: Logging > Logs-Betrachter > Logs-Autor, Monitoring > Monitoring-Bearbeiter > Messwert-Autor, Trace > Trace-Administrator > Trace-Agent.
Wenn Sie eine Rolle zuweisen möchten, suchen Sie die Liste Rolle auswählen und wählen Sie die Rolle aus.
Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
- Klicken Sie auf Weiter.
-
Geben Sie im Feld Rolle „Dienstkontonutzer“ die Kennung für das Hauptkonto ein, mit dem das Dienstkonto an andere Ressourcen angehängt wird, z. B. Compute Engine-Instanzen.
Dies ist in der Regel die E‑Mail-Adresse eines Google-Kontos.
-
Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
- Lesen Sie die Übersicht über Mikrodienst-Beobachtbarkeit.
- Lesen Sie über die zwei unterstützten Umgebungsvariablen nach und entscheiden Sie, welche verwendet werden soll, und ermitteln Sie die Werte, die für die Umgebungsvariable erforderlich sind.
Befehlszeile
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- 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 „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Compute Engine API und die Microservices API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable compute.googleapis.com
microservices.googleapis.com -
Richten Sie die Authentifizierung ein:
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
roles/iam.serviceAccountCreator) und die IAM-Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen -
Erstellen Sie das Dienstkonto:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAMEmit einem Namen für das Dienstkonto. -
Weisen Sie dem Dienstkonto Rollen zu. Führen Sie den Befehl
roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agentfür jede der folgenden IAM-Rollen einmal aus:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Dabei gilt:
SERVICE_ACCOUNT_NAME: der Name des DienstkontosPROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt habenROLE: die zu gewährende Rolle
-
Weisen Sie dem Hauptkonto, das das Dienstkonto an andere Ressourcen anhängt, die erforderliche Rolle zu.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Ersetzen Sie Folgendes:
SERVICE_ACCOUNT_NAME: der Name des DienstkontosPROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt habenUSER_EMAIL: die E-Mail-Adresse für ein Google-Konto
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- 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 „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Compute Engine API und die Microservices API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable compute.googleapis.com
microservices.googleapis.com -
Richten Sie die Authentifizierung ein:
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
roles/iam.serviceAccountCreator) und die IAM-Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen -
Erstellen Sie das Dienstkonto:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAMEmit einem Namen für das Dienstkonto. -
Weisen Sie dem Dienstkonto Rollen zu. Führen Sie den Befehl
roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agentfür jede der folgenden IAM-Rollen einmal aus:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Dabei gilt:
SERVICE_ACCOUNT_NAME: der Name des DienstkontosPROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt habenROLE: die zu gewährende Rolle
-
Weisen Sie dem Hauptkonto, das das Dienstkonto an andere Ressourcen anhängt, die erforderliche Rolle zu.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Ersetzen Sie Folgendes:
SERVICE_ACCOUNT_NAME: der Name des DienstkontosPROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt habenUSER_EMAIL: die E-Mail-Adresse für ein Google-Konto
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
- Lesen Sie die Übersicht über Mikrodienst-Beobachtbarkeit.
- Lesen Sie über die zwei unterstützten Umgebungsvariablen nach und entscheiden Sie, welche verwendet werden soll, und ermitteln Sie die Werte, die für die Umgebungsvariable erforderlich sind.
Compute Engine-VM erstellen und Verbindung zu dieser herstellen
Folgen Sie dieser Anleitung, um eine Compute Engine-VM-Instanz zu erstellen und eine Verbindung zu ihr herzustellen. Auf der VM stellen Sie Ihre Anwendung bereit und instrumentieren sie dann mit der Beobachtbarkeit von Mikrodiensten.
Erstellen Sie eine VM-Instanz:
gcloud compute instances create grpc-observability-vm \ --image-family=debian-11 \ --image-project=debian-cloud \ --service-account=SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
Verbindung zur VM-Instanz herstellen
gcloud compute ssh --project=$PROJECT_ID grpc-observability-vm
Anwendung auf der Compute Engine-VM bereitstellen
Sie können entweder eine Anwendung Ihrer Wahl auf der Compute Engine-VM bereitstellen, die Sie im vorherigen Schritt erstellt haben, und diesen Schritt überspringen, oder Sie können ein Beispiel verwenden, um mit der Anleitung in Ihrer bevorzugten Sprache fortzufahren.
C++
Führen Sie nach dem Herstellen der Verbindung zur VM-Instanz den folgenden Befehl aus.
sudo apt-get update -y sudo apt-get install -y git build-essential clang git clone -b v1.54.0 https://github.com/grpc/grpc.git --depth=1
Go
Prüfen Sie, ob Go installiert ist.
sudo apt-get install -y git sudo apt install wget wget https://go.dev/dl/go1.20.2.linux-amd64.tar.gz sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf \ go1.20.2.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin
Klonen Sie die
gRPC-Go-Beispiele.git clone https://github.com/grpc/grpc-go.git cd grpc-go/ git checkout -b run-observability-example 875c97a94dca8093bf01ff2fef490fbdd576373d
Java
Nachdem Sie eine Verbindung zur VM-Instanz hergestellt haben, prüfen Sie, ob Java 8 oder höher installiert ist.
sudo apt update sudo apt upgrade sudo apt install git sudo apt-get install -y openjdk-11-jdk-headless
Klonen Sie das
grpc-java-Repository.export EXAMPLES_VERSION=v1.54.1 git clone -b $EXAMPLES_VERSION --single-branch --depth=1 \ https://github.com/grpc/grpc-java.git
gRPC Google Cloud Observability-Konfigurationsdatei erstellen
Sie benötigen eine separate gRPC Google Cloud Observability-Konfigurationsdatei, um die Beobachtbarkeit von Mikrodiensten für Server und Client zu aktivieren. Der Speicherort dieser Datei wird in den nächsten Schritten als GRPC_GCP_OBSERVABILITY_CONFIG_FILE exportiert. Folgen Sie der Anleitung unten, um die verschiedenen Parameter in der Konfigurationsdatei einzurichten.
Beispiel GRPC_GCP_OBSERVABILITY_CONFIG_FILE
{
"project_id": "your-project-here",
"cloud_logging": {
"client_rpc_events": [
{
"methods": ["google.pubsub.v1.Subscriber/Acknowledge", "google.pubsub.v1.Publisher/CreateTopic"],
"exclude": true,
},
{
"methods": ["google.pubsub.v1.Subscriber/*", "google.pubsub.v1.Publisher/*"],
"max_metadata_bytes": 4096,
"max_message_bytes": 4096,
}],
"server_rpc_events": [{
"methods": ["*"],
"max_metadata_bytes": 4096,
"max_message_bytes": 4096
}],
},
"cloud_monitoring": {},
"cloud_trace": {
"sampling_rate": 0.5,
}
"labels": {
"SOURCE_VERSION": "J2e1Cf",
"SERVICE_NAME": "payment-service-1Cf",
"DATA_CENTER": "us-west1-a"
}
}
In den folgenden Abschnitten finden Sie eine Anleitung zum Aktivieren der Datenerfassung in Ihrer Konfiguration für die einzelnen Komponenten. Wenn Sie das gRPC-Beispiel in dieser Anleitung verwendet haben, können Sie diese Konfiguration unverändert verwenden (nachdem your-project-here aktualisiert) oder dies als Vorlage für Ihre Anwendung und ein Beispiel für die Konfigurationsinformationen in einer Umgebungsvariablen verwenden.
Messwerte aktivieren
Fügen Sie zum Aktivieren von Messwerten das Objekt cloud_monitoring zur Konfiguration hinzu und setzen Sie den Wert auf {}.
Weitere Informationen zu Messwerten finden Sie unter Messwertdefinitionen.
Tracing aktivieren
So aktivieren Sie Tracing:
- Fügen Sie das Objekt
cloud_tracezur Konfiguration hinzu. - Legen Sie
cloud_trace.sampling_rateauf0.5fest, um 50% der RPCs nach dem Zufallsprinzip zu verfolgen.
Wenn Sie das Tracing über Dienste hinweg aktivieren möchten, müssen Sie dafür sorgen, dass die Dienste die Weitergabe von Trace-Kontext vom vorgelagerten (oder selbst gestarteten) zum nachgelagerten Dienst unterstützen.
Weitere Informationen zum Tracing finden Sie unter Trace-Definitionen.
Logging aktivieren
So aktivieren Sie das Logging:
- Fügen Sie das Objekt
cloud_loggingzur Konfiguration hinzu. - Fügen Sie ein Muster entweder zu
client_rpc_events, zuserver_rpc_eventsoder zu beiden hinzu, um die Dienste oder Methoden anzugeben, für die Sie ein Ereignis-Logging auf Transportebene generieren möchten und die Anzahl der zu protokollierenden Byte für Header und Nachrichten.
Weitere Informationen zum Logging finden Sie unter Logeinträge.
Anwendungen für das Beobachtbarkeits-Plug-in instrumentieren
Verwenden Sie die folgende Anleitung für Ihre bevorzugte Sprache, um Ihre Anwendungen so zu instrumentieren, dass sie das Mikrodienste-Beobachtbarkeits-Plug-in verwenden können.
C++
Sie können C++ mit der Beobachtbarkeit von Mikrodiensten ab gRPC C++ v1.54 verwenden. Das Beispiel-Repository befindet sich auf GitHub.
Die Unterstützung für die Beobachtbarkeit ist nur über das Bazel-Build-System verfügbar. Fügen Sie das Ziel
grpcpp_gcp_observabilityals Abhängigkeit hinzu.Die Aktivierung der Beobachtbarkeit von Mikrodiensten erfordert eine zusätzliche Abhängigkeit (ein Beobachtbarkeitsmodul) und die folgenden Codeänderungen an vorhandenen gRPC-Clients, -Servern oder beidem:
#include <grpcpp/ext/gcp_observability.h> int main(int argc, char** argv) { auto observability = grpc::GcpObservability::Init(); assert(observability.ok()); … // Observability data flushed when object goes out of scope }Rufen Sie vor allen gRPC-Vorgängen, einschließlich des Erstellens eines Kanals, Servers oder Anmeldedaten, Folgendes auf:
grpc::GcpObservability::Init();Es wird
absl::StatusOr<GcpObservability>zurückgegeben, das gespeichert werden sollte. Der Status hilft bei der Feststellung, ob die Beobachtbarkeit erfolgreich initialisiert wurde. Das zugehörigeGcpObservability-Objekt steuert die Lebensdauer der Beobachtbarkeit und schließt und entfernt Daten zur Beobachtbarkeit automatisch, wenn sie außerhalb des Gültigkeitsbereichs liegen.
Go
- Plug-ins für Beobachtbarkeit von Mikrodiensten werden in gRPC Go-Versionen
v1.54.0und höher unterstützt. Das Beispiel-Repository befindet sich auf GitHub.
Wenn Sie die Beobachtbarkeit von Mikrodiensten aktivieren, sind für das Go-Modul ein Beobachtbarkeitsmodul und der folgende Code erforderlich:
import "google.golang.org/grpc/gcp/observability"
func main() {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
if err := observability.Start(ctx); err != nil {
log.Warning("Unable to start gRPC observability:", err)
}
defer observability.End()
…
}
Der Aufruf observability.Start parst die Konfiguration aus Umgebungsvariablen, erstellt entsprechend Exporter und fügt eine Erfassungslogik in Clientverbindungen und Server ein, die nach dem Aufruf erstellt werden. Der zurückgestellte Aufruf observability.End bereinigt Ressourcen und stellt sicher, dass die Daten im Zwischenspeicher gelöscht werden, bevor die Anwendung geschlossen wird.
Führen Sie nach dem Aktualisieren des Anwendungscodes den folgenden Befehl aus, um die Datei go.mod zu aktualisieren.
go mod tidy
Java
Um die Beobachtbarkeit von Mikrodiensten für Java-Anwendungen zu verwenden, ändern Sie den Build so, dass das Artefakt grpc-gcp-observability enthalten ist. Verwenden Sie die gRPC-Version 1.54.1 oder höher.
In den Build-Snippets in den Abschnitten der Gradle- und Maven-Build-Tools ist grpcVersion auf den Wert 1.54.1 festgelegt.
Das Beispiel-Repository befindet sich auf GitHub.
- Fügen Sie den folgenden Code zu
main()hinzu, um Ihre Java-Anwendungen für die Beobachtbarkeit von Mikrodiensten zu instrumentieren.
...
import io.grpc.gcp.observability.GcpObservability;
...
// Main application class
...
public static void main(String[] args) {
...
// call GcpObservability.grpcInit() to initialize & get observability
GcpObservability observability = GcpObservability.grpcInit();
...
// call close() on the observability instance to shutdown observability
observability.close();
...
}
Sie müssen GcpObservability.grpcInit() aufrufen, bevor gRPC-Kanäle oder -Server erstellt werden. Die Funktion GcpObservability.grpcInit() liest die Konfiguration der Mikrodienst-Beobachtbarkeit und verwendet sie, um die globalen Interceptor und Tracer einzurichten, die für die Logging-, Messwert- und Trace-Funktionalität in jedem erstellten Kanal und Server erforderlich sind. GcpObservability.grpcInit() ist threadsicher und muss genau einmal aufgerufen werden. Die Funktion gibt eine Instanz von GcpObservability zurück, die Sie speichern müssen, um später close() aufrufen zu können.
GcpObservability.close() hebt die Zuweisung von Ressourcen auf. Kanäle, die danach erstellt werden, führen kein Logging durch.
GcpObservability implementiert java.lang.AutoCloseable, das automatisch geschlossen wird, wenn Sie try-with-resources so verwenden:
...
import io.grpc.gcp.observability.GcpObservability;
...
// Main application class
...
public static void main(String[] args) {
...
// call GcpObservability.grpcInit() to initialize & get observability
try (GcpObservability observability = GcpObservability.grpcInit()) {
...
} // observability.close() called implicitly
...
}
Gradle-Build-Tool verwenden
Wenn Sie das Gradle-Build-Tool verwenden, geben Sie Folgendes an:
def grpcVersion = '1.54.1'
...
dependencies {
...
implementation "io.grpc:grpc-gcp-observability:${grpcVersion}"
...
}
Maven-Build-Tool (pom.xml) verwenden
Wenn Sie das Maven-Build-Tool verwenden, geben Sie Folgendes an:
<properties>
...
<grpc.version>1.54.1</grpc.version>
...
</properties>
...
<dependencies>
...
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-gcp-observability</artifactId>
<version>${grpc.version}</version>
</dependency>
...
</dependencies>
Führen Sie Ihre Anwendung aus
Folgen Sie der Anleitung in diesem Abschnitt nur, wenn Sie das gRPC-Beispiel für das Tutorial verwendet haben. Sie können den Befehl run so ändern, dass er auf das Binärprogramm Ihrer Anwendung ausgerichtet ist.
Run Server
C++
- Erstellen Sie eine SSH-Sitzung zur VM.
Umgebungsvariablen exportieren Erstellen Sie
server_config.jsonanhand der oben beschriebenen Schritte.export GOOGLE_CLOUD_PROJECT=$PROJECT_ID export GRPC_GCP_OBSERVABILITY_CONFIG_FILE="$(pwd)/examples/cpp/gcp_observability/helloworld/server_config.json"Serveranwendung ausführen
shell cd grpc tools/bazel run examples/cpp/gcp_observability/helloworld:greeter_server
Go
- Erstellen Sie eine SSH-Sitzung zur VM.
Umgebungsvariablen exportieren Erstellen Sie
server_config.jsonanhand der oben beschriebenen Schritte.export GRPC_GCP_OBSERVABILITY_CONFIG_FILE=./server/serverConfig.jsonServeranwendung ausführen
shell go run ./server/main.go
Java
- Öffnen Sie im Verzeichnis „examples“ die README-Datei und folgen Sie der Anleitung in der Datei.
- Wenn Sie aufgefordert werden, ein weiteres Terminalfenster zu öffnen, führen Sie diesen Befehl aus:
shell gcloud compute ssh --project=$PROJECT_ID grpc-observability-vm
Run Client
C++
- Erstellen Sie eine weitere SSH-Sitzung in der VM.
Umgebungsvariablen exportieren Führen Sie die oben beschriebenen Schritte aus, um die Datei
client_config.jsonzu erstellen.export GOOGLE_CLOUD_PROJECT=$PROJECT_ID export GRPC_GCP_OBSERVABILITY_CONFIG_FILE="$(pwd)/examples/cpp/gcp_observability/helloworld/client_config.json"Clientanwendung ausführen
cd grpc tools/bazel run examples/cpp/gcp_observability/helloworld:greeter_client
Go
- Erstellen Sie eine weitere SSH-Sitzung in der VM.
- Umgebungsvariablen exportieren Folgen Sie der Anleitung oben, um die Datei
client_config.jsonzu erstellen.shell export GRPC_GCP_OBSERVABILITY_CONFIG_FILE=./client/clientConfig.json Clientanwendung ausführen
cd grpc-go/examples/features/observability go run ./client/main.go
Java
- Öffnen Sie im Verzeichnis „examples“ die README-Datei und folgen Sie der Anleitung in der Datei.
- Wenn Sie aufgefordert werden, ein weiteres Terminalfenster zu öffnen, geben Sie diesen Befehl ein:
shell gcloud compute ssh --project=$PROJECT_ID grpc-observability-vm
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID
Einzelne Ressourcen löschen
-
Löschen Sie die Instanz:
gcloud compute instances delete INSTANCE_NAME
Nächste Schritte
- Ausführliche Informationen zu Konfigurationsdaten, Trace-Definitionen, Messwertdefinitionen und Logdefinitionen finden Sie in der Referenz zur Mikrodienste-Beobachtbarkeit.
- Informationen zum Aufrufen von Logs, Traces und Messwerten finden Sie unter Traces, Messwerte und Logeinträge ansehen.