Creare nuove metriche da quelle esistenti

Questa pagina descrive come generare nuove metriche da quelle esistenti mediante il deployment di una risorsa personalizzata MonitoringRule in Google Distributed Cloud (GDC) air-gapped.

Le regole di registrazione ti consentono di precalcolare espressioni utilizzate di frequente o costose dal punto di vista computazionale, migliorando le prestazioni di dashboard e avvisi. Definite all'interno delle risorse personalizzate MonitoringRule, queste regole generano nuove metriche di serie temporali a partire da metriche esistenti, migliorando l'osservabilità dei dati.

Memorizzando i risultati precalcolati, le regole di registrazione eliminano i calcoli ridondanti ogni volta che è necessaria un'espressione. Questo metodo velocizza notevolmente i tempi di esecuzione delle query, in particolare per dashboard e avvisi complessi che richiedono valutazioni ripetute della stessa espressione. In sostanza, le risorse MonitoringRule ti consentono di derivare nuove metriche da quelle esistenti specificando i calcoli necessari all'interno delle regole di registrazione.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate MonitoringRule, chiedi all'amministratore IAM dell'organizzazione o all'amministratore IAM del progetto di concederti uno dei ruoli MonitoringRule associati.

A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere i ruoli di creatore, editor o visualizzatore per questa risorsa in un'organizzazione o in un progetto. Per maggiori informazioni, vedi Preparare le autorizzazioni IAM.

Creare regole di registrazione

Per creare una regola di registrazione, definisci un nome per la metrica registrata e un'espressione valida che produca un valore numerico. Questa espressione, una volta valutata, genera la nuova metrica. Esegui il deployment della risorsa personalizzata MonitoringRule nello spazio dei nomi del progetto sul server dell'API Management per attivare la regola di registrazione.

Per ulteriori informazioni sulle regole di registrazione, visita la pagina https://grafana.com/docs/loki/latest/rules/.

Per creare regole di registrazione nello spazio dei nomi del progetto:

  1. Determina il progetto GDC da cui vuoi creare regole di registrazione.
  2. Crea un file YAML che definisca la risorsa personalizzata MonitoringRule.

    La specifica completa di MonitoringRule mostra un esempio di regole di registrazione basate sulle metriche. Per saperne di più, consulta la documentazione di riferimento dell'API.

  3. Sostituisci i seguenti valori nel file YAML in base alle tue esigenze:

    Nome campo Descrizione
    namespace Lo spazio dei nomi del progetto.
    name Il nome della configurazione della regola.
    interval La durata dell'intervallo di valutazione delle regole in secondi.
    limit (Facoltativo) Il numero massimo di avvisi. Imposta questo valore su 0 per avvisi illimitati.
    recordRules Le definizioni per il calcolo delle nuove metriche.
    recordRules.record Il nome del record per la nuova metrica. Il valore deve essere un nome di metrica valido che definisce la serie temporale in cui vengono memorizzati i risultati.
    recordRules.expr Un'espressione PromQL per la regola della metrica, che deve restituire un valore numerico.
    recordRules.labels (Facoltativo) Le coppie chiave-valore delle etichette da aggiungere alla nuova metrica o da sovrascrivere.
  4. Salva il file YAML.

  5. Applica la configurazione MonitoringRule al server dell'API Management all'interno dello stesso spazio dei nomi delle regole di registrazione:

    kubectl --kubeconfig KUBECONFIG_PATH apply -f MONITORING_RULE_NAME.yaml
    

    Sostituisci quanto segue:

    • KUBECONFIG_PATH: il percorso del file kubeconfig per il server dell'API di gestione.
    • MONITORING_RULE_NAME: il nome del file di definizione MonitoringRule.

Specifiche MonitoringRule complete

Una risorsa personalizzata MonitoringRule contiene regole di registrazione che descrivono le condizioni per creare nuove metriche basate su quelle esistenti per l'osservabilità.

Il seguente file YAML mostra un modello per la risorsa personalizzata MonitoringRule. Per saperne di più, consulta la documentazione di riferimento dell'API.

# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
  # Choose a namespace that matches the project namespace.
  # The alert or record is produced in the same namespace.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_RULE_NAME
spec:
  # Rule evaluation interval.
  interval: 60s

  # Configure the limit for the number of alerts.
  # A value of '0' means no limit.
  # Optional.
  # Default value: '0'
  limit: 0

  # Configure recording rules to generate new metrics based on existing metrics.
  # Recording rules precompute expressions that are frequently needed or computationally expensive.
  # Results are saved as a new set of time series.
  recordRules:
    # Define the time series where you want to write the recording rule.
    # The value must be a valid metric name.
  - record: MyMetricsName

    # Define the PromQL expression to evaluate for this rule.
    expr: rate({service_name="bob-service"} [1m])

    # Define labels to add or overwrite.
    # Map of key-value pairs.
    # Optional.
    labels:
      verb: read

Sostituisci quanto segue:

  • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
  • MONITORING_RULE_NAME: il nome del file di definizione MonitoringRule.