In diesem Dokument wird beschrieben, wie Sie mit dem Ops-Agenten und dem OTLP-Empfänger (OpenTelemetry Protocol) benutzerdefinierte Messwerte und Traces aus Anwendungen erfassen können, die mit OpenTelemetry instrumentiert und in der Compute Engine ausgeführt werden.
Dieses Dokument ist so gegliedert:
- Übersicht über die Anwendungsfälle für den OTLP-Empfänger.
- Voraussetzungen für die Verwendung des OTLP-Empfängers.
- Agenten für die Verwendung des OTLP-Empfängers konfigurieren.
- Messwerte mit dem Empfänger erfassen. In diesem Abschnitt wird beschrieben, wie Sie Ihre OpenTelemetry-Messwerte in Cloud Monitoring abfragen.
- Traces mit dem Empfänger erfassen. In diesem Abschnitt wird beschrieben, wie Sie ein Dienstkonto zum Schreiben von Daten in Cloud Trace autorisieren.
Übersicht über die Verwendung des OTLP-Empfängers
Mit dem OTLP-Empfänger des Ops-Agenten können Sie Folgendes tun:
- Ihre Anwendung mit einem der sprachspezifischen SDKs für OpenTelemetry instrumentieren. Informationen zu den unterstützten Sprachen finden Sie unter Language APIs & SDKs. Durch die Kombination aus OpenTelemetry SDKs und dem Ops-Agenten wird Folgendes für Sie übernommen:
- OTLP-Messwerte aus Ihrer Anwendung erfassen und zur Analyse an Cloud Monitoring senden
- OTLP-Spans (Trace-Daten) aus Ihrer Anwendung erfassen und zur Analyse an Cloud Trace senden
- Traces von Drittanbieteranwendungen erfassen, die integrierte OTLP-Unterstützung bzw. Plug-ins mit solcher Unterstützung bieten, z. B. Anwendungen wie Nginx. Der OTLP-Empfänger im Ops-Agenten kann diese Traces erfassen. Ein Beispiel finden Sie auf dieser Webseite zum OpenTelemetry-nginx-Modul.
- Benutzerdefinierte OpenTelemetry-Instrumentierung verwenden.
- Automatische OpenTelemetry-Instrumentierung verwenden.
Sie können den Empfänger verwenden, um Messwerte, Traces oder beides zu erfassen. Nachdem der Ops-Agent Ihre Messwerte erfasst hat, können Sie die Features von Cloud Monitoring, einschließlich Diagrammen, Dashboards und Benachrichtigungsrichtlinien, verwenden, um Ihre Messwerte zu überwachen. Wenn Ihre Anwendung auch Trace-Daten sendet, können Sie diese Daten mit Cloud Trace analysieren.
Vorteile
Vor der Verfügbarkeit des OTLP-Plug-ins für den Ops-Agenten wurden Ihre Anwendungen hauptsächlich so zur Erfassung benutzerdefinierter Messwerte und Traces befähigt:
- Mit Clientbibliotheken, die die Monitoring API oder die Trace API implementieren
- Mit älteren OpenCensus-Bibliotheken
Die Verwendung von OpenTelemetry mit dem OTLP-Empfänger bietet mehrere Vorteile gegenüber diesen Methoden, darunter folgende:
- OpenTelemetry ist der Ersatz für OpenCensus. Das OpenCensus-Projekt wird archiviert. Weitere Informationen finden Sie unter What is OpenTelemetry?.
- Die Aufnahme wird auf Agentenebene gesteuert, sodass Sie Ihre Anwendungen nicht noch einmal bereitstellen müssen, wenn sich die Agentenkonfiguration ändert.
- Ihre Anwendungen müssen keine Google Cloud -Anmeldedaten einrichten. Die gesamte Autorisierung erfolgt auf Agentenebene.
- Ihr Anwendungscode enthält keinen Google Cloud-spezifischen Monitoring- oder Tracing-Code. Sie müssen die Monitoring API oder die Trace API nicht direkt verwenden.
- Ihre Anwendung überträgt Daten an den Ops-Agenten und wenn Ihre Anwendung abstürzt, gehen keine vom Ops-Agenten erfassten Daten verloren.
Einschränkungen
Der vom Empfänger des Ops-Agenten bereitgestellte OTLP-Listener unterstützt den gRPC-Transport. HTTP, das hauptsächlich für JavaScript-Clients verwendet wird, wird nicht unterstützt. Weitere Informationen zum OpenTelemetry-Protokoll finden Sie unter OpenTelemetry Protocol Specification.
Der OTLP-Empfänger erfasst keine Logs. Sie können Logs mithilfe des Ops-Agenten und anderer Empfänger erfassen und Loginformationen in OTLP-Spans aufnehmen. Der OTLP-Empfänger unterstützt aber keine direkte Erfassung von Logs. Informationen zum Erfassen von Logs mit dem Ops-Agenten finden Sie unter Logging-Konfigurationen.
Voraussetzungen
Sie müssen Version 2.37.0 oder höher des Ops-Agenten installieren, um OTLP-Messwerte und -Traces mithilfe des OTLP-Empfängers und des Ops-Agenten zu erfassen.
In diesem Dokument wird davon ausgegangen, dass Sie bereits eine OpenTelemetry-basierte Anwendung haben, die mit einem der OpenTelemetry SDKs geschrieben wurde. Die Verwendung von OpenTelemetry SDKs wird in diesem Dokument nicht behandelt. Informationen zu SDKs und zu den unterstützten Sprachen finden Sie unter Language APIs & SDKs.
Ops-Agenten konfigurieren
So konfigurieren Sie den Ops-Agenten für die Verwendung des OTLP-Empfängers:
- Ändern Sie die Nutzerkonfigurationsdatei für den Ops-Agenten so, dass sie den OTLP-Empfänger enthält.
- Starten Sie den Ops-Agenten neu.
In den folgenden Abschnitten werden die einzelnen Schritte beschrieben.
Nutzerkonfigurationsdatei für den Ops-Agenten ändern
Fügen Sie der Nutzerkonfigurationsdatei für den Ops-Agenten die Konfigurationselemente für den OTLP-Empfänger hinzu:
- Für Linux:
/etc/google-cloud-ops-agent/config.yaml - Für Windows:
C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml
Allgemeine Informationen zum Konfigurieren des Agenten finden Sie unter Konfigurationsmodell.
Der OTLP-Empfänger führt den Konfigurationsabschnitt combined für den Ops-Agenten ein. Bei Verwendung des Empfängers müssen Sie Dienste für Messwerte und Traces konfigurieren, auch wenn Sie beides nicht verwenden.
In den folgenden Abschnitten werden die Konfigurationsschritte für den OTLP-Empfänger beschrieben.
Empfängerabschnitt combined hinzufügen
Sie platzieren den Empfänger für OTLP-Messwerte und -Traces im Abschnitt combined. Im Abschnitt combined sind keine Prozessoren oder Dienste zulässig.
Sie dürfen keinen anderen Empfänger mit demselben Namen wie dem des Empfängers im Abschnitt combined konfigurieren. Im folgenden Beispiel wird otlp als Name des Empfängers verwendet.
Die minimale combined-Konfiguration für OTLP sieht so aus:
combined:
receivers:
otlp:
type: otlp
Der otlp-Empfänger hat die folgenden Konfigurationsoptionen:
type: erforderlich. Mussotlplauten.grpc_endpoint: optional. Der gRPC-Endpunkt, den der OTLP-Empfänger überwacht. Die Standardeinstellung ist0.0.0.0:4317.metrics_mode: optional. Die Standardeinstellung istgooglemanagedprometheus, was bedeutet, dass der Empfänger OTLP-Messwerte als Prometheus-formatierte Messwerte sendet. Dazu wird die Prometheus API verwendet, die auch von Managed Service for Prometheus verwendet wird.Wenn Sie die Messwerte stattdessen mit der Monitoring API als benutzerdefinierte Cloud Monitoring-Messwerte senden möchten, setzen Sie die Option
metrics_modeauf den Wertgooglecloudmonitoring.Diese Auswahl wirkt sich darauf aus, wie Ihre Messwerte aufgenommen und für die Abrechnung gemessen werden. Weitere Informationen zu Messwertformaten finden Sie unter Aufnahmeformate für OTLP-Messwerte.
OTLP-Pipelines zu den Diensten hinzufügen
Der OTLP-Empfänger kann Messwerte und Traces erfassen. Daher müssen Sie einen Dienst für Messwerte und für Traces definieren. Wenn Sie keine Messwerte oder Traces erfassen, können Sie leere Dienste erstellen. Wenn Sie bereits Dienste mit anderen Pipelines haben, können Sie ihnen die OTLP-Pipeline hinzufügen.
Im Folgenden werden die Dienste metrics und traces mit dem OTLP-Empfänger in den Pipelines dargestellt:
combined:
receivers:
otlp:
type: otlp
metrics:
service:
pipelines:
otlp:
receivers: [otlp]
traces:
service:
pipelines:
otlp:
receivers: [otlp]
Wenn Sie weder den Dienst metrics noch den Dienst traces für die OTLP-Erfassung verwenden möchten, lassen Sie den OTLP-Empfänger in der Pipeline für den Dienst weg.
Der Dienst muss vorhanden sein, auch wenn er keine Pipelines hat. Wenn Ihre Anwendung Daten eines bestimmten Typs sendet und es keine entsprechende Pipeline mit dem Empfänger gibt, verwirft der Ops-Agent die Daten.
Ops-Agenten neu starten
Sie müssen den Ops-Agenten neu starten, um Konfigurationsänderungen anzuwenden.
Linux
- Führen Sie den folgenden Befehl auf der Instanz aus, um den Agenten neu zu starten:
sudo systemctl restart google-cloud-ops-agent
- Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Agent neu gestartet wurde. Prüfen Sie dann, ob die Komponenten „Metrics-Agent“ und „Logging-Agent“ gestartet wurden:
sudo systemctl status "google-cloud-ops-agent*"
Windows
- Stellen Sie mithilfe von RDP oder einem ähnlichen Tool eine Verbindung zu Ihrer Instanz her und melden Sie sich in Windows an.
- Öffnen Sie ein PowerShell-Terminal mit Administratorberechtigungen. Klicken Sie dazu mit der rechten Maustaste auf das PowerShell-Symbol und wählen Sie Als Administrator ausführen aus.
- Führen Sie den folgenden PowerShell-Befehl aus, um den Agenten neu zu starten:
Restart-Service google-cloud-ops-agent -Force
- Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Agent neu gestartet wurde. Prüfen Sie dann, ob die Komponenten „Metrics-Agent“ und „Logging-Agent“ gestartet wurden:
Get-Service google-cloud-ops-agent*
OTLP-Messwerte erfassen
Wenn Sie den OTLP-Empfänger zum Erfassen von Messwerten aus Ihren OpenTelemetry-Anwendungen verwenden, ist die primäre Konfigurationsmethode für den Empfänger die API, die Sie zur Aufnahme der Messwerte verwenden möchten.
Sie wählen diese Methode, indem Sie die Option metrics_mode in der Konfiguration des otlp-Empfängers ändern oder den Standardwert verwenden.
Die Auswahl hat Einfluss darauf, wie Ihre OTLP-Messwerte in Cloud Monitoring aufgenommen werden und wie diese Daten für Abrechnungszwecke gemessen werden.
Die Wahl von metrics_mode hat keine Auswirkungen auf Ihre Möglichkeit, Diagramme, Dashboards und Benachrichtigungsrichtlinien in Monitoring zu erstellen.
- Informationen zum Erstellen von Diagrammen und Dashboards finden Sie unter Dashboards – Übersicht.
- Weitere Informationen zu Benachrichtigungsrichtlinien finden Sie unter Benachrichtigungs-Übersicht.
In den folgenden Abschnitten werden Unterschiede zwischen Formaten beschrieben, die von den Messwertmodi verwendet werden. Außerdem wird erläutert, wie Sie die aufgenommenen Daten zur Verwendung in Monitoring abfragen.
Aufnahmeformate für OTLP-Messwerte
Der OTLP-Empfänger bietet die Option metrics_mode, mit der die API zum Aufnehmen Ihrer Messwertdaten angegeben wird. Standardmäßig verwendet der Empfänger die Prometheus API. Der Standardwert für die Option metrics_mode ist googlemanagedprometheus. Die Messwerte werden mit derselben API aufgenommen, die auch von Managed Service for Prometheus verwendet wird.
Sie können den Empfänger so konfigurieren, dass Ihre Messwertdaten stattdessen an die Cloud Monitoring API gesendet werden. Legen Sie zum Senden von Daten an die Monitoring API den Wert der Option metrics_mode auf googlecloudmonitoring fest, wie im folgenden Beispiel gezeigt:
combined:
receivers:
otlp:
type: otlp
metrics_mode: googlecloudmonitoring
Das von Ihnen verwendete Aufnahmeformat bestimmt, wie die OTLP-Messwerte in Cloud Monitoring zugeordnet werden. Sie können in Monitoring Diagramme, Dashboards und Benachrichtigungsrichtlinien für Messwerte beider Messwertformate erstellen. Sie verweisen jedoch in Abfragen anders auf Messwerte.
Das Aufnahmeformat bestimmt auch das Preismodell, das für die Datenaufnahme verwendet wird.
In den folgenden Abschnitten werden die Preise, die strukturellen Unterschiede zwischen einem von der Prometheus API aufgenommenen Messwert und demselben von der Monitoring API aufgenommenen Messwert sowie das Verweisen auf die Messwerte in Abfragen beschrieben.
Preise und Kontingente
Das von Ihnen verwendete Aufnahmeformat bestimmt, wie die OTLP-Messwerte abgerechnet werden:
Prometheus API: Wenn Sie die Prometheus API verwenden, um die Messwerte Ihrer Anwendung aufzunehmen, werden die Daten auf Basis der probenbasierten Preise abgerechnet, als ob die Messwerte über Managed Service for Prometheus eingegangen wären:
Monitoring API: Wenn Sie die Monitoring API verwenden, um die Messwerte Ihrer Anwendung aufzunehmen, unterliegen die Daten den volumenbasierten Preisen, wie Daten aus anderen Integrationen in den Ops-Agenten.
Messwerte, die mit dem OTLP-Empfänger aufgenommen wurden, werden bei der Aufnahme in Cloud Monitoring als „benutzerdefinierte“ Messwerte betrachtet und unterliegen den Kontingenten und Limits für benutzerdefinierte Messwerte.
Die aktuellen Preise finden Sie unter Google Cloud Observability – Preise.
Messwertstruktur
In Cloud Monitoring wird das Format der Messwertdaten mithilfe eines Schemas beschrieben, das als Messwertdeskriptor bezeichnet wird. Der Messwertdeskriptor enthält den Namen des Messwerts, den Datentyp der Messwerte, den Zusammenhang zwischen den einzelnen Werten und früheren Werten sowie die mit den Werten verknüpften Labels. Wenn Sie den OTLP-Empfänger für die Aufnahme von Messwerten mithilfe der Prometheus API konfigurieren, unterscheidet sich der erstellte Messwertdeskriptor von dem bei der Verwendung der Monitoring API erstellten Messwertdeskriptor.
Prometheus API: Wenn Sie die Prometheus API verwenden, um die Messwerte Ihrer Anwendung aufzunehmen, wird jeder Messwert mithilfe der standardmäßigen OpenTelemetry-zu-Prometheus-Transformation umgewandelt und einem überwachten Ressourcentyp von Cloud Monitoring zugeordnet.
- Die Transformation umfasst die folgenden Änderungen:
- Dem Namen des OTLP-Messwerts wird der String
prometheus.googleapis.com/vorangestellt. - Alle nicht alphanumerischen Zeichen im OTLP-Messwertnamen, z. B. Punkte (
.), werden durch Unterstriche (_) ersetzt. - An den Namen des OTLP-Messwerts wird ein String angehängt, der die Messwertart angibt, z. B.
/gaugeoder/counter.
- Dem Namen des OTLP-Messwerts wird der String
- Die folgenden Labels, die mit Werten aus der OTLP-Ressource gefüllt sind, werden dem Messwert hinzugefügt:
instance_name: der Wert des Ressourcenattributshost.name.machine_type: der Wert des Ressourcenattributshost.type.
Die mit den Messwertmessungen erfasste überwachte Ressource ist der generische Typ
prometheus_target. Die generierte Prometheus-Zeitreihe enthält die folgenden Labels aus derprometheus_target-Ressource, die mit Werten aus der OTLP-Ressource gefüllt sind:location: der Wert des Ressourcenattributscloud.availability_zonenamespace: der Wert des Ressourcenattributshost.id
Der Ressourcentyp
prometheus_targetenthält auch diese Labels:project_id: die Kennung des Google Cloud -Projekts, z. B.my-project, in dem der Ops-Agent ausgeführt wirdcluster: hat immer den Wert__gce__, wenn Messwerte vom Ops-Agenten erfasst werden
Wenn in den eingehenden OTLP-Daten die Ressourcenattribute fehlen, die für Labelwerte verwendet werden, werden die Werte aus den Informationen zu der VM übernommen, die den Ops-Agenten ausführt. Dieses Verhalten bedeutet, dass OTLP-Daten ohne diese Ressourcenattribute mit denselben Labels angezeigt werden wie die Daten, die vom Prometheus-Empfänger des Ops-Agenten erfasst werden.
Monitoring API: Wenn Sie die Monitoring API verwenden, um die Messwerte Ihrer Anwendung aufzunehmen, wird jeder Messwert so verarbeitet:
- Dem Namen des OTLP-Messwerts wird der String
workload.googleapis.com/vorangestellt, es sei denn, der OTLP-Messwertname enthält bereits diesen String oder eine andere gültige Messwertdomain wiecustom.googleapis.com. Wir empfehlen die Verwendung der Domain „workload“. - Die mit den Messwertmessungen erfasste überwachte Ressource ist der Compute Engine-VM-Typ
gce_instance.
Die folgenden Beispiele zeigen die Messwertdeskriptoren für ein Paar von OpenTelemetry-Messwerten. Die Messwerte werden von einer Anwendung erstellt, die die Go-OpenTelemetry-Messwertbibliothek verwendet.
Auf dem Tab Prometheus API wird der Messwertdeskriptor angezeigt, der erstellt wird, wenn der OTLP-Empfänger den standardmäßigen Prometheus-Messwertmodus verwendet. Auf dem Tab Monitoring API ist der Messwertdeskriptor zu sehen, der erstellt wird, wenn der OTLP-Empfänger den Messwertmodus googlecloudmonitoring verwendet.
In der Anwendung, die den Messwert erstellt, ändert sich nichts. Die einzige Änderung betrifft den vom OTLP-Empfänger verwendeten Messwertmodus.
Die Anwendung erstellt den OTLP-Gauge-Messwert otlp.test.gauge, mit dem 64-Bit-Gleitkommawerte aufgezeichnet werden.
Auf den folgenden Tabs ist der Messwertdeskriptor zu sehen, der von der jeweiligen Aufnahme-API erstellt wird:
Prometheus API
{
"name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_gauge/gauge",
"labels": [
{
"key": "instance_name"
},
{
"key": "machine_type"
}
],
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"type": "prometheus.googleapis.com/otlp_test_gauge/gauge",
"monitoredResourceTypes": [
"prometheus_target"
]
}
Monitoring API
{
"name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.gauge",
"labels": [
{
"key": "instrumentation_source"
}
],
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"type": "workload.googleapis.com/otlp.test.gauge",
"monitoredResourceTypes": [
"gce_instance",
...many other types deleted...
]
}
Die Anwendung erstellt einen OTLP-Zählermesswert otlp.test.cumulative, mit dem steigende 64-Bit-Gleitkommawerte aufgezeichnet werden.
Auf den folgenden Tabs ist der Messwertdeskriptor zu sehen, der von der jeweiligen Aufnahme-API erstellt wird:
Prometheus API
{
"name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_cumulative/counter",
"labels": [
{
"key": "instance_name"
},
{
"key": "machine_type"
}
],
"metricKind": "CUMULATIVE",
"valueType": "DOUBLE",
"type": "prometheus.googleapis.com/otlp_test_cumulative/counter",
"monitoredResourceTypes": [
"prometheus_target"
]
}
Monitoring API
{
"name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.cumulative",
"labels": [
{
"key": "instrumentation_source"
}
],
"metricKind": "CUMULATIVE",
"valueType": "DOUBLE",
"type": "workload.googleapis.com/otlp.test.cumulative",
"monitoredResourceTypes": [
"gce_instance",
...many other types deleted...
]
}
In der folgenden Tabelle werden einige der Formatunterschiede beschrieben, die durch die für die Aufnahme von OTLP-Messwerten verwendeten APIs entstehen:
| Prometheus API | Monitoring API | |
|---|---|---|
| Messwertdomain | prometheus.googleapis.com |
workload.googleapis.com |
| OTLP-Messwertname | Bei der Aufnahme geändert | Wie angegeben verwendet |
| Überwachte Ressource |
prometheus_target |
gce_instance |
Aufnahmeformate und Abfragen
Der im OTLP-Empfänger verwendete Messwertmodus wirkt sich darauf aus, wie Sie die resultierenden Messwerte in Cloud Monitoring abfragen, wenn Sie Diagramme, Dashboards und Benachrichtigungsrichtlinien erstellen.
Wenn Sie ein Diagramm, ein Dashboard oder eine Benachrichtigungsrichtlinie in Cloud Monitoring konfigurieren, enthält die Konfiguration eine Abfrage der Daten, die für das Diagramm, das Dashboard oder die Benachrichtigungsrichtlinie verwendet werden.
Cloud Monitoring unterstützt die folgenden Tools zum Abfragen von Messwertdaten:
- Eine auf dem Query Builder basierende Oberfläche, die in Tools wie den Metrics Explorer, die Dashboard-Builder-Oberfläche und die Benachrichtigungsrichtlinien-Konfigurationsoberfläche integriert ist
- Prometheus Query Language (PromQL): die textbasierte Abfragesprache, die von Open-Source-Prometheus verwendet wird
Informationen zum Abfragen von OTLP-Messwerten mit diesen Tools finden Sie hier:
- Mit der Prometheus API aufgenommene OTLP-Messwerte abfragen
- Mit der Monitoring API aufgenommene OTLP-Messwerte abfragen
Mit der Prometheus API aufgenommene OTLP-Messwerte abfragen
In diesem Abschnitt wird gezeigt, wie Sie mit der Prometheus API aufgenommene OTLP-Messwerte abfragen. Dies ist der Standardmesswertmodus für den OTLP-Empfänger.
Die Abfragen basieren auf den OTLP-Messwerten, die unter Messwertstruktur beschrieben werden:
otlp.test.gauge: ein OTLP-Gauge-Messwert, mit dem 64-Bit-Gleitkommawerte aufgezeichnet werdenotlp.test.cumlative: ein OTLP-Zählermesswert, mit dem steigende 64-Bit-Gleitkommawerte aufgezeichnet werden
Diese Messwerte werden mit den folgenden Messwerttypen, die als Namen fungieren, in Cloud Monitoring aufgenommen:
prometheus.googleapis.com/otlp_test_gauge/gaugeprometheus.googleapis.com/otlp_test_cumulative/counter
Mithilfe der Prometheus API aufgenommene Messwerte werden dem überwachten Ressourcentyp prometheus_target zugeordnet.
Die Tabs zeigen, wie grundlegende Abfragen beim Abfragen der Messwerte mithilfe der Google Cloud Console aussehen. In diesen Beispielen wird der Metrics Explorer verwendet. Die Prinzipien bei Dashboards und Benachrichtigungsrichtlinien sind jedoch identisch.
Query Builder-Oberfläche
Wenn Sie Messwertdaten mit einer Query Builder-Oberfläche abfragen möchten, geben Sie den Messwerttyp und den Typ der überwachten Ressource in die für die Suche geeigneten Felder ein. Es gibt weitaus weniger Ressourcentypen als Messwerttypen. Daher ist es in der Regel am effizientesten, nach dem Ressourcentyp zu suchen und dann das Menü der zugehörigen Messwerte zu verwenden, um den Messwerttyp zu finden.
Wenn Sie in das Suchfeld „prometheus“ eingeben, enthalten die Ergebnisse die überwachte Ressource prometheus_target, die mit dem Anzeigenamen „Prometheus-Ziel“ angegeben wird, sowie den Satz der Messwerte, die in die Ressource schreiben. Die Messwerte sind nach dem Namen kategorisiert. Die beiden Beispielmesswerte werden als Kategorie Otlp angezeigt.
Sie können Prometheus/otlp_test_cumulative/counter oder Prometheus/otlp_test_gauge/gauge auswählen.
Weitere Informationen zur Verwendung des Query Builders finden Sie unter Abfragen mit Menüs erstellen.
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts prometheus.googleapis.com/otlp_test_gauge/gauge zu sehen:
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts prometheus.googleapis.com/otlp_test_cumulative/counter zu sehen:
PromQL
Wenn Sie PromQL zum Abfragen von Messwertdaten verwenden, die mit der Prometheus API aufgenommen wurden, müssen Sie nur die geänderte Form des ursprünglichen OTLP-Messwertnamens angeben. Sie müssen nicht den String mit dem Präfix prometheus.googleapis.com/ oder den Typ mit Postfix angeben.
Wenn der Messwert nur einem einzigen überwachten Ressourcentyp zugeordnet werden kann, müssen Sie die Ressource nicht angeben. Wie unter Messwertstruktur beschrieben, werden OTLP-Messwerte, die mit der Prometheus API aufgenommen wurden, nur dem überwachten Ressourcentyp prometheus_target zugeordnet.
Triviale PromQL-Abfragen für die Beispielmesswerte sehen so aus:
otlp_test_gaugeotlp_test_cumulative
Weitere Informationen zur Verwendung von PromQL in Cloud Monitoring zum Abfragen von Messwerten, die über die Prometheus API aufgenommen wurden, finden Sie unter Google Cloud Managed Service for Prometheus-Daten in Cloud Monitoring. Informationen zur PromQL-Sprache finden Sie unter Querying basics.
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts prometheus.googleapis.com/otlp_test_gauge/gauge zu sehen:
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts prometheus.googleapis.com/otlp_test_cumulative/counter zu sehen:
Mit der Monitoring API aufgenommene OTLP-Messwerte abfragen
In diesem Abschnitt wird gezeigt, wie Sie OTLP-Messwerte mithilfe der Monitoring API abfragen. Zum Auswählen der Cloud Monitoring API legen Sie für das Feld metrics_mode des OTLP-Empfängers den Wert googlecloudmonitoring fest.
Die Abfragen basieren auf den OTLP-Messwerten, die unter Messwertstruktur beschrieben werden:
otlp.test.gauge: ein OTLP-Gauge-Messwert, mit dem 64-Bit-Gleitkommawerte aufgezeichnet werdenotlp.test.cumlative: ein OTLP-Zählermesswert, mit dem steigende 64-Bit-Gleitkommawerte aufgezeichnet werden
Diese Messwerte werden mit den folgenden Messwerttypen, die als Namen fungieren, in Cloud Monitoring aufgenommen:
workload.googleapis.com/otlp.test.gaugeworkload.googleapis.com/otlp.test.cumulative
Mit der Monitoring API aufgenommene Messwerte werden dem überwachten Ressourcentyp gce_instance zugeordnet.
Auf den Tabs ist zu sehen, wie grundlegende Abfragen von Messwerten mithilfe der Google Cloud Console aussehen. In diesen Beispielen wird der Metrics Explorer verwendet. Die Prinzipien bei Dashboards und Benachrichtigungsrichtlinien sind jedoch identisch.
Query Builder-Oberfläche
Wenn Sie Messwertdaten mit einer Query Builder-Oberfläche abfragen möchten, geben Sie den Messwerttyp und den Typ der überwachten Ressource in die für die Suche geeigneten Felder ein. Es gibt weitaus weniger Ressourcentypen als Messwerttypen. Daher ist es in der Regel am effizientesten, nach dem Ressourcentyp zu suchen und dann das Menü der zugehörigen Messwerte zu verwenden, um den Messwerttyp zu finden.Wenn Sie „gce_instance“ in das Suchfeld eingeben, werden in den Ergebnissen der Ressourcentyp mit seinem Anzeigenamen „VM-Instanz“ sowie der Satz der Messwerte angezeigt, die in die Ressource schreiben. Die Messwerte sind nach dem Namen kategorisiert. Die beiden Beispielmesswerte werden als Kategorie Otlp angezeigt. Sie können Workload/otlp_test_cumulative oder Workload/otlp_test_gauge auswählen.
Weitere Informationen zur Verwendung des Query Builders finden Sie unter Abfragen mit Menüs erstellen.
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts workload.googleapis.com/otlp.test.gauge zu sehen:
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts workload.googleapis.com/otlp.test.cumulative zu sehen:
PromQL
Wenn Sie PromQL zum Abfragen von Messwertdaten verwenden, die mithilfe der Monitoring API aufgenommen wurden, müssen Sie den Messwertnamen den PromQL-Konventionen zuordnen. Bei den grundlegenden Zuordnungsregeln gilt Folgendes:
- Ersetzen Sie den ersten Schrägstrich
/durch:. - Ersetzen Sie alle anderen Sonderzeichen (einschließlich
.und anderer/-Zeichen) durch_.
Weitere Informationen zu den Zuordnungsregeln finden Sie unter PromQL für Cloud Monitoring.
Die Monitoring-Messwerttypen für die Beispielmesswerte werden folgendermaßen PromQL zugeordnet:
workload_googleapis_com:otlp_test_gaugeworkload_googleapis_com:otlp_test_cumulative
Wenn der Messwert nur einem einzigen überwachten Ressourcentyp zugeordnet werden kann, müssen Sie die Ressource nicht angeben. Die Beispielmesswerte werden dem überwachten Ressourcentyp gce_instance zugeordnet. Wie aber in Messwertstruktur beschrieben, ist gce_instance nur einer der möglichen Messwerttypen. Daher müssen die PromQL-Abfragen für diese Messwerte einen Filter für den Ressourcentyp gce_instance enthalten. Wenn Sie den Filter einschließen möchten, fügen Sie den folgenden String am Ende der zugeordneten Messwertnamen hinzu: {monitored_resource="gce_instance"}.
Weitere Informationen zur Verwendung von PromQL in Cloud Monitoring finden Sie unter PromQL für Cloud Monitoring. Informationen zur PromQL-Sprache finden Sie unter Querying basics.
Triviale PromQL-Abfragen für die Beispielmesswerte sehen so aus:
workload_googleapis_com:otlp_test_gauge{monitored_resource="gce_instance"}workload_googleapis_com:otlp_test_cumulative{monitored_resource="gce_instance"}
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts workload.googleapis.com/otlp.test.gauge zu sehen:
Im folgenden Screenshot ist das Ergebnis der Abfrage des Messwerts workload.googleapis.com/otlp.test.cumulative zu sehen:
Messwertnutzung und -diagnose in Cloud Monitoring ansehen
Auf der Cloud Monitoring-Seite Messwertverwaltung können Sie den Betrag steuern, den Sie für abrechenbare Messwerte ausgeben, ohne die Beobachtbarkeit zu beeinträchtigen. Die Seite Messwertverwaltung enthält die folgenden Informationen:
- Aufnahmevolumen für byte- und probenbasierte Abrechnung für Messwertdomains und einzelne Messwerte
- Daten zu Labels und zur Kardinalität von Messwerten
- Anzahl der Lesevorgänge für jeden Messwert
- Nutzung von Messwerten in Benachrichtigungsrichtlinien und benutzerdefinierten Dashboards
- Fehlerrate beim Schreiben von Messwerten
Auf der Seite Messwertverwaltung können Sie auch nicht benötigte Messwerte ausschließen, um unnötige Kosten bei der Datenaufnahme zu vermeiden.
So rufen Sie die Seite Messwertverwaltung auf:
-
Rufen Sie in der Google Cloud Console die Seite Messwertverwaltung auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Wählen Sie in der Symbolleiste das Zeitfenster aus. Standardmäßig werden auf der Seite Messwertverwaltung Informationen zu den Messwerten angezeigt, die am Vortag erfasst wurden.
Weitere Informationen zur Seite Messwertverwaltung finden Sie unter Messwertnutzung ansehen und verwalten.
OTLP-Traces erfassen
Wenn Sie den Ops-Agenten so konfiguriert haben, dass Traces erfasst werden, Sie aber beim Ausführen Ihrer Anwendung keine Traces in Cloud Trace erhalten, müssen Sie dem Compute Engine-Dienstkonto, das der Agent verwendet, möglicherweise eine zusätzliche Rolle zuweisen. Standardmäßig erhält das Dienstkonto die Rollen, die das Schreiben von Messwerten und Logs, aber nicht von Traces erlauben.
In den folgenden Abschnitten wird beschrieben, wie Sie dem Dienstkonto die erforderliche Cloud Trace-Autorisierung erteilen.
Rollen ermitteln, die dem Dienstkonto zugewiesen wurden
Führen Sie den folgenden gcloud projects get-iam-policy-Befehl aus, um die einem Dienstkonto zugewiesenen Rollen anzeigen zu lassen:
gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Die Ausgabe sieht in etwa so aus:
ROLE roles/logging.logWriter roles/monitoring.metricWriter
Wenn die Ausgabe entweder roles/cloudtrace.agent oder roles/cloudtrace.admin enthält, hat das Dienstkonto ausreichende Berechtigungen zum Schreiben von Traces. Informationen zum Zuweisen einer dieser Rollen zum Dienstkonto finden Sie im folgenden Abschnitt.
Cloud Trace-Rolle dem Dienstkonto zuweisen
Für ein Dienstkonto ist normalerweise die Rolle „Cloud Trace-Agent“, roles/cloudtrace.agent, geeignet. Führen Sie den folgenden gcloud projects
add-iam-policy-binding-Befehl aus, um diese Rolle dem Dienstkonto zuzuweisen:
gcloud projects add-iam-policy-binding PROJECT_ID --member "serviceAccount:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudtrace.agent"
Sie können dann den Befehl gcloud projects get-iam-policy ausführen, um zu prüfen, ob die Änderung vorgenommen wurde:
gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Die Ausgabe enthält jetzt roles/cloudtrace.agent:
ROLE roles/cloudtrace.agent roles/logging.logWriter roles/monitoring.metricWriter
Weitere Informationen zum Verwalten von IAM-Rollen finden Sie unter Zugriff auf Projekt, Ordner und Organisationen verwalten.
Wenn Sie das vom Ops-Agenten verwendete Dienstkonto autorisiert haben, Daten in Cloud Trace zu schreiben, und Sie Ihre OpenTelemetry-Anwendung ausführen, werden die Traces in Cloud Trace angezeigt:
OTLP-Empfänger deaktivieren
Wenn Sie sowohl die OTLP-Messwerte als auch die Traces mithilfe des Ops-Agenten erfassen und die Erfassung entweder von Messwerten oder von Traces deaktivieren möchten, aber nicht von beidem, gehen Sie so vor:
Deaktivieren Sie die Erfassung entweder von Messwerten oder von Traces, indem Sie eine der folgenden Änderungen an der Nutzerkonfigurationsdatei
config.yamlvornehmen:- Entfernen Sie die
otlp-Pipeline aus dem Dienstmetrics. - Entfernen Sie die
otlp-Pipeline aus dem Diensttraces.
- Entfernen Sie die
So deaktivieren Sie die Erfassung von OTLP-Messwerten und -Traces durch den Ops-Agenten:
Entfernen Sie die OTLP-Konfiguration aus der Nutzerkonfigurationsdatei:
- Löschen Sie den gesamten Abschnitt
combined, einschließlich desotlp-Empfängers. - Entfernen Sie die
otlp-Pipeline aus dem Dienstmetrics. - Löschen Sie den gesamten Dienst
traces.
- Löschen Sie den gesamten Abschnitt
Weitere Informationen
Nachdem die Anwendungsmesswerte und -Traces aufgenommen wurden, können Sie Ihre Daten mit der Google Cloud Console überwachen und analysieren.
- Informationen zu Dashboards und zu den verschiedenen Diagrammtypen, die Sie erstellen können, finden Sie unter Dashboards – Übersicht.
- Informationen zu den Benachrichtigungsrichtlinien finden Sie unter Benachrichtigungs-Übersicht.
- Informationen zum Analysieren von Trace-Daten finden Sie unter Traces finden und ansehen.