Résoudre les problèmes liés aux métriques basées sur les journaux

Pour diagnostiquer et résoudre les problèmes liés à vos métriques basées sur les journaux dans Cloud Logging (par exemple, les données manquantes, les décomptes différés ou les alertes de faux positifs), suivez les conseils de dépannage de cette page.

Le contenu de cette page ne s'applique qu'aux données de métriques issues de vos journaux. Elle ne s'applique pas aux données de métriques écrites directement par les services Google Cloud ou vos applications.

Impossible d'afficher ni de créer des métriques

Les métriques basées sur les journaux ne s'appliquent qu'à un seul projet Google Cloud ou à un bucket de journaux dans un projet Google Cloud . Vous ne pouvez pas créer de métriques basées sur les journaux pour d'autres ressources Google Cloud, telles que les comptes de facturation ou les organisations. Les métriques basées sur les journaux ne sont calculées que pour les journaux du projet Google Cloud ou du bucket dans lesquels elles sont reçues.

Pour créer des métriques basées sur les journaux, vous devez disposer des autorisations Identity and Access Management appropriées. Pour en savoir plus, consultez Contrôle des accès avec IAM : métriques basées sur les journaux.

La métrique ne contient pas de données de journal

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

L'absence de données dans les métriques basées sur les journaux peut s'expliquer par les raisons suivantes :

  • Les nouvelles entrées de journal ne correspondent peut-être pas au filtre de votre métrique. Une métrique basée sur les journaux récupère les données des entrées de journal correspondantes reçues après la création de la métrique. Logging n'intègre pas les entrées de journal précédentes dans la métrique.

  • Les nouvelles entrées de journal ne contiennent peut-être pas le bon champ, ou les données ne sont peut-être pas au format attendu pour l'extraction par votre métrique de distribution. Vérifiez que les noms des champs et les expressions régulières sont corrects.

  • Les décomptes de votre métrique sont peut-être retardés. Même si des entrées de journal dénombrables apparaissent dans l'explorateur de journaux, la mise à jour des métriques basées sur les journaux dans Cloud Monitoring peut prendre jusqu'à 10 minutes.

  • Les entrées de journal affichées peuvent être comptabilisées en retard ou ne pas être comptabilisées du tout, car elles sont horodatées trop loin dans le passé ou le futur. Si une entrée de journal est reçue par Cloud Logging plus de 24 heures avant ou 10 minutes après, elle ne sera pas comptabilisée dans la métrique basée sur les journaux.

    Le nombre d'entrées tardives est enregistré dans la métrique basée sur les journaux logging.googleapis.com/logs_based_metrics_error_count.

    Exemple : Une entrée de journal correspondant à une métrique basée sur les journaux arrive en retard. Son timestamp est 14h30 le 20 février 2020 et son receivedTimestamp 14h45 le 21 février 2020. Cette entrée ne sera pas comptabilisée dans la métrique basée sur les journaux.

  • La métrique basée sur les journaux a été créée après l'arrivée des entrées de journal que la métrique pourrait comptabiliser. Les métriques basées sur les journaux évaluent les entrées de journal telles qu'elles sont stockées dans les buckets de journaux. Elles n'évaluent pas les entrées de journal stockées dans Logging.

  • La métrique basée sur les journaux présente des lacunes dans les données. Certaines lacunes de données sont attendues, car les systèmes qui traitent les données de métriques basées sur les journaux ne garantissent pas la persistance de chaque point de données de métrique. Les écarts sont généralement rares et de courte durée. Toutefois, si vous disposez d'une règle d'alerte qui surveille une métrique basée sur les journaux, des lacunes dans les données peuvent entraîner une fausse notification. Les paramètres que vous utilisez dans votre règle d'alerte peuvent réduire cette probabilité.

    Exemple : Une entrée de journal "battement de cœur" est écrite toutes les cinq minutes, et une métrique basée sur les journaux comptabilise le nombre d'entrées de journal "battement de cœur". Une règle d'alerte additionne les nombres dans un intervalle de cinq minutes et vous avertit lorsque le total est inférieur à un. Lorsque la série temporelle ne comporte pas de point de données, la règle d'alerte injecte une valeur synthétique, qui est une copie de l'échantillon le plus récent et qui est très probablement nulle, puis évalue la condition. Par conséquent, même un seul point de données manquant peut entraîner une valeur nulle pour la somme, ce qui déclenche l'envoi d'une notification par cette règle d'alerte.

    Pour réduire le risque de fausse notification, configurez la règle de sorte qu'elle comptabilise plusieurs entrées de journaux "heartbeat" (signal de présence), et pas une seule.

Le type de ressource est "indéterminé" dans Cloud Monitoring

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

Certains types de ressources surveillées Cloud Logging ne sont pas directement mappés aux types de ressources surveillées Cloud Monitoring. Par exemple, lorsque vous créez une règle d'alerte ou un graphique à partir d'une métrique basée sur les journaux, il est possible que le type de ressource soit "non défini".

Le type de ressource n'est pas défini.

Le type de ressource surveillée correspond à global ou à un type de ressource surveillée différent dans Cloud Monitoring. Consultez la section Mappages pour les ressources Logging uniquement afin de déterminer le type de ressource surveillée que vous devez choisir.

Les libellés d'une notification ne sont pas résolus

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

Vous créez une métrique basée sur les journaux, puis une règle d'alerte pour la surveiller. Dans le champ de documentation de votre règle d'alerte, vous faites référence aux libellés extraits à l'aide d'une variable de la forme ${log.extracted_label.KEY}, où KEY est le nom que vous avez donné au libellé extrait. Le problème n'est pas résolu dans la notification.

Pour résoudre ce problème, effectuez l'une des opérations suivantes :

  • Supprimez le contenu du libellé extrait de la documentation. Les règles d'alerte qui surveillent les métriques basées sur les journaux ne peuvent pas extraire de données des entrées de journaux.

  • Créez une alerte basée sur les journaux. Ces règles d'alerte peuvent extraire des données de l'entrée de journal qui les déclenche.

Les alertes ne sont pas créées ou sont des faux positifs

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

Vous pouvez recevoir des alertes de faux positifs ou des situations dans lesquelles Monitoring ne crée pas d'alertes à partir de métriques basées sur les journaux, car la période d'alignement de la règle d'alerte est trop courte. Vous pouvez rencontrer des faux positifs dans les scénarios suivants :

  • Lorsqu'une règle d'alerte utilise une logique valeur inférieure à.
  • Lorsqu'une règle d'alerte est basée sur une condition de centile pour une métrique de distribution.
  • Lorsqu'il y a une lacune dans les données de métrique.

Des alertes de faux positifs peuvent se produire en raison d'un envoi tardif des entrées de journal à Logging. Par exemple, dans certains cas, les champs de journal timestamp et receiveTimestamp peuvent présenter un délai de plusieurs minutes. De plus, lorsque Logging stocke les journaux dans des buckets de journaux, il existe un délai inhérent entre le moment où les entrées de journal sont générées et celui où Logging les reçoit. Cela signifie que Logging risque de ne pas enregistrer le nombre total d'occurrences pour une entrée de journal particulière jusqu'à une date postérieure à la génération des entrées de journal. C'est pourquoi une règle d'alerte utilisant une logique valeur inférieure à ou basée sur une condition de centile pour une métrique de distribution peut produire une alerte de faux positif, si toutes les entrées de journal n'ont pas encore été prises en compte.

Toutefois, les métriques basées sur les journaux sont cohérentes à terme, car une entrée de journal correspondant à une métrique basée sur les journaux peut être envoyée à Logging avec un timestamp beaucoup plus ancien ou plus récent que le receiveTimestamp du journal.

Cela signifie que la métrique basée sur les journaux peut recevoir des entrées de journal ayant des horodatages plus anciens après que Logging ait reçu des entrées de journal existantes portant le même horodatage. Par conséquent, la valeur de la métrique doit être mise à jour.

Pour que les notifications restent précises même pour les données à jour, nous vous recommandons de définir une période d'alignement pour la condition suffisamment longue pour comptabiliser plusieurs entrées de journal correspondant à votre filtre et tenir compte du délai d'ingestion, qui peut atteindre 10 minutes.

Par exemple, si une métrique basée sur les journaux comptabilise les entrées de journal "heartbeat" attendues toutes les sept minutes, définissez la période d'alignement sur au moins 24 minutes. Cette valeur tient compte du délai d'ingestion et de deux échantillons.

  • Si vous utilisez la console Google Cloud , utilisez le menu Période pour définir la période d'alignement.

  • Si vous utilisez l'API, utilisez le champ aggregations.alignmentPeriod de la condition pour définir la période d'alignement.

La métrique basée sur les journaux comporte trop de séries temporelles

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

Le nombre de séries temporelles d'une métrique dépend du nombre de combinaisons différentes des valeurs du libellé. Le nombre de séries temporelles correspond à la cardinalité de la métrique. Le nombre maximal de séries temporelles pour une métrique est de 30 000.

Étant donné que vous générez une série temporelle pour chaque combinaison de valeurs de libellés, il est facile de dépasser 30 000 séries temporelles si vous possédez un ou plusieurs libellés avec un grand nombre de valeurs. Vous souhaitez éviter les métriques à cardinalité élevée.

À mesure que la cardinalité augmente, la métrique peut se trouver limitée et certains points de données peuvent ne pas y être écrits. Les graphiques affichant la métrique peuvent mettre du temps à se charger en raison du grand nombre de séries temporelles à traiter. De plus, les appels d'API exécutés afin d'interroger les données des séries temporelles peuvent entraîner des frais. Consultez les sections Cloud Monitoring de la page Tarifs de Google Cloud Observability.

En raison d'une limite de 1 000 000 de séries temporelles actives par ressource surveillée, le système peut limiter vos données de métriques même si elles comportent moins de 30 000 séries temporelles actives. Pour les métriques basées sur les journaux au niveau du projet, la ressource est définie par la ressource dans l'entrée de journal. Pour les métriques basées sur les journaux à portée de bucket, la ressource est logging_bucket.

Pour éviter de créer des métriques à forte cardinalité :

  • Vérifiez que les champs du libellé et les expressions régulières d'extracteur correspondent à des valeurs ayant une cardinalité limitée.

    Par exemple, n'enregistrez pas les tailles, les nombres ou les durées dans les libellés. De plus, ne stockez pas de champs tels que les URL, les adresses IP ou les ID uniques, car ils peuvent tous générer un grand nombre de séries temporelles.

  • Évitez d'extraire des messages textuels longs qui risquent de changer sans limites en tant que valeurs de libellés.

  • Évitez d'extraire des valeurs numériques ayant une cardinalité illimitée.

  • N'extrayez que les valeurs de libellés ayant une cardinalité connue (par exemple, les codes d'état avec un ensemble de valeurs connues).

Ces deux métriques basées sur les journaux système peuvent vous aider à mesurer l'effet de l'ajout ou de la suppression de libellés sur la cardinalité de votre métrique :

Quand vous inspectez ces métriques, vous pouvez filtrer vos résultats par nom de métrique. Pour en savoir plus, consultez la page Sélectionner des métriques : filtrer.

Le nom de la métrique n'est pas valide

Lorsque vous créez une métrique de compteur ou de distribution, choisissez un nom de métrique unique parmi les métriques basées sur les journaux de votre projet Google Cloud .

Les chaînes de nom de métrique ne doivent pas dépasser 100 caractères et ne peuvent contenir que les caractères suivants :

  • A-Z
  • a-z
  • 0-9
  • Caractères spéciaux _-.,+!*',()%\/.

    La barre oblique / représente une arborescence d'éléments et ne peut donc pas être le premier caractère du nom.

Les valeurs des métriques basées sur les journaux ne sont pas correctes

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

Vous remarquez que les valeurs signalées pour une métrique basée sur les journaux sont parfois différentes du nombre d'entrées de journal signalées par l'explorateur de journaux.

Pour réduire l'écart, procédez comme suit :

  • Assurez-vous que les applications n'envoient pas d'entrées de journal en double. Les entrées de journal sont considérées comme des doublons lorsqu'elles ont les mêmes timestamp et insertId. L'explorateur de journaux supprime automatiquement les entrées de journal en double. Toutefois, les métriques basées sur les journaux comptent chaque entrée de journal correspondant au filtre de la métrique.

  • Assurez-vous qu'une entrée de journal est envoyée à Cloud Logging lorsque le code temporel est inférieur à 24 heures dans le passé ou à 10 minutes dans le futur. Les entrées de journal dont les codes temporels ne se trouvent pas dans ces limites ne sont pas comptabilisées par les métriques basées sur les journaux.

Vous ne pouvez pas éliminer la possibilité de journaux en double. Si une erreur interne se produit lors du traitement d'une entrée de journal, un processus de nouvelle tentative est appelé par Cloud Logging. Le processus de nouvelle tentative peut entraîner la création d'une entrée de journal en double. En cas d'entrées de journal en double, la valeur d'une métrique basée sur les journaux peut être trop élevée, car ces métriques comptabilisent chaque entrée de journal correspondant au filtre de la métrique.

La valeur des libellés est tronquée

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

La valeur des libellés définis par l'utilisateur ne doit pas dépasser 1 024 octets.

Impossible de supprimer une métrique personnalisée basée sur les journaux

Cette entrée ne s'applique qu'aux données de métriques que Google Cloud Observability dérive de vos données de journaux (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par les services Google Cloud ou vos applications.

Vous tentez de supprimer une métrique personnalisée basée sur les journaux à l'aide de la console Google Cloud . La demande de suppression échoue et la boîte de dialogue de suppression affiche le message d'erreur There is an unknown error while executing this operation.

Pour résoudre ce problème, essayez les solutions suivantes :

  • Actualisez la page Métriques basées sur les journaux dans la console Google Cloud . Le message d'erreur peut s'afficher en raison d'un problème de timing interne.

  • Identifiez et supprimez toutes les règles d'alerte qui surveillent la métrique basée sur les journaux. Après avoir vérifié que la métrique basée sur les journaux n'est pas surveillée par une règle d'alerte, supprimez-la. Vous ne pouvez pas supprimer les métriques basées sur les journaux qui sont surveillées par une règle d'alerte.