Calculer des métriques à partir de données de métriques

Le calcul des métriques consiste à générer de nouvelles métriques basées sur des journaux ou des métriques préexistants pour l'observabilité des données. Dans GDC, vous calculez les métriques en configurant des règles d'enregistrement dans une ressource personnalisée MonitoringRule. Les règles d'enregistrement précalculent les expressions fréquemment nécessaires ou coûteuses en termes de calcul. Ces règles enregistrent leur résultat sous la forme d'un nouvel ensemble de séries temporelles. Interroger le résultat précalculé est plus rapide que d'exécuter l'expression d'origine chaque fois que nécessaire. Cette précomputation est particulièrement utile pour les tableaux de bord et les alertes complexes, qui doivent interroger la même expression à plusieurs reprises chaque fois qu'ils sont actualisés ou évalués.

Vous configurez des règles d'enregistrement dans la ressource personnalisée MonitoringRule pour calculer des métriques basées sur d'autres métriques de surveillance du système. La ressource personnalisée MonitoringRule contient des règles d'enregistrement qui décrivent les conditions à remplir pour calculer de nouvelles métriques à partir de métriques préexistantes.

Avant de commencer

Pour obtenir les autorisations nécessaires pour calculer des métriques à partir d'autres métriques, demandez à l'administrateur IAM du projet de vous accorder l'un des rôles suivants :

  • Éditeur de règles de surveillance : permet de modifier les ressources personnalisées MonitoringRule. Demandez le rôle Éditeur de règles de surveillance (monitoringrule-editor).
  • Lecteur de règles de surveillance : affiche les ressources personnalisées MonitoringRule. Demandez le rôle Lecteur des règles de surveillance (monitoringrule-viewer).

Créer des règles d'enregistrement

Définissez un nom d'enregistrement et une expression valide qui évalue la règle. L'expression doit se résoudre en une valeur numérique pour être enregistrée en tant que nouvelle métrique. Déployez la ressource personnalisée dans l'espace de noms de votre projet sur le cluster d'administrateur pour créer les règles d'enregistrement.

Pour en savoir plus sur les règles d'enregistrement, consultez https://grafana.com/docs/loki/latest/rules/.

Suivez les étapes ci-dessous pour créer des règles d'enregistrement et calculer des métriques dans l'espace de noms de votre projet :

  1. Ouvrez ou créez le fichier YAML pour la RP à l'aide du modèle de RP MonitoringRule pour les règles d'enregistrement de la surveillance.
  2. Dans le champ namespace du CR, saisissez l'espace de noms de votre projet.
  3. Dans le champ name, saisissez le nom de la configuration de la règle.
  4. Facultatif : Vous pouvez choisir la source du journal dans le champ source. Les options valides sont operational et audit.
  5. Dans le champ interval, saisissez le nombre de secondes correspondant à la durée de l'intervalle d'évaluation de la règle.
  6. Facultatif : Dans le champ limit, saisissez le nombre maximal d'alertes. Saisissez 0 pour définir un nombre illimité d'alertes.
  7. Dans le champ recordRules, saisissez les informations suivantes pour calculer les métriques :

    • Dans le champ record, saisissez le nom de l'enregistrement. Cette valeur définit la série temporelle dans laquelle écrire la règle d'enregistrement. Il doit s'agir d'un nom de métrique valide.
    • Dans le champ expr, saisissez une expression PromQL pour la règle de métrique.

      Cette expression doit correspondre à une valeur numérique pour être enregistrée en tant que métrique.

    • Facultatif : Dans le champ labels, définissez les libellés que vous souhaitez ajouter ou remplacer sous forme de paires clé/valeur.

  8. Enregistrez le fichier YAML du CR.

  9. Déployez le CR dans l'espace de noms de votre projet du cluster d'administrateur pour créer les règles d'enregistrement.

Règles d'enregistrement MonitoringRule

Une ressource personnalisée MonitoringRule contient des règles d'enregistrement qui décrivent les conditions permettant de calculer de nouvelles métriques à partir de métriques de surveillance système préexistantes.

Le fichier YAML suivant montre un modèle pour le champ recordRules de la CR MonitoringRule.

# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringRule
metadata:
  # Choose namespace that matches the project's namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: PROJECT_NAMESPACE
  name: alerting-config
spec:
  # Rule evaluation interval
  interval: <duration>

  # Configure limit for number of alerts (0: no limit)
  # Optional, Default: 0 (no limit)
  limit: <int>

  # Configure record rules to generate new metrics based on pre-existing metrics.
  # Record rules precompute expressions that are frequently needed or computationally expensive.
  # These rules save their result as a new set of time series.
  recordRules:
    # Define which timeseries to write to (must be a valid metric name)
  - record: <string>

    # Define PromQL expression to evaluate for this rule
    expr: <string>

    # Define labels to add or overwrite
    # Optional, Map of {key, value} pairs
    labels:
      <labelname>: <labelvalue>
...

Remplacez PROJECT_NAMESPACE par l'espace de noms de votre projet.

Règles d'enregistrement LoggingRule

Un CR LoggingRule contient des règles d'enregistrement qui décrivent les conditions de calcul de nouvelles métriques basées sur des journaux préexistants.

Le fichier YAML suivant montre un modèle pour le champ recordRules de la CR LoggingRule.

# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1alpha1
kind: LoggingRule
metadata:
  # Choose namespace that matches the project's namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: g-fleetns-a
  name: alerting-config
spec:
  # Choose which log source to base alerts on (Operational/Audit/Security Logs)
  # Optional, Default: Operational
  source: <string>

  # Rule evaluation interval
  interval: <duration>

  # Configure limit for number of alerts (0: no limit)
  # Optional, Default: 0 (no limit)
  limit: <int>

  # Configure record rules to generate new metrics based on pre-existing logs.
  # Record rules generate metrics based on logs.
  # Use record rules for complex alerts, which query the same expression repeatedly every time they are evaluated.
  recordRules:
    # Define which timeseries to write to (must be a valid metric name)
  - record: <string>

    # Define LogQL expression to evaluate for this rule
    # https://grafana.com/docs/loki/latest/rules/
    expr: <string>

    # Define labels to add or overwrite
    # Optional, Map of {key, value} pairs
    labels:
      <labelname>: <labelvalue>
...