OTLP-Messwerte aufnehmen – Übersicht

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_pattern für Sie transformiert.

  • 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 INT64 und DOUBLE kommen, insbesondere wenn Sie den Messwert target_info bereits gesendet haben. Wenn dieser Konflikttyp auftritt, löschen Sie die INT64-Messwertdeskriptoren. Mit diesem Golang-Script können Sie alle INT64-Messwerte vom Typ target_info aus Ihrem Messwertbereich löschen.

  • Wenn Sie das Label le beim Abfragen von exponentiellen Histogrammen beibehalten, werden möglicherweise unerwartete Ergebnisse zurückgegeben. Die typischeren histogram_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