OpenCensus ist ein kostenloses Open-Source-Projekt, dessen Bibliotheken folgende Funktionen bieten:
- Anbieterneutrale Unterstützung für das Erfassen von Messwert- und Trace-Daten in mehreren Sprachen bereitstellen
- Kann die gesammelten Daten mithilfe von Exportern in verschiedene Back-End-Anwendungen, einschließlich Cloud Monitoring, exportieren.
Obwohl Cloud Monitoring eine API bietet, die das Definieren und Erfassen benutzerdefinierter Messwerte unterstützt, handelt es sich dabei um eine proprietäre Low-Level-API. OpenCensus bietet eine API, die dem Stil der Sprachcommunity entspricht, sowie einen Exporter, der Ihre Messwertdaten über die Monitoring API an Cloud Monitoring sendet.
OpenCensus bietet außerdem eine gute Unterstützung für Anwendungs-Tracing. Einen allgemeinen Überblick finden Sie unter OpenCensus Tracing. Cloud Trace empfiehlt OpenCensus für die Trace-Instrumentierung. Um sowohl Messwert- als auch Trace-Daten aus Ihren Diensten zu erfassen, können Sie eine einzige Distribution von Bibliotheken verwenden. Weitere Informationen zum Verwenden von OpenCensus mit Cloud Trace finden Sie unter Clientbibliotheken für Trace.
Hinweise
Um Cloud Monitoring verwenden zu können, muss ein Google Cloud-Projekt mit aktivierter Abrechnungsfunktion vorhanden sein. Gehen Sie bei Bedarf so vor:
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Prüfen Sie, ob die Monitoring API aktiviert ist. Weitere Informationen finden Sie unter Monitoring-API aktivieren.
Bei Anwendungen, die außerhalb von Google Cloud ausgeführt werden, muss sie von Ihrem Google Cloud-Projekt authentifiziert werden. In der Regel konfigurieren Sie die Authentifizierung, indem Sie ein Dienstkonto für Ihr Projekt erstellen und eine Umgebungsvariable konfigurieren.
Erstellen Sie für Anwendungen, die auf einer Amazon Elastic Compute Cloud-Instanz (Amazon EC2) ausgeführt werden, das Dienstkonto für das AWS-Connector-Projekt der Instanz.
Informationen zum Erstellen eines Dienstkontos finden Sie unter Erste Schritte bei der Authentifizierung.
OpenCensus installieren
Damit Sie von OpenCensus in Ihrem Google Cloud-Projekt erfasste Messwerte verwenden können, müssen Sie die OpenCensus-Messwertbibliotheken und den Stackdriver-Exporter für Ihre Anwendung verfügbar machen. Der Stackdriver-Exporter exportiert die von OpenCensus erfassten Messwerte in Ihr Google Cloud-Projekt. Anschließend können Sie diese Messwerte mit Cloud Monitoring grafisch darstellen oder überwachen.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Für die Verwendung von OpenCensus ist Go-Version 1.11 oder höher erforderlich. Die Abhängigkeiten werden automatisch für Sie gehandhabt.Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Für Maven fügen Sie dem Elementdependencies
in der Datei pom.xml
Folgendes hinzu:
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
- Bevor Sie den OpenCensus-Kern und die Exporter-Bibliotheken installieren, müssen Sie Ihre Umgebung auf die Node.js-Entwicklung vorbereitet haben.
- Am einfachsten lässt sich OpenCensus mit npm installieren:
npm install @opencensus/core npm install @opencensus/exporter-stackdriver
- Platzieren Sie die unten aufgeführten
require
-Anweisungen am Anfang des Hauptskripts oder des Einstiegspunkts Ihrer Anwendung vor jedem anderen Code:
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Installieren Sie die OpenCensus Core- und Stackdriver Exporter-Bibliotheken mit dem folgenden Befehl:pip install -r opencensus/requirements.txt
Die Datei requirements.txt
befindet sich für diese Beispiele im GitHub-Repository python-docs-samples.
Benutzerdefinierte Messwerte mit OpenCensus schreiben
Die Instrumentierung Ihres Codes für die Verwendung von OpenCensus für Messwerte umfasst drei Schritte:
- Importieren Sie die Pakete für OpenCensus-Statistiken und OpenCensus-Stackdriver-Exporter.
- Initialisieren Sie den Stackdriver-Exporter.
- Verwenden Sie die OpenCensus API, um Ihren Code zu instrumentieren.
Das folgende Beispiel zeigt ein Minimalprogramm, das Messwertdaten mit OpenCensus schreibt. Das Programm führt eine Schleife aus und erfasst Latenzmesswerte. Wenn die Schleife beendet ist, werden die Statistiken nach Cloud Monitoring exportiert und beendet:
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Das Programm erstellt eine OpenCensus-Ansicht mit dem Namen task_latency_distribution
. Dieser String wird beim Exportieren nach Cloud Monitoring Teil des Messwertnamens. Unter Messwertdeskriptoren abrufen erfahren Sie, wie die OpenCensus-Ansicht als Cloud Monitoring-Messwertdeskriptor implementiert wird.
Sie können daher den Ansichtsnamen als Suchstring verwenden, wenn Sie einen Messwert für ein Diagramm auswählen.
-
Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend leaderboard Metrics Explorer aus:
- Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie
OpenCensus/task_latency_distribution
in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:- Wählen Sie im Menü Aktive Ressourcen die überwachte Ressource aus. Wenn Sie das Programm in einer lokalen Umgebung ausführen, wählen Sie Global aus.
- Wählen Sie im Menü Aktive Messwertkategorien die Option Benutzerdefiniert aus.
- Wählen Sie im Menü Aktive Messwerte die Option Verteilung der Aufgabenlatenz aus.
- Klicken Sie auf Anwenden.
Der folgende Screenshot zeigt die Zeitreihen, die nach dem Ausführen des Programms in einer lokalen Umgebung erfasst wurden:
Jede Säule in der Heatmap repräsentiert einen einzelnen Programmdurchlauf. Die farbigen Komponenten jeder Säule stehen für Buckets in der Latenzverteilung.
OpenCensus-Messwerte in Cloud Monitoring lesen
Sie verwenden benutzerdefinierte Messwerte, einschließlich der von OpenCensus geschriebenen Messwerte wie integrierte Messwerte. Sie können sie in einem Diagramm darstellen, Benachrichtigungen für sie einrichten, sie lesen und anderweitig überwachen.
In diesem Abschnitt wird gezeigt, wie Sie mit dem APIs Explorer Messwertdaten lesen. Informationen zum Lesen von Messwertdaten mithilfe der Cloud Monitoring API oder der Clientbibliotheken finden Sie in den folgenden Dokumenten:
- In Messwert- und Ressourcentypen auflisten wird erläutert, wie Sie die Ressourcen- und Messwerttypen in Ihrem System auflisten und untersuchen.
- In Zeitreihendaten abrufen wird erläutert, wie Sie mit der Monitoring API Zeitreihendaten aus Messwerten abrufen.
Der im vorherigen Abschnitt gezeigte Screenshot stammt beispielsweise aus dem Metrics Explorer. Wenn Sie Diagrammtools verwenden, empfehlen wir, den Namen der OpenCensus-Ansicht zu verwenden, um die Liste der Messwerte zu filtern. Weitere Informationen finden Sie unter Messwerte bei Verwendung von Metrics Explorer auswählen.
Messwertdeskriptoren abrufen
Wenn Sie die Messwertdaten direkt mithilfe der Monitoring API abrufen möchten, müssen Sie die Cloud Monitoring-Namen kennen, in die die OpenCensus-Messwerte exportiert wurden. Sie können diese Namen ermitteln, indem Sie die vom Exporter erstellten Messwertdeskriptoren abrufen und sich dann das Feld type
ansehen. Weitere Informationen zu Messwertdeskriptoren finden Sie unter MetricDescriptor
.
So rufen Sie die Messwertdeskriptoren auf, die für die exportierten Messwerte erstellt wurden:
- Rufen Sie die Referenzseite
metricDescriptors.list
auf. Füllen Sie auf der Referenzseite im Widget API testen die folgenden Felder aus:
Geben Sie den Namen Ihres Projekts in das Feld
name
ein. Verwenden Sie die folgende Namensstrukturprojects/PROJECT_ID
. In diesem Dokument wird ein Projekt mit der IDa-gcp-project
verwendet.Geben Sie einen Filter in das Feld
filter
ein. Es gibt viele Messwertdeskriptoren in einem Projekt. Durch Filtern lassen sich die Schlagwörter entfernen, die nicht von Interesse sind.Da der Name der OpenCensus-Ansicht beispielsweise Teil des Messwertnamens wird, können Sie einen Filter wie diesen hinzufügen:
metric.type=has_substring("task_latency_distribution")
Der Schlüssel
metric.type
ist ein Feld in einem Typ, der in eine Zeitachse eingebettet ist. Weitere Informationen finden Sie unterTimeSeries
.Klicken Sie auf Execute.
Hier sehen Sie den zurückgegebenen Messwertdeskriptor:
{ "metricDescriptors": [ { "name": "projects/a-gcp-project/metricDescriptors/custom.googleapis.com/opencensus/task_latency_distribution", "labels": [ { "key": "opencensus_task", "description": "Opencensus task identifier" } ], "metricKind": "CUMULATIVE", "valueType": "DISTRIBUTION", "unit": "ms", "description": "The distribution of the task latencies", "displayName": "OpenCensus/task_latency_distribution", "type": "custom.googleapis.com/opencensus/task_latency_distribution" } ] }
Diese Zeile im Messwertdeskriptor gibt den Namen des Messwerttyps in Cloud Monitoring an:
"type": "custom.googleapis.com/opencensus/task_latency_distribution"
Sie haben jetzt die Informationen, die Sie benötigen, um die mit dem Messwerttyp verknüpften Daten manuell abzurufen. Der Wert des Felds type
wird auch in der Google Cloud Console angezeigt, wenn Sie den Messwert grafisch darstellen.
Messwertdaten abrufen
So rufen Sie manuell Zeitreihendaten eines Messwerttyps ab:
- Rufen Sie die Referenzseite für
timeSeries.list
auf. Füllen Sie auf der Referenzseite im Widget API testen die folgenden Felder aus:
- Geben Sie den Namen Ihres Projekts in das Feld
name
ein. Verwenden Sie die folgende Namensstrukturprojects/PROJECT_ID
. Geben Sie im Feld
filter
den folgenden Wert ein:metric.type="custom.googleapis.com/opencensus/task_latency_distribution"
Geben Sie Werte in die Felder
interval.startTime
undinterval.endTime
ein. Diese Werte müssen als Zeitstempel eingegeben werden, z. B.2018-10-11T15:48:38-04:00
. Achten Sie darauf, dass der Wert fürstartTime
vor dem Wert fürendTime
liegt.Klicken Sie auf die Schaltfläche Ausführen.
- Geben Sie den Namen Ihres Projekts in das Feld
Hier sehen Sie das Ergebnis eines solchen Abrufs:
{ "timeSeries": [ { "metric": { "labels": { "opencensus_task": "java-3424@docbuild" }, "type": "custom.googleapis.com/opencensus/task_latency_distribution" }, "resource": { "type": "gce_instance", "labels": { "instance_id": "2455918024984027105", "zone": "us-east1-b", "project_id": "a-gcp-project" } }, "metricKind": "CUMULATIVE", "valueType": "DISTRIBUTION", "points": [ { "interval": { "startTime": "2019-04-04T17:49:34.163Z", "endTime": "2019-04-04T17:50:42.917Z" }, "value": { "distributionValue": { "count": "100", "mean": 2610.11, "sumOfSquaredDeviation": 206029821.78999996, "bucketOptions": { "explicitBuckets": { "bounds": [ 0, 100, 200, 400, 1000, 2000, 4000 ] } }, "bucketCounts": [ "0", "0", "1", "6", "13", "15", "44", "21" ] } } } ] }, [ ... data from additional program runs deleted ...] ] }
Folgende Messwerte werden zurückgegeben:
- Informationen zu der überwachten Ressource, aus der die Daten erfasst wurden
OpenCensus erkennt automatisch überwachte
gce_instance
-,k8s_container
- undaws_ec2_instance
-Ressourcen. Diese Daten stammen aus einem Programm, das auf einer Compute Engine-Instanz ausgeführt wurde. Weitere Informationen zur Verwendung anderer überwachter Ressourcen finden Sie unter Set monitored resource for exporter (Überwachte Ressource für Exporter festlegen). - Die Beschreibung der Art des Messwerts und des Typs der Werte.
- Die tatsächlichen Datenpunkte, die innerhalb des angeforderten Zeitintervalls erfasst wurden.
Darstellung von OpenCensus-Messwerten durch Monitoring
Die direkte Verwendung der Cloud Monitoring API für benutzerdefinierte Messwerte wird unterstützt. Ihre Verwendung wird unter Benutzerdefinierte Messwerte mit der API erstellen beschrieben. Der OpenCensus-Exporter für Cloud Monitoring verwendet diese API. Dieser Abschnitt enthält einige Informationen dazu, wie Cloud Monitoring die von OpenCensus geschriebenen Messwerte darstellt
Die von der OpenCensus API verwendeten Konstrukte unterscheiden sich von den Konstrukten, die von Cloud Monitoring verwendet werden, ebenso wie eine gewisse Terminologie. Wenn Cloud Monitoring auf "Messwerte" verweist, bezieht sich OpenCensus teilweise auf "Statistiken". Die Komponente von OpenCensus, die Messwertdaten an Cloud Monitoring sendet, wird beispielsweise als "stats exporter for Stackdriver" ("Exporteur von Statistiken für Stackdriver") bezeichnet.
Eine Übersicht über das OpenCensus-Modell für Messwerte finden Sie unter OpenCensus-Messwerte.
Die Datenmodelle für OpenCensus-Werte und Cloud Monitoring-Messwerte entsprechen einander nicht genau. Viele Konzepte existieren in beiden, aber sie sind nicht direkt austauschbar.
Eine OpenCensus-Ansicht entspricht der
MetricDescriptor
in der Monitoring API. Eine Ansicht beschreibt, wie einzelne Messwerte erfasst und zusammengefasst werden. Tags sind in alle aufgezeichneten Messungen eingeschlossen.Ein OpenCensus-Tag ("tag") ist ein Schlüssel/Wert-Paar. Ein OpenCensus-Tag entspricht im Allgemeinen dem
LabelDescriptor
in der Monitoring API. Mit Tags können Sie Kontextinformationen erfassen, die Sie zum Filtern und Gruppieren von Messwerten verwenden können.Eine OpenCensus-Kennzahl ("measure") beschreibt die aufzuzeichnenden Messwertdaten. Eine OpenCensus-Zusammenfassung ("aggregation") ist eine Funktion, die auf Daten angewendet wird, um sie zu aggregieren. Diese Funktionen werden beim Exportieren verwendet, um
MetricKind
,ValueType
und die Einheit zu ermitteln, die im Messwertdeskriptor von Cloud Monitoring gemeldet werden.Ein OpenCensus-Messwert ("measurement") ist ein erfasster Datenpunkt. Messwerte müssen in Ansichten zusammengefasst werden. Andernfalls werden die einzelnen Messwerte gelöscht. Eine OpenCensus-Messung ist analog zu einer
Point
in der Monitoring API. Wenn Messwerte in Ansichten zusammengefasst werden, werden die aggregierten Daten als Ansichtsdaten gespeichert, analog zu einerTimeSeries
in der Monitoring API.
Nächste Schritte
OpenCensus stellt eine verbindliche Referenzdokumentation für die Messwert-API und den Stackdriver-Exporter zur Verfügung. Die folgende Tabelle enthält Links zu diesen Referenzdokumenten:
Sprache API-Referenzdokumentation Exporter-Dokumentation Kurzanleitung Einfach loslegen (Go) Go API Statistiken- und Trace-Exporter Messwerte Java Java API Statistiken-Exporter Messwerte NodeJS NodeJS API Statistiken-Exporter Messwerte Python Python API Statistiken-Exporter Messwerte