Configura etichette sulle metriche basate su log

Questo documento illustra le etichette delle metriche basate su log e spiega come creare e utilizzare le etichette sulle metriche di log.

Se hai dimestichezza con le etichette, puoi andare direttamente a Creare un'etichetta in questa pagina.

Panoramica delle etichette per le metriche basate su log

Le etichette consentono alle metriche basate su log di contenere più serie temporali, una per ogni combinazione di valori delle etichette. Tutte le metriche basate su log includono alcune etichette predefinite.

Puoi creare altre etichette definite dall'utente nelle metriche di tipo contatore e distribuzione specificando le espressioni di estrattore. Un'espressione che indica a Cloud Logging come estrarre il valore dell'etichetta dalle voci dei log. Puoi specificare il valore dell'etichetta in uno dei seguenti modi:

  • L'intero contenuto di un campo denominato nell'oggetto LogEntry.
  • Una parte di un campo denominato che corrisponde a un'espressione regolare (regexp).

Puoi estrarre le etichette dai campi integrati LogEntry, come httpRequest.status, o da uno dei campi del payload textPayload, jsonPayload o protoPayload.

Per informazioni sulle espressioni regolari, consulta la pagina relativa alla sintassi RE2.

Non inserire informazioni sensibili nell'espressione dell'estrattore e non estrarre dati sensibili nelle etichette. che vengono trattati come dati di servizio.

Limitazioni delle etichette definite dall'utente

Alle etichette definite dall'utente si applicano le seguenti limitazioni:

  • Puoi creare fino a dieci etichette definite dall'utente per metrica.

  • Dopo aver creato un'etichetta, non puoi eliminarla.

    • Puoi modificare l'espressione e la descrizione dell'etichetta che hai già creato.

    • Non puoi modificare il nome o il tipo di valore di un'etichetta che hai già creato.

  • Vengono conservati solo i primi 1024 caratteri del valore di un'etichetta.

  • Ogni metrica basata su log è limitata a circa 30.000 serie temporali attive, che dipendono dal numero di valori possibili per ogni etichetta, comprese le etichette predefinite.

    Ad esempio, se le voci di log provengono da 100 risorse come le istanze VM e definisci un'etichetta con 20 valori possibili, puoi avere fino a 2000 serie temporali per la metrica.

Se hai troppe serie temporali o troppi punti dati, i costi aumenteranno e la tua attività potrebbe essere limitata. Per ulteriori informazioni sul costo delle metriche basate su log, consulta Prezzi di Cloud Monitoring: metriche addebitabili. Per informazioni sui limiti che si applicano alle metriche basate su log, consulta Quote e limiti: metriche basate su log e Risolvere i problemi relativi alle metriche basate su log.

Etichette predefinite

Tutte le metriche basate su log hanno alcune etichette predefinite:

  • Etichette delle risorse: tutte le metriche utilizzano un oggetto di risorsa monitorata per identificare l'origine dei dati delle serie temporali. Ogni tipo di risorsa include un nome e una o più etichette. Tra gli esempi di tipi di risorse ci sono istanze VM, database Cloud SQL, bilanciatori del carico e così via.

    La risorsa e le relative etichette sono elencate separatamente dalle altre etichette delle metriche in Cloud Monitoring, ma hanno lo stesso effetto: creano serie temporali aggiuntive nella metrica. Per ulteriori informazioni, consulta la sezione Metriche, serie temporali e risorse.

  • log: questa etichetta contiene il valore della parte LOG_ID del campo logName nelle voci di log.

  • severity: questa etichetta contiene il valore del campo severity nelle voci di log. L'etichetta di gravità è fornita per impostazione predefinita solo nelle metriche basate su log di sistema.

Esempio: utilizzare Metrics Explorer

Lo screenshot seguente di Metrics Explorer mostra le etichette di una delle metriche basate su log di sistema. Per visualizzare l'elenco delle etichette, fai clic all'interno della casella di testo Filtro:

Metrics Explorer

Lo screenshot mostra le seguenti informazioni:

  • Metrics Explorer utilizza le serie temporali della metrica logging/log_entry_count e del tipo di risorsa gce_instance: istanze VM di Compute Engine.

    Questa metrica contiene serie temporali anche di altri tipi di risorse, ma Metrics Explorer consente di esaminare un solo tipo di risorsa alla volta.

  • Il tipo di risorsa gce_instance ha tre etichette di risorsa: project_id, instance_id e zone.

  • La metrica ha due etichette di metrica: log e severity. In questa sezione vengono visualizzate anche le etichette definite dall'utente.

Crea un'etichetta

Le etichette definite dall'utente vengono create al momento della creazione della metrica. Sia le metriche dei contatori sia le metriche di distribuzione possono avere etichette. Non puoi aggiungere etichette alle metriche basate su log di sistema.

Console

  1. Quando crei una metrica basata su log, il riquadro Crea metrica di log include un'opzione per aggiungere etichette.

  2. Fai clic su Aggiungi etichetta.

    Suggerimento: per visualizzare i campi e i valori all'interno di una voce di log:

    1. Nella sezione Selezione filtro, fai clic su Anteprima log.
    2. Nel riquadro Visualizza log, scegli una voce di log e fai clic sull'espansione accanto alla voce.
    3. Fai clic su Espandi campi nidificati.
  3. Imposta i seguenti campi nella sezione Etichette:

    1. Nome etichetta: inserisci un nome per l'etichetta. Ad esempio, ID.

      Il nome deve soddisfare i seguenti criteri:

      • Non superare i 100 caratteri.
      • Trova l'espressione regolare [a-zA-Z][a-zA-Z0-9_]*.
      • Questi elementi non devono essere semplici dalla stringa "log".
    2. Descrizione: descrivi l'etichetta. Prova a essere il più specifico possibile in merito al formato dei valori dei log previsti. Ad esempio, Instance number.

    3. Tipo di etichetta: scegli Stringa, booleana o Numero intero.

    4. Nome campo: inserisci il nome del campo di voce di log che contiene il valore dell'etichetta. Durante la digitazione vengono offerte varie scelte. In questo esempio, il campo è:

      labels."compute.googleapis.com/resource_id"
      
    5. Espressione regolare: se il valore dell'etichetta è costituito dall'intero contenuto del campo, è possibile lasciare vuoto questo campo. Altrimenti, specifica un gruppo di acquisizione regexp che estrae il valore dell'etichetta dal valore del campo.

      Ad esempio, supponiamo che il campo contenga in genere testo come il seguente:

      The instance number is 0123456789; the ID is my-test-instance22
      

      Se vuoi che il valore dell'etichetta sia il numero di istanza, esistono molte espressioni regolari che estrarranno il numero corretto. Ad esempio, nell'espressione seguente, le parentesi sono un gruppo di acquisizione che identifica la parte del testo che verrà estratta:

      The instance number is ([0-9]+); .*
      

      Per ulteriori informazioni sulle espressioni regolari, consulta Sintassi RE2.

  4. Fai clic su Fine per creare l'etichetta. Puoi aggiungere altre etichette ripetendo questi passaggi.

  5. Per completare la creazione della metrica, fai clic su Crea metrica.

gcloud

Per creare una metrica basata su log con etichette personalizzate, devi creare un file che contenga una rappresentazione della tua definizione di LogMetric in formato JSON o YAML, incluse le etichette personalizzate. Quindi, crea la metrica chiamando il comando create con il flag --config-from-file, sostituendo FILENAME con il nome del tuo file JSON o YAML:

gcloud logging metrics create METRIC_NAME --config-from-file FILENAME

Per maggiori informazioni, consulta gcloud logging metrics create.

API

Le etichette sono specificate come parte dell'oggetto LogMetric nel corpo della richiesta delle chiamate al metodo projects.metrics.create dell'API Logging. Per informazioni sulle chiamate al metodo complete, consulta Creazione di metriche del contatore o Creazione di metriche di distribuzione.

Per ogni etichetta, devi aggiungere un segmento a entrambi i campi metricDescriptor e labelExtractors in LogMetric.

La sintassi è la seguente:

{
  ...
  metricDescriptor: {
      labels: [
        { key: LABEL_NAME, valueType: LABEL_TYPE,
          description: LABEL_DESCRIPTION },
        ...
      ]
  },
  labelExtractors: {
    LABEL_NAME: EXTRACTOR_EXPRESSION,
    ...
  },
}

Gli elementi di sintassi hanno il seguente significato:

  • LABEL_NAME: il nome dell'etichetta come stringa.
  • VALUE_TYPE: il tipo di etichetta: STRING, BOOL o INT64.
  • LABEL_DESCRIPTION: una descrizione dell'etichetta.
  • EXTRACTOR_EXPRESSION: una stringa che combina il nome del campo della voce di log con un'espressione regolare facoltativa. L'espressione dell'estrattore può essere una delle seguenti:

    EXTRACT(FIELD)
    
    REGEXP_EXTRACT(FIELD, REGEXP)
    

Per ulteriori informazioni sulle espressioni regolari, consulta la pagina relativa alla sintassi RE2.

Di seguito è riportato un esempio con due etichette:

{
  ...
  metricDescriptor: {
      labels: [
        { key: "label_name_a", valueType: STRING },
        { key: "label_name_b", valueType: INT64 },
      ]
  },
  labelExtractors: {
    "label_name_a":
      "REGEXP_EXTRACT(jsonPayload.field_a, \"before ([a-zA-Z ]+) after\")",
    "label_name_b": "EXTRACT(jsonPayload.field_b)",
  },
}

Per ulteriori dettagli, consulta il tipo LogMetric.