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

Cette page fournit des informations de dépannage pour les cas d'utilisation courants des métriques basées sur les journaux dans Cloud Logging. Le contenu de cette page ne s'applique pas aux données de métriques écrites par des services ou vos Google Cloud 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 Google Cloud projet ou à un bucket Logging dans un Google Cloud projet. Vous ne pouvez pas créer de métriques basées sur les journaux pour d'autres Google Cloud ressources, 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 Google Cloud projet ou du bucket dans lequel 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 la page 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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services 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 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 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 horodatage (timestamp) est 14h30 le 20 février 2020 et son horodatage de réception (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 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. 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 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'elles se produisent, les lacunes 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 comptabilise le nombre d'entrées de journal "Heartbeat". Une règle d'alerte additionne les décomptes sur 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 un doublon de l'échantillon le plus récent et qui est le plus susceptible d'être égale à zéro, puis évalue la condition. Par conséquent, même un seul point de données manquant peut entraîner une valeur cumulée égale à zéro, 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 comptabilise plusieurs entrées de journal "Heartbeat", et pas seulement une.

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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services 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 pour la première fois 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 "indéterminé".

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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services 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 libellé n'est pas résolu dans la notification.

Pour résoudre ce problème, procédez de l'une des manières 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 à partir des entrées de journal.

  • 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 incidents ne sont pas créés 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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services ou vos applications.

Il peut arriver que vous receviez des incidents de faux positifs ou que Monitoring ne crée pas d'incidents à 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 cas suivants :

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

Des incidents de faux positifs peuvent se produire en raison d'un envoi tardif des entrées de journal à Logging. Par exemple, les champs de journal timestamp et receiveTimestamp peuvent avoir un delta de quelques minutes dans certains cas. De même, lorsque Logging stocke des 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 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 celui du journal (receiveTimestamp).

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

Pour que les notifications restent précises, même pour les données à jour, nous vous recommandons de définir la période d'alignement de la condition sur au moins 10 minutes. En particulier, cette valeur doit être suffisamment élevée pour s'assurer que plusieurs entrées de journal correspondant à votre filtre sont comptabilisées. Par exemple, si une métrique basée sur les journaux comptabilise les entrées de journal "Heartbeat", qui sont attendues toutes les N minutes, définissez la période d'alignement sur 2N minutes ou 10 minutes, selon la valeur la plus élevée :

  • Si vous utilisez la Google Cloud console, utilisez le Fenêtre glissante menu 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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services 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 pouvez générer 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 lorsqu'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 au niveau du bucket, la ressource est logging_bucket.

Pour éviter de créer des métriques avec une 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 les tailles, les décomptes ni les durées dans les libellés. De même, ne stockez pas de champs tels que les URL, les adresses IP ou les ID uniques, car ils peuvent tous entraîner 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 Google Cloud projet.

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 de la métrique basée 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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services 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 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 le même timestamp et le même insertId. L'explorateur de journaux supprime automatiquement les entrées de journal en double. Toutefois, les métriques basées sur les journaux comptabilisent 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 l'horodatage ne se situe 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. Ce processus peut entraîner la création d'une entrée de journal en double. Lorsque des entrées de journal en double existent, 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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services 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 basée sur les journaux personnalisé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 journal (métriques basées sur les journaux). Elle ne s'applique pas aux données de métriques écrites par des Google Cloud services ou vos applications.

Vous tentez de supprimer une métrique basée sur les journaux personnalisée à l'aide de la Google Cloud console. 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 de la Google Cloud console. 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. Une fois que vous avez 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 surveillées par une règle d'alerte ne peuvent pas être supprimées.