OpenTelemetry ist ein von Google Cloudunterstütztes Open-Source-Projekt mit Google Cloud-Entwicklern, die für die Unterstützung bei der Aufnahme und Visualisierung Ihrer Telemetriedaten sorgen.
Trace-Daten und die Telemetry API
In diesem Abschnitt finden Sie Informationen zur Telemetry API und zu Traces.
Gründe für die Verwendung der Telemetry API
Wenn Sie die Telemetry API verwenden, werden Ihre Daten in einem Format gespeichert, das im Allgemeinen mit den von OpenTelemetry OTLP Protocol definierten Proto-Dateien übereinstimmt. Felder werden jedoch möglicherweise vor dem Speichern von einem OpenTelemetry-spezifischen Datentyp in einen JSON-Datentyp konvertiert. Außerdem gelten die Limits für die Telemetry API. Diese Limits sind oft großzügiger als die für die Cloud Trace API. Schließlich basiert Ihre Instrumentierung nicht auf einem Google Cloud-spezifischen Exporttool.
Weitere Informationen zum Speicherformat finden Sie unter Schema für Tracedaten.
Wann sollte die Telemetry API verwendet werden?
Wir empfehlen, Ihre Trace-Daten mithilfe der Telemetry API an Ihr Google Cloud -Projekt zu senden. Diese API ist mit dem Open-Source-Ökosystem von OpenTelemetry kompatibel und ihre Limits sind oft großzügiger als die der Cloud Trace API, die eine proprietäreGoogle Cloud API ist. Einige Funktionen wie Application Monitoring basieren auf Informationen, die nur verfügbar sind, wenn Tracedaten an die Telemetry API gesendet werden.
Wenn Sie Ihre Anwendungen so instrumentieren, dass sie Tracedaten an IhrGoogle Cloud -Projekt senden, empfehlen wir, eine der folgenden Aktionen auszuführen:
- Verwenden Sie einen Exporter, der OTLP in einen Collector schreibt, der Ihre Trace-Daten dann an die Telemetry API sendet.
- Verwenden Sie einen In-Process-OTLP-Exporter, der von einer OpenTelemetry-Bibliothek unterstützt wird und Telemetrie an die Telemetry API sendet. Es gibt keinen Collector mit dieser Konfiguration.
Informationen zur Verwendung der Telemetry API finden Sie unter Vom Cloud Trace-Exporter zum OTLP-Endpunkt migrieren.
Authentifizierung
Exporter müssen autorisiert sein, Daten an Ihr Google Cloud -Projekt zu senden. Sie können den Exporter beispielsweise mit Ihren Google Cloud Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) konfigurieren, indem Sie Ihrer Anwendung eine sprachspezifische Google Auth Library hinzufügen. Weitere Informationen und Beispielcode finden Sie unter Authentifizierung konfigurieren.
Cloud Trace und Datenstandort
Wenn Sie Assured Workloads verwenden, weil Sie Anforderungen an den Datenstandort oder Impact Level 4 (IL4) haben, sollten Sie die Telemetry API nicht zum Senden von Trace-Spans verwenden.
Messwertdaten und die Telemetry API
In diesem Abschnitt wird beschrieben, wie Cloud Monitoring Messwerte verarbeitet, die mit dem otlphttp-Exporter und einem OpenTelemetry Collector oder von Anwendungen erfasst werden, die mit einem der OpenTelemetry SDKs instrumentiert sind.
OTLP-Messwerte in Cloud Monitoring
Wenn Messwerte mit einem OpenTelemetry Collector und dem otlphttp-Exporter in Cloud Monitoring aufgenommen oder direkt mit einem OpenTelemetry SDK gesendet werden, werden die OTLP-Messwerte Cloud Monitoring-Messwertstrukturen zugeordnet.
In diesem Abschnitt wird Folgendes beschrieben:
- Die Zuordnung zwischen OTLP-Ressourcen und überwachten Cloud Monitoring-Ressourcen.
- Die Zuordnung zwischen OTLP-Messwerten und Cloud Monitoring-Messwerten.
Zuordnung überwachter Ressourcen
Alle Messwertpunkte werden mit der Prometheus-Zuordnung so geschrieben, wie sie für Google Cloud Managed Service for Prometheus sind.
Prometheus-Zuordnung
Für Prometheus-Messwerte muss der überwachte Ressourcentyp prometheus_target verwendet werden.
Die folgenden Labels für den Ressourcentyp prometheus_target werden verwendet, um Daten in Monarch zu schematisieren und effizient zu speichern. Je genauer Sie Werte für diese Attribute angeben, desto besser sind die Abfragefähigkeit und Skalierbarkeit.
Wir empfehlen dringend, beim Festlegen von Werten für diese Labels so explizit wie möglich zu sein. Wir haben jedoch eine Fallback-Logik implementiert, die verwendet wird, wenn keine expliziten Werte vorhanden sind.
In der folgenden Tabelle sind die Quellen für Werte für Labels in der Reihenfolge ihrer Priorität aufgeführt:
prometheus-target-Label |
Verwendeter Wert (in Prioritätsreihenfolge) |
|---|---|
location (erforderlich) |
|
cluster |
|
namespace |
|
job |
|
instancePunkt ablehnen, wenn leer |
|
Messwertzuordnung
Messwerte werden in das Prometheus-Zeitreihenformat konvertiert. Messwertnamen dürfen entweder keine Domain oder die Domainprometheus.googleapis.com haben.
Nach der Konvertierung enthält der Messwertname das Präfix prometheus.googleapis.com und ein zusätzliches Suffix, das auf der OTLP-Punktart basiert. Der resultierende Cloud Monitoring-Messwert hat die folgende Struktur:
prometheus.googleapis.com/{metric_name}/{suffix}
Außerdem wird für jede eindeutige OpenTelemetry-Ressource ein target_info-Messwert hinzugefügt, der alle Ressourcenattribute mit Ausnahme von service.name, service.instance.id und service.namespace enthält.
Alle OTLP-Messwerte vom Typ INT64 werden in Cloud Monitoring in den Werttyp DOUBLE übersetzt, auch wenn der Collector den Werttyp als INT64 angibt.
Diese Änderung wird vorgenommen, da der Werttyp nicht geändert werden kann, sobald sich eine Zeitreihe in Monarch befindet. Die häufigste Folge der Unterstützung von INT64-Werten ist, dass es zu Konflikten kommt, die nur durch das Löschen eines Messwerts behoben werden können.
Zuordnung von Prometheus-Messwerten
Messwerttypen werden so zugeordnet:
- OTLP-Messgeräte werden Cloud Monitoring-Messgeräten zugeordnet.
- OTLP-Summen werden so zugeordnet:
- OTLP-Histogramm wird Cloud Monitoring-Verteilung mit dem Messwerttyp kumulativ oder Delta zugeordnet, je nach Wert von
aggregation_temporality. - OTLP-Zusammenfassungsmesswerte werden in einzelne Zeitreihen für jede Komponente aufgeschlüsselt:
count,sumund jedequantile.- Die Namen für Zähl- und Summenmesswerte haben das Suffix
_countbzw._sumund werden als kumulative Cloud Monitoring-Messwerte vom Typ DOUBLE geschrieben. - Jedes Quantil wird zu einer eigenen Messgerät-Zeitachse vom Typ DOUBLE mit dem Label
quantile.
- Die Namen für Zähl- und Summenmesswerte haben das Suffix
Die folgende Tabelle fasst die Messwertzuordnung zusammen:
| OTLP-Punktart | Monitoring metric kind | Werttyp überwachen | Suffix | Hinweise |
|---|---|---|---|---|
| ANZEIGE | ANZEIGE | DOUBLE | /gauge | |
| GAUGE (metric.metadata["prometheus.type"]="unknown") | ANZEIGE | DOUBLE | /unknown | Prometheus-Unbekannte werden vom OpenTelemetry Collector in einen Zähler und einen Messwert aufgeteilt. |
| SUMME (monoton, CUMULATIVE) | CUMULATIVE | DOUBLE | /counter | |
| SUM (monotonic, CUMULATIVE, metric.metadata["prometheus.type"]="unknown") | CUMULATIVE | DOUBLE | /unknown:counter | „Prometheus Unknowns“ werden vom OpenTelemetry Collector in einen Zähler und einen Messwert aufgeteilt. |
| SUMME (monoton, DELTA) | DELTA | DOUBLE | /delta | |
| SUMME (nicht monoton, CUMULATIVE) | ANZEIGE | DOUBLE | /gauge | |
| HISTOGRAMM (KUMULATIV) | CUMULATIVE | VERTEILUNG mit expliziten Buckets | /histogram | |
| EXPONENTIAL HISTOGRAM (CUMULATIVE) | CUMULATIVE | VERTEILUNG mit exponentiellen Buckets | /histogram | |
| HISTOGRAMM (DELTA) | DELTA | VERTEILUNG mit expliziten Buckets | /histogram:delta | |
| EXPONENTIELLES HISTOGRAMM (DELTA) | DELTA | VERTEILUNG mit exponentiellen Buckets | /histogram:delta | |
| SUMMARY (sum, count, quantile) |
CUMULATIVE CUMULATIVE GAUGE |
DOUBLE DOUBLE DOUBLE |
_sum/summary:counter _count/summary /summary |
Zusammenfassungsdatenpunkte werden als mehrere Zeitreihen geschrieben, eine für die Anzahl, die Summe und jedes berechnete Quantil. Quantilmesswerte werden auch mit dem Label quantile generiert. |
Unterschiede zwischen dem googlemanagedprometheus-Exporter und der Telemetry API
In der Telemetry API (telemetry.googleapis.com) werden Messwerte anders als im googlemanagedprometheus-Exporter verarbeitet:
Die Telemetry API erlaubt die Zeichen Punkt (
.) und Schrägstrich (/) in Messwertnamen. Beimgooglemanagedprometheus-Export werden alle Instanzen dieser Zeichen in Unterstriche (_) umgewandelt. Ein OTLP-Messwert namensprometheus.googleapis.com/foo.bar/gaugewird beispielsweise vom OTLP-Exporter unverändert exportiert, vomgooglemanagedprometheus-Exporter jedoch alsprometheus.googleapis.com/foo_bar/gauge.Wenn die Messwerte aufgenommen werden, erstellt Cloud Monitoring Messwertdeskriptoren auf Grundlage der Namen. Aufgrund der unterschiedlichen Verarbeitung von Punkt (
.) und Schrägstrich (/) durch die Aufnahmepfade unterscheiden sich die resultierenden Messwertdeskriptoren zwischen Messwerten, die mit demgooglemanagedprometheus-Exporter aufgenommen werden, und Messwerten, die mit demotlphttp-Exporter aufgenommen werden. Wenn Sie beide Erfassungspfade verwenden, haben Sie zwei Messwertgruppen. Wenn Sie Abfragen ausführen, müssen Sie die Ergebnisse der Prometheus- und OTLP-Versionen der Messwerte manuell zusammenführen, um vollständige Ergebnisse zu erhalten.Die Telemetry API hängt keine Einheit an einen Messwertnamen an, wenn eine Einheit vorhanden ist, und kein
_total-Suffix an Zähler. Ein Messwert, der mit der Telemetry API alsprometheus.googleapis.com/foo/counterexportiert wird, wird vomgooglemanagedprometheus-Exporter alsprometheus.googleapis.com/foo_seconds_total/counterexportiert. Dieser Unterschied gilt auch für die Suffixe_totalund_ratio.Die API synthetisiert den
sum_of_squared_deviation-Wert für Verteilungswerte, die aus exponentiellen Histogrammen abgeleitet werden. Dergooglemanagedprometheus-Exporter legt dieses Feld für exponentielle Histogramme nicht fest.Die API konvertiert alle Ganzzahlwerte in Double-Werte für Prometheus-Messwerte.
In der API werden die Labels
scope_versionoderscope_namenicht festgelegt, wenn sie leere Werte haben.
Wo Sie aufgenommene Daten ansehen können
Trace-Daten, die über die Telemetry API aufgenommen werden, können auf der Seite Trace Explorer aufgerufen werden. Informationen zum Aufrufen Ihrer Trace-Daten finden Sie in den folgenden Artikeln:
Messwertdaten, die über die Telemetry API aufgenommen werden, können auf der Seite Metrics Explorer aufgerufen werden. Informationen zum Ansehen und Darstellen Ihrer Messwertdaten finden Sie unter Diagramme mit dem Metrics Explorer erstellen.
Unterstützung durch VPC Service Controls
Der Telemetry API-Dienst mit dem Dienstnamen telemetry.googleapis.com ist ein von VPC Service Controls unterstützter Dienst. Alle VPC Service Controls-Einschränkungen, die Sie für den Telemetry API-Dienst erstellen, gelten nur für diesen Dienst. Diese Einschränkungen gelten nicht für andere Dienste, einschließlich Dienste wie cloudtrace.googleapis.com, in die auch Tracedaten aufgenommen werden können.
Hier finden Sie weitere Informationen: