In diesem Dokument wird die Verwendung des OpenTelemetry Collectors mit dem otlphttp-Exporter und der Telemetry (OTLP) API, telemetry.googleapis.com, die das OpenTelemetry OTLP-Protokoll implementiert, beschrieben.
Durch die Kombination des otlphttp-Exporters und der Telemetry API können Sie OTLP-Messwerte in Cloud Monitoring aufnehmen.
Der OTLP-Endpunkt unterstützt alle OTLP-Protokolle, einschließlich http/proto, http/json und grpc. Weitere Informationen finden Sie unter Protokollunterstützung.
Sie können Messwerte auch direkt aus Anwendungen, die SDKs verwenden, an die Telemetry API senden. Weitere Informationen finden Sie unter SDKs zum Senden von Messwerten aus Anwendungen verwenden.
Wenn Sie Google Kubernetes Engine verwenden, können Sie Managed OpenTelemetry für GKE folgen, anstatt einen OpenTelemetry Collector, der die Telemetry API verwendet, manuell bereitzustellen und zu konfigurieren.
OTLP für Prometheus-Messwerte funktioniert nur, wenn Sie den OpenTelemetry Collector in Version 0.140.0 oder höher verwenden.
Messwert- und Labelnamen in der Telemetry API
In diesem Abschnitt werden die Namenskonventionen und Anforderungen für Messwerte beschrieben, die mit der Telemetry API in Cloud Monitoring aufgenommen werden:
Messwertnamen und Labelschlüssel unterstützen nicht den vollständigen UTF-8-Zeichensatz.
- Messwertnamen, die nicht dem regulären Ausdruck
[a-zA-Z][a-zA-Z0-9_:./]*entsprechen, werden abgelehnt. - DataPoints mit Attributen (d. h. Label-Schlüsseln), die nicht dem regulären Ausdruck
[a-zA-Z_][a-zA-Z0-9_.]*entsprechen, werden abgelehnt.
Damit Ihre Messwerte aus diesen Gründen nicht abgelehnt werden, können Sie einen Prozessor einrichten, der Ihre Messwertnamen und Attribute mithilfe der Funktion
replace_patternfür Sie transformiert.- Messwertnamen, die nicht dem regulären Ausdruck
Wichtig: Wenn Sie Messwertnamen und Labelschlüssel mit Sonderzeichen abfragen, die nicht dem Doppelpunkt (
:) und dem Unterstrich (_) entsprechen, müssen Sie sie gemäß der UTF-8-Spezifikation von PromQL in geschweifte Klammern ({}) und Anführungszeichen (") einschließen. Die folgenden Abfragen sind beispielsweise gültig:{"my.metric.name"}{"my.metric.name", "label.key.KEY"="value"}
Telemetry API-Messwerte und Cloud Monitoring
In diesem Abschnitt wird beschrieben, wie Messwerte, die über die Telemetry API und den otlphttp-Exporter erfasst werden, mit Cloud Monitoring interagieren:
Es kann zu Kollisionen zwischen Messwerten vom Typ
INT64undDOUBLEkommen, insbesondere wenn Sie den Messwerttarget_infobereits gesendet haben. Wenn dieser Konflikttyp auftritt, löschen Sie dieINT64-Messwertdeskriptoren. Mit diesem Golang-Script können Sie alleINT64-Messwerte vom Typtarget_infoaus Ihrem Messwertbereich löschen.Wenn Sie das Label
lebeim Abfragen von exponentiellen Histogrammen beibehalten, werden möglicherweise unerwartete Ergebnisse zurückgegeben. Die typischerenhistogram_quantile(.99, sum by (le) (metric))-Anfragen sollten funktionieren.Unter bestimmten Umständen, z. B. bei sehr spärlichen Deltas, werden Deltamesswerte möglicherweise nicht richtig abgefragt.
Protokollunterstützung
Der OTLP-Endpunkt unterstützt alle OTLP-Protokolle, einschließlich http/proto, http/json und grpc. Beim Exportieren aus einem OpenTelemetry Collector können Sie ein beliebiges Protokoll verwenden. Da die meisten SDK-Exporter jedoch keine dynamische Aktualisierung von Tokens unterstützen, empfehlen wir, beim direkten Export aus SDKs nur den gRPC-OTLP-Exporter und nicht die HTTP-Exporter zu verwenden. Weitere Informationen finden Sie unter SDKs zum Senden von Messwerten aus Anwendungen verwenden.
Abrechnung
Die Abrechnung für OTLP-Messwerte erfolgt unter der SKU „Prometheus-Beispiele aufgenommen“, die auch für Messwerte aus Google Cloud Managed Service for Prometheus verwendet wird. Weitere Informationen finden Sie auf der Abrechnungsseite.
Limits und Kontingente
Für die Erfassung von Messwerten über die Telemetry API gelten die Messwertlimits für die Telemetry API.
Außerdem gelten alle Standardkontingente und Limits für Cloud Monitoring- und Google Cloud Managed Service for Prometheus-Messwerte. Messwerte dürfen beispielsweise nicht mehr als 200 Labels haben.
Das Standardkontingent für Messwerte, die von der Telemetry API aufgenommen werden, beträgt 60.000 Anfragen pro Minute. Bei einer maximalen Batchgröße von 200 Punkten pro Anfrage entspricht dies einem effektiven Standardkontingent von 200.000 Samples pro Sekunde. Sie können eine Kontingenterhöhung anfordern.
Nächste Schritte
- Eine detaillierte Anleitung zum Bereitstellen und Verwenden des OpenTelemetry Collector mit der Telemetry API finden Sie unter Collector bereitstellen und verwenden.
- Informationen zum Senden von Messwerten an die Telemetry API aus Anwendungen, in denen SDKs verwendet werden, finden Sie unter SDKs zum Senden von Messwerten aus Anwendungen verwenden.
- Informationen zur Verwendung eines OpenTelemetry Collectors und der Telemetry API mit der OpenTelemetry-Instrumentierung ohne Code finden Sie unter OpenTelemetry-Instrumentierung ohne Code für Java verwenden.
- Informationen zur Migration zum
otlphttp-Exporter von einem anderen Exporter finden Sie unter Zum OTLP-Exporter migrieren. - Weitere Informationen zur Telemetry API finden Sie unter Telemetry API (OTLP) – Übersicht.