In diesem Dokument wird beschrieben, wie Sie Ihrer Anwendung mithilfe von OpenTelemetry Code zur Beobachtbarkeit hinzufügen. OpenTelemetry bietet Instrumentierungsbibliotheken, die Telemetrie für beliebte Frameworks generieren. Sie können die von der Bibliothek generierte Telemetrie durch benutzerdefinierte Instrumentierung ergänzen, mit der das anwendungsspezifische Verhalten gemessen wird.
Die in diesem Dokument beschriebenen Grundsätze und Konzepte können auf Apps angewendet werden, die in allen von OpenTelemetry unterstützten Sprachen geschrieben wurden. Weitere Informationen zur Instrumentierung finden Sie in den folgenden Dokumenten:
Der Beispielcode, der mit der in Go-Instrumentierungsbeispiel beschriebenen Go-App identisch ist, ist in GitHub verfügbar. Wenn Sie das vollständige Beispiel sehen möchten, klicken Sie auf more_vert Mehr und wählen Sie dann Auf GitHub ansehen aus.
Hinweis
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
Benutzerdefinierte Traces erstellen
Wenn Sie benutzerdefinierte Traces aus Ihrer Anwendung generieren möchten, fügen Sie Instrumentierungscode hinzu, der OpenTelemetry-Spans erstellt. In OpenTelemetry sind Spans die Bausteine für Traces.
So erstellen Sie einen Span:
Ändern Sie Ihre App so, dass ein OpenTelemetry-
Tracerabgerufen wird. In OpenTelemetry ist ein Tracer ein Ersteller von Spans. Sie können einen Tracer, wie im folgenden Code gezeigt, abrufen:Der Tracername, der durch
scopeNamedargestellt wird, identifiziert den Instrumentierungsbereich der generierten Traces.Verwenden Sie die
tracer-Instanz, um Spans zu erstellen. Im folgenden Codebeispiel wird mit der FunktioncomputeSubrequestsbei jedem Aufruf ein Bereich generiert:Im vorherigen Codebeispiel stellt der von der Funktion
computeSubrequestsgenerierte Span die Arbeit dar, die von der gesamten Funktion ausgeführt wird. Das liegt daran, dass im ersten Schritt der Funktion mittracer.Startein neuer Span gestartet wird. Das Keyworddefervorspan.End()sorgt dafür, dass der Span beendet wird, kurz bevor die Funktion beendet wird.
Benutzerdefinierte Messwerte erstellen
Um Messwerte aus Ihrer Anwendung zu generieren, fügen Sie Instrumentierungscode hinzu, der während der Ausführung Ihrer App vorgenommene Messungen aufzeichnet.
So erstellen Sie Messwerte:
Ändern Sie Ihre App so, dass ein OpenTelemetry-
Meterabgerufen wird. In OpenTelemetry bietet ein Messtool Zugriff auf Messinstrumente zum Aufzeichnen von Messwerten. Sie können ein Messtool wie im folgenden Code gezeigt abrufen:Der Name des Messtools, der durch
scopeNamedargestellt wird, gibt den Instrumentierungsbereich der generierten Messwerte an.Verwenden Sie die
meter-Instanz, um Instrumente zu erstellen, mit denen Messwerte erfasst werden können. Im folgenden Code verwenden wir beispielsweisemeter, um ein OpenTelemetry-Histogramm zu erstellen:Mit dem vorherigen Code wird ein Histogramm namens
sleepHistogramgeneriert.Verwenden Sie die
sleepHistogram-Instanz, um die Schlafdauer aufzuzeichnen, die beim Aufrufen der FunktionrandomSleepermittelt wird:Die von diesen Instrumenten aufgezeichneten Messwerte werden entsprechend Ihrer OpenTelemetry-Exporter-Konfiguration aus der Anwendung exportiert.
Nächste Schritte
- Messwerte und Traces mithilfe von Exemplars korrelieren
- OpenTelemetry
- OpenTelemetry-Instrumentierung
- OpenTelemetry-Messwert-Datenmodell