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, des données manquantes, des décomptes retardés ou des 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 dérivées de vos journaux. Il ne s'applique pas aux données de métriques écrites directement par les services Google Cloud ou vos applications.

Impossible d'afficher ou 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 Logging 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 des comptes de facturation ou des organisations. Les métriques basées sur les journaux ne sont calculées que pour les journaux du projet ou du bucket Google Cloud dans lequel ils sont reçus.

Pour créer des métriques basées sur les journaux, vous devez disposer des autorisations IAM (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 tardivement ou ne pas l'être du tout, car leur horodatage est trop éloigné dans le passé ou dans le futur. Si une entrée de journal est reçue par Cloud Logging plus de 24 heures dans le passé ou 10 minutes dans le futur, elle ne sera pas comptabilisée dans la métrique basée sur les journaux.

    Le nombre d'entrées arrivant en retard 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. Il a un timestamp de 14h30 le 20 février 2020 et un receivedTimestamp de 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 peut comptabiliser. Les métriques basées sur les journaux évaluent les entrées de journal lorsqu'elles sont stockées dans des buckets de journaux. Ces métriques 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 dans les 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. Lorsqu'ils se produisent, ils 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, les 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 possibilité.

    Exemple : Une entrée de journal "heartbeat" est écrite toutes les cinq minutes, et une métrique basée sur les journaux compte le nombre d'entrées de journal "heartbeat". Une règle d'alerte additionne les nombres sur un intervalle de cinq minutes et vous avertit lorsque le total est inférieur à un. Lorsqu'un point de données est manquant dans la série temporelle, la règle d'alerte injecte une valeur synthétique, qui est un double de l'échantillon le plus récent et qui est très probablement égale à zéro, puis évalue la condition. Par conséquent, même un seul point de données manquant peut entraîner une valeur de somme nulle, ce qui amène cette règle d'alerte à envoyer une notification.

    Pour réduire le risque de fausse notification, configurez la règle de sorte qu'elle compte plusieurs entrées de journal de "pulsation", 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, vous pouvez constater que le type de ressource est "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 surveiller cette métrique. Dans le champ de documentation de votre règle d'alerte, vous faites référence aux étiquettes extraites à l'aide d'une variable au format ${log.extracted_label.KEY}, où KEY est le nom que vous avez attribué à l'étiquette extraite. Le libellé n'est pas résolu dans la notification.

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

  • Supprimez le contenu de l'étiquette extraite 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 journal.

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

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 vous retrouver dans des situations où 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 la logique inférieur à.
  • Lorsqu'une règle d'alerte est basée sur une condition de centile pour une métrique de distribution.
  • Lorsqu'il y a un écart dans les données de métriques.

Des alertes de faux positifs peuvent se produire, car les entrées de journal peuvent être envoyées à Logging en retard. Par exemple, les champs de journal timestamp et receiveTimestamp peuvent présenter un delta de quelques minutes dans certains cas. De plus, lorsque Logging stocke des journaux dans des buckets de journaux, il existe un délai inhérent entre la génération des entrées de journal et leur réception par Logging. Cela signifie que Logging peut ne pas disposer du nombre total d'entrées de journal pour une entrée de journal donnée avant un certain temps après la génération des entrées de journal. C'est pourquoi une règle d'alerte utilisant la logique inférieur à ou basée sur une condition de centile pour une métrique de distribution peut produire une alerte de faux positif : 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 nettement 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 avec des codes temporels plus anciens après que des entrées de journal existantes avec le même code temporel ont déjà été reçues par Logging. La valeur de la métrique doit donc être mise à jour.

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

Par exemple, si une métrique basée sur les journaux compte 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 Fenêtre glissante 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 est appelé 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 d'étiquette, si vous avez une ou plusieurs étiquettes avec un grand nombre de valeurs, il n'est pas difficile de dépasser 30 000 séries temporelles. 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. Des frais peuvent également vous être facturés pour les appels d'API permettant d'interroger les données de séries temporelles. 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 et limitées au bucket, la ressource est logging_bucket.

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

  • 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, ne stockez pas de tailles, de nombres ou de durées dans les étiquettes. De plus, ne stockez pas de champs tels que des URL, des adresses IP ou des identifiants 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 des étiquettes de 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 sont incorrectes

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 d'une métrique basée sur les journaux sont parfois différentes du nombre d'entrées de journal indiqué par l'explorateur de journaux.

Pour minimiser 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 valeurs 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 l'horodatage 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 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 essayez de supprimer une métrique basée sur les journaux personnalisée à l'aide de la console Google Cloud . La requête 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, procédez comme suit :

  • 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. Les métriques basées sur les journaux qui sont surveillées par une règle d'alerte ne peuvent pas être supprimées.