OpenCensus ist ein kostenloses Open-Source-Projekt, Bibliotheken:
- Anbieterneutraler Support für die Erfassung von Messwert- und Trace-Daten in mehreren Sprachen.
- Er kann die gesammelten Daten in verschiedene Backend-Anwendungen exportieren, einschließlich Cloud Monitoring mithilfe von Exportern
Cloud Monitoring bietet zwar eine API, die das Definieren und zum Erfassen benutzerdefinierter Metriken handelt es sich um eine Low-Level-, proprietäre API. OpenCensus bietet eine API, die dem Stil des Sprachcommunity zusammen mit einem Exporteur, der Ihre Messwertdaten an Cloud Monitoring über die Monitoring API für Sie.
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 von Ihren Diensten zu erfassen, können Sie eine einzige Bibliothek 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:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Achten Sie darauf, dass die Monitoring API aktiviert ist. Weitere Informationen finden Sie unter Monitoring-API aktivieren.
Bei Anwendungen, die außerhalb von Google Cloud ausgeführt werden, Das Google Cloud-Projekt muss Ihre Anwendung authentifizieren. Normalerweise konfigurieren Sie die Authentifizierung, indem Sie ein Dienstkonto für Ihr Projekt und durch Konfigurieren einer Umgebung .
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 OpenCensus-Messwertbibliotheken und Stackdriver-Exporter verfügbar machen zu Ihrer Anwendung hinzufügen. Der Stackdriver-Exporter exportiert die Messwerte, OpenCensus erfasst Daten in Ihrem Google Cloud-Projekt. Sie können dann Cloud Monitoring, um diese Messwerte grafisch darzustellen oder zu ü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 in der 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ügen Sie für Maven Folgendes zumdependencies
-Element in der
pom.xml
-Datei:
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-Kern- und Stackdriver-Exporter-Bibliotheken mithilfe der folgenden Befehl:pip install -r opencensus/requirements.txt
Die Datei requirements.txt
befindet sich im GitHub-Repository für diese Beispiele.
python-docs-samples
Benutzerdefinierte Messwerte mit OpenCensus schreiben
Die Instrumentierung Ihres Codes zur Verwendung von OpenCensus für Messwerte umfasst drei Schritte:
- Importieren Sie die OpenCensus-Statistiken und OpenCensus-Stackdriver-Exporter-Pakete.
- Initialisieren Sie den Stackdriver-Exporter.
- Verwenden Sie die OpenCensus API, um Ihren Code zu instrumentieren.
Das folgende Beispiel ist ein Minimalprogramm, das Messwertdaten mithilfe von OpenCensus Das Programm führt eine Schleife aus und erfasst Latenzmesswerte. die Schleife abgeschlossen wird, exportiert sie die Statistiken nach Cloud Monitoring und wird 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
. Diese Zeichenfolge wird Teil des
den Namen der
wenn er nach Cloud Monitoring exportiert wird. 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.
- </ph>
-
Rufen Sie in der Google Cloud Console die Seite leaderboard Metrics Explorer auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- 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 dann Global aus.
- Wählen Sie im Menü Aktive Messwertkategorien die Option Benutzerdefiniert aus.
- Wählen Sie im Menü Aktive Messwerte die Option Latenzverteilung für Aufgaben aus.
- Klicken Sie auf Anwenden.
Der folgende Screenshot zeigt die Zeitreihen, die nach der Ausführung des in einer lokalen Umgebung:
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, z. B. integrierten Metriken. Sie können Diagramme erstellen, Benachrichtigungen dafür einrichten, und sie auch anderweitig überwachen.
In diesem Abschnitt wird die Verwendung des APIs Explorer für folgende Aktionen beschrieben: Messdaten lesen zu können. Informationen zum Lesen von Messwertdaten mithilfe von der Cloud Monitoring API oder mithilfe von Clientbibliotheken folgende Dokumente:
- Unter Messwerte und Ressourcentypen auflisten wird erläutert, wie Listen und Ressourcen aufgelistet und geprüft werden. die Ressourcen- und Messwerttypen in Ihrem System.
- Informationen zum Abrufen von Zeitreihendaten wie Sie Zeitachsendaten mithilfe der Methode Monitoring API
Der Screenshot aus dem vorherigen Abschnitt aus dem Metrics Explorer. Wenn Sie Diagrammtools verwenden, sollten Sie Verwenden Sie den Namen der OpenCensus-Ansicht, um die Liste der Messwerte zu filtern. Weitere Informationen finden Sie unter Messwerte bei Verwendung von Metrics Explorer auswählen
Messwertdeskriptoren abrufen
So rufen Sie die Messwertdaten direkt über die Monitoring API ab:
müssen Sie die Cloud Monitoring-Namen
in die die OpenCensus-Messwerte exportiert wurden. Sie können diese Namen
indem Sie die vom Exporter erstellten Messwertdeskriptoren abrufen und dann
sehen Sie sich das Feld type
an. Weitere Informationen zu Messwertdeskriptoren finden Sie unter MetricDescriptor
.
So rufen Sie die für die exportierten Messwerte erstellten Messwertdeskriptoren auf:
- Rufen Sie die Referenzseite
metricDescriptors.list
auf. Führen Sie im Widget API testen auf der Referenzseite die folgenden Schritte aus: Felder:
Geben Sie den Namen Ihres Projekts in das Feld
name
ein. Verwenden Sie die Methode in der 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 Messwerte, in einem Projekt verwenden. Mit Filtern können Sie diese entfernen, Beschreibungen, die nicht von Interesse sind.Das ist beispielsweise der Fall, weil der Name der OpenCensus-Ansicht Teil eines Messwertnamens verwenden, 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 ein Zeitreihe. Weitere Informationen finden Sie unterTimeSeries
.Klicken Sie auf Ausführen.
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 alle erforderlichen Informationen, um die Daten manuell abzurufen.
die mit dem Messwerttyp verknüpft sind. Der Wert des Feldes type
ist ebenfalls
in der Google Cloud Console angezeigt,
wenn Sie den Messwert grafisch darstellen.
Messwertdaten abrufen
So rufen Sie Zeitreihendaten aus einem Messwerttyp manuell ab:
- Rufen Sie die Referenzseite für
timeSeries.list
auf. Führen Sie im Widget API testen auf der Referenzseite die folgenden Schritte aus: Felder:
- Geben Sie den Namen Ihres Projekts in das Feld
name
ein. Verwenden Sie die Methode in der 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
früher ist als der WertendTime
.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 ...] ] }
Die zurückgegebenen Messwertdaten umfassen Folgendes:
- 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.
So stellt Monitoring OpenCensus-Messwerte dar
Die direkte Verwendung der Cloud Monitoring API für benutzerdefinierte Messwerte wird unterstützt. wird beschrieben in Benutzerdefinierte Messwerte mit der API erstellen Der OpenCensus-Exporter für Cloud Monitoring verwendet diese API. Dieser Abschnitt enthält Informationen dazu, wie Cloud Monitoring stellt die von OpenCensus geschriebenen Messwerte dar.
Die von der OpenCensus API verwendeten Konstrukte unterscheiden sich von den von Cloud Monitoring und einige Begriffe. 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 ("view") entspricht dem
MetricDescriptor
in der Monitoring API. Eine Ansicht beschreibt, wie einzelne Messwerte erfasst und zusammengefasst werden. Tags bei allen aufgezeichneten Messungen berücksichtigt werden.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, mit denen Sie zum Filtern und Gruppieren von Messwerten.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 die
MetricKind
,ValueType
und Einheit der im Messwertdeskriptor von Cloud Monitoring angegeben ist.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 einem
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 Quickstart 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