Fehler bei logbasierten Messwerten beheben

Auf dieser Seite finden Sie Informationen zur Fehlerbehebung für häufige Szenarien bei der Verwendung logbasierter Messwerte in Cloud Logging.

Messwerte können nicht aufgerufen oder erstellt werden

Logbasierte Messwerte gelten nur für ein einzelnes Google Cloud-Projekt oder für einen Logging-Bucket in einem Google Cloud-Projekt. Für andere Google Cloud-Ressourcen wie Rechnungskonten oder Organisationen können Sie keine logbasierten Messwerte erstellen. Logbasierte Messwerte werden nur für Logs in dem Google Cloud-Projekt oder -Bucket berechnet, in dem sie empfangen werden.

Zum Erstellen von Messwerten benötigen Sie die entsprechenden IAM-Berechtigungen (Identity and Access Management). Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM: Logbasierte Messwerte.

Im Messwert fehlen Logdaten

Das Fehlen von Daten in logbasierten Messwerten kann mehrere Gründe haben:

  • Neue Logeinträge stimmen möglicherweise nicht mit dem Filter Ihres Messwerts überein. Logbasierte Messwerte rufen Daten aus übereinstimmenden Log-Einträgen ab, die nach der Erstellung des Messwerts empfangen wurden. In Logging werden keine Backfills mit Messwerten aus früheren Logeinträgen durchgeführt.

  • Neue Logeinträge enthalten möglicherweise nicht das richtige Feld oder die Daten haben vielleicht nicht das richtige Format für die Extraktion durch Ihren Verteilungsmesswert. Prüfen Sie, ob Ihre Feldnamen und regulären Ausdrücke korrekt sind.

  • Die Messwertzählungen sind möglicherweise verzögert. Auch wenn zählbare Logeinträge im Log-Explorer angezeigt werden, kann es bis zu 10 Minuten dauern, bis die logbasierten Messwerte in Cloud Monitoring aktualisiert werden.

  • Die angezeigten Logeinträge werden möglicherweise spät oder gar nicht gezählt, weil ihr Zeitstempel zu weit in der Vergangenheit oder Zukunft liegt. Wenn der Empfang eines Logeintrags mehr als 24 Stunden in der Vergangenheit oder 10 Minuten in der Zukunft liegt, wird der Logeintrag nicht im logbasierten Messwert gezählt.

    Die Anzahl der spät eingehenden Einträge wird für jedes Log im logbasierten Systemmesswert logging.googleapis.com/logs_based_metrics_error_count erfasst.

    Beispiel: Ein Logeintrag, der mit einem logbasierten Messwert übereinstimmt, trifft spät ein. Er hat einen timestamp von 14:30 Uhr am 20. Februar 2020 und einen receivedTimestamp von 14:45 Uhr am 21. Februar 2020. Dieser Eintrag wird nicht in den logbasierten Messwert einbezogen.

  • Der logbasierte Messwert wurde nach Eingang von Logeinträgen erstellt, die der Messwert möglicherweise zählt. Logbasierte Messwerte werten Logeinträge aus, wie sie in Log-Buckets gespeichert sind. Mit diesen Messwerten werden keine Logeinträge ausgewertet, die in Logging gespeichert sind.

Der Ressourcentyp ist in Cloud Monitoring "nicht definiert"

Einige überwachte Cloud Logging-Ressourcentypen werden nicht direkt überwachten Cloud Monitoring-Ressourcentypen zugeordnet. Wenn Sie beispielsweise zuerst eine Benachrichtigung oder ein Diagramm aus einem logbasierten Messwert erstellen, sehen Sie möglicherweise, dass der Ressourcentyp "nicht definiert" ist.

Der Ressourcentyp ist nicht definiert.

Der überwachte Ressourcentyp ist entweder global oder einem anderen überwachten Ressourcentyp in Cloud Monitoring zugeordnet. In den Zuordnungen für reine Logging-Ressourcen erfahren Sie, welchen überwachten Ressourcentyp Sie auswählen müssen.

Falsche oder nicht ausgelöste Benachrichtigungen

Sie können falsch-positive Benachrichtigungen oder Benachrichtigungen erhalten, die nicht durch logbasierte Messwerte ausgelöst werden, da der Ausrichtungszeitraum für die Benachrichtigung zu kurz ist. Häufige Szenarien, bei denen ein zu kurzer Ausrichtungszeitraum zu Problemen führt, liegt vor, wenn eine Warnung weniger als Logik verwendet oder die Warnung auf einer Perzentilbedingung für Verteilungsmesswerte basiert.

Falsch-positive Warnungen können auftreten, weil Logeinträge ggf. zu spät an Logging gesendet wurden. Beispielsweise können die Logfelder timestamp und receiveTimestamp in einigen Fällen ein Delta von Minuten aufweisen. Wenn Logging Logs in Log-Buckets speichert, gibt es außerdem eine inhärente Verzögerung zwischen dem Generieren der Logeinträge und dem Empfang der Logeinträge. Das bedeutet, dass Logging bis zu einem späteren Zeitpunkt nach der Generierung der Logeinträge möglicherweise nicht die Gesamtzahl für einen bestimmten Logeintrag aufweist. Aus diesem Grund kann eine Warnung mit weniger als Logik oder basierend auf einer Perzentilbedingung für Verteilungsmesswerte zu einer falsch-positiven Warnung führen: Nicht alle Logeinträge wurden bereits berücksichtigt.

Allerdings unterliegen logbasierte Messwerte immer Eventual Consistency. Logbasierte Messwerte unterliegen Eventual Consistency, da ein Logeintrag, der mit einem logbasierten Messwert übereinstimmt, an Logging mit einem timestamp gesendet werden kann, der deutlich älter oder neuer ist als der Log-receiveTimestamp.

Der logbasierte Messwert bedeutet, dass Logeinträge mit älteren Zeitstempeln empfangen werden können, nachdem vorhandene Logeinträge mit demselben Zeitstempel bereits von Logging empfangen wurden. Daher muss der Messwert aktualisiert werden.

Um zu gewährleisten, dass Warnungen auch bei pünktlichen Daten korrekt sind, sollten Benachrichtigungsrichtlinien für logbasierte Messwerte Benachrichtigungsbedingungen mit Ausrichtungszeiträumen verwenden, die größer oder gleich zwei Minuten sind. Bei Logeinträgen, die mit Verzögerungen in Minuten an Logging gesendet werden, wird ein Ausrichtungszeitraum von zehn Minuten empfohlen, um Pünktlichkeit und Genauigkeit auszugleichen.

Messwert enthält zu viele Zeitachsen

Die Anzahl der Zeitachsen in einem Messwert hängt von der Anzahl der unterschiedlichen Kombinationen von Labelwerten ab. Die Anzahl der Zeitachsen wird als Kardinalität des Messwerts bezeichnet und darf 30.000 nicht überschreiten.

Da Sie eine Zeitachse für jede Kombination von Labelwerten generieren können, ist es nicht schwierig, 30.000 Zeitachsen zu überschreiten,wenn Sie ein oder mehrere Labels mit einer hohen Anzahl von Werten haben. Sie sollten Messwerte mit hoher Kardinalität vermeiden.

Wenn die Kardinalität eines Messwerts zunimmt, kann der Messwert gedrosselt werden und einige Datenpunkte werden möglicherweise nicht in den Messwert geschrieben. Diagramme, die den Messwert anzeigen, können aufgrund der hohen Anzahl von Zeitachsen, die das Diagramm verarbeiten muss, langsam geladen werden. Möglicherweise fallen auch Kosten für API-Aufrufe zur Abfrage von Zeitachsendaten an. Einzelheiten hierzu finden Sie in der Preisübersicht zu Cloud Monitoring.

So vermeiden Sie es, Messwerte mit hoher Kardinalität zu erstellen:

  • Überprüfen Sie, ob die Labelfelder und regulären Extrahiererausdrücke mit Werten übereinstimmen, die eine beschränkte Kardinalität haben.

  • Vermeiden Sie das Extrahieren von Textnachrichten, die sich unbegrenzt wie Labelwerte ändern können.

  • Vermeiden Sie das Extrahieren numerischer Werte mit unbegrenzter Kardinalität.

  • Extrahieren Sie nur Werte von Labeln mit bekannter Kardinalität, z. B. Statuscodes mit einer Reihe bekannter Werte.

Mit diesen logbasierten Systemmesswerten können Sie die Auswirkungen des Hinzufügens oder Entfernens von Labels auf die Kardinalität Ihres Messwerts messen:

Wenn Sie diese Messwerte prüfen, können Sie die Ergebnisse weiter nach Messwertnamen filtern. Weitere Informationen finden Sie unter Messwerte auswählen: Filtern.

Messwertname ist ungültig

Wenn Sie einen Zähler oder einen Verteilungsmesswert erstellen, wählen Sie einen Messwertnamen aus, der unter den logbasierten Messwerten in Ihrem Google Cloud-Projekt eindeutig ist.

Zeichenketten mit Messwertnamen dürfen nicht länger als 100 Zeichen sein und nur die folgenden Zeichen enthalten:

  • A-Z
  • a-z
  • 0-9
  • Die Sonderzeichen _-.,+!*',()%\/.

    Durch den Schrägstrich / wird eine Hierarchie der Namensteile innerhalb des Messwertnamens angegeben. Er darf nicht das erste Zeichen des Namens sein.

Labelwerte werden abgeschnitten

Werte für benutzerdefinierte Labels dürfen 1.024 Byte nicht überschreiten.

Benutzerdefinierter Logmesswert kann nicht gelöscht werden

Sie versuchen, einen benutzerdefinierten logbasierten Messwert mithilfe der Google Cloud Console zu löschen. Die Löschanfrage schlägt fehl und im Löschdialogfeld wird die Fehlermeldung There is an unknown error while executing this operation angezeigt.

Versuchen Sie Folgendes, um dieses Problem zu beheben:

  • Aktualisieren Sie die Seite Logbasierte Messwerte in der Google Cloud Console. Die Fehlermeldung wird möglicherweise aufgrund eines internen Zeitproblems angezeigt.

  • Ermitteln und löschen Sie alle Benachrichtigungsrichtlinien, die den logbasierten Messwert überwachen. Nachdem Sie sichergestellt haben, dass der logbasierte Messwert nicht von einer Benachrichtigungsrichtlinie überwacht wird, löschen Sie den logbasierten Messwert. Logbasierte Messwerte, die von einer Benachrichtigungsrichtlinie überwacht werden, können nicht gelöscht werden.