Metriche personalizzate

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Le metriche personalizzate consentono di acquisire dati specifici dell'applicazione o del sistema lato client. Le metriche integrate raccolte da Cloud Monitoring possono fornirti informazioni sulla latenza del backend o sull'utilizzo del disco, ma non indicano, ad esempio, quante routine di background sono state generate dalla tua applicazione. Puoi anche creare metriche basate sui contenuti delle voci di log. Per informazioni su questi tipi di metriche personalizzate, consulta la panoramica delle metriche basate su log.

Le metriche personalizzate, note anche come metriche specifiche per le applicazioni, ti consentono di definire e raccogliere le informazioni che le metriche integrate di Cloud Monitoring non offrono. Per acquisire queste metriche, puoi utilizzare un'API fornita da una libreria per strutturare il codice e quindi inviare le metriche a un'applicazione di backend come Cloud Monitoring.

Puoi creare metriche personalizzate utilizzando direttamente l'API Cloud Monitoring. Tuttavia, ti consigliamo di utilizzare OpenCensus. Per informazioni su come creare metriche personalizzate, consulta i seguenti documenti:

  • Creare metriche personalizzate con OpenCensus descrive come utilizzare OpenCensus, una libreria di monitoraggio e tracciamento open source. Questa libreria ti consente di creare metriche personalizzate, aggiungere dati sulle metriche a tali metriche ed esportarne i dati in Cloud Monitoring.

  • Creare metriche personalizzate con l'API descrive come creare metriche personalizzate utilizzando l'API Cloud Monitoring e come aggiungere dati delle metriche a tali metriche. Questo documento illustra come utilizzare l'API Monitoring con gli esempi Utilizzo di API Explorer, C#, Go, Java, Node.js, PHP, Python e Ruby.

Per quanto riguarda Cloud Monitoring, puoi utilizzare metriche personalizzate come le metriche integrate. Puoi tracciarli, impostarli, leggere o monitorare gli avvisi. Per informazioni sulla lettura dei dati delle metriche, consulta i seguenti documenti:

  • La sezione Sfogliare i tipi di metriche e risorse spiega come elencare e esaminare i tipi di metriche personalizzati e integrati. Ad esempio, puoi utilizzare le informazioni riportate in questo documento per elencare tutti i descrittori delle metriche personalizzate nel progetto.
  • La lettura dei dati delle metriche spiega come recuperare i dati delle serie temporali da metriche personalizzate e integrate utilizzando l'API Monitoring. Ad esempio, questo documento descrive come utilizzare l'API per ottenere l'utilizzo della CPU per istanze di macchine virtuali (VM) nel tuo progetto Google Cloud.

Google Cloud Console fornisce una pagina dedicata per visualizzare l'utilizzo delle metriche personalizzate. Per informazioni sui contenuti di questa pagina, consulta Visualizza la diagnostica delle metriche.

Descrittori di metriche per metriche personalizzate

Ogni tipo di metrica deve avere un descrittore della metrica che definisce la modalità di organizzazione dei dati. Il descrittore della metrica definisce anche le etichette della metrica e il nome della metrica. Ad esempio, gli elenchi di metriche mostrano i descrittori delle metriche per tutti i tipi di metriche integrati.

Quando usi le metriche personalizzate, Cloud Monitoring può creare il descrittore della metrica per te, utilizzando i dati della metrica che scrivi. In alternativa, puoi creare il descrittore della metrica in modo esplicito e scrivere i dati. In entrambi i casi, devi decidere come organizzare i dati della metrica.

Esempio di progettazione

Supponi di avere un programma in esecuzione su una singola macchina e che questo programma chiama programmi ausiliari A e B. Vuoi contare la frequenza con cui vengono chiamati i programmi A e B. Vuoi anche sapere quando il programma A viene chiamato più di 10 volte al minuto e quando il programma B viene chiamato più di 5 volte al minuto. Infine, supponiamo che tu abbia un unico progetto Google Cloud e che prevedi di scrivere i dati sulla base della risorsa monitorata global.

Questo esempio descrive alcuni design diversi che potresti utilizzare per le metriche personalizzate:

  • Utilizzi due metriche personalizzate: Metric-type-A conteggia le chiamate al programma A e Metric-type-B le chiamate al programma B. In questo caso, Metric-type-A contiene 1 serie temporale e Metric-type-B contiene 1 serie temporale.

    Puoi creare un singolo criterio di avviso con due condizioni oppure puoi creare due criteri di avviso, ciascuno con una condizione con questa modalità dati. Un criterio di avviso può supportare più condizioni, ma ha una singola configurazione per i canali di notifica.

    Questo modello potrebbe essere appropriato quando non ti interessano le somiglianze tra i dati delle attività monitorate. In questo esempio, le attività sono il tasso di chiamate ai programmi A e B.

  • Utilizzi una singola metrica personalizzata e un'etichetta per archiviare un identificatore di programma. Ad esempio, l'etichetta potrebbe memorizzare il valore A o B. Monitoring crea una serie temporale per ogni combinazione di etichette univoca. Pertanto, esistono una serie temporale con valore etichetta A e un'altra serie temporale con valore etichetta B.

    Come nel modello precedente, puoi creare un singolo criterio di avviso o due criteri. Tuttavia, le condizioni per il criterio di avviso sono più complesse. Una condizione che genera un incidente quando la frequenza delle chiamate al programma A supera una soglia deve utilizzare un filtro che includa solo i punti dati il cui valore dell'etichetta è A.

    Uno dei vantaggi di questo modello è che è semplice calcolare i rapporti. Ad esempio, puoi determinare la percentuale del totale dovuta alle chiamate a A.

  • Usa una sola metrica personalizzata per conteggiare il numero di chiamate, ma non utilizzi un'etichetta per registrare il programma chiamato. In questo modello è presente una singola serie temporale che combina i dati per i due programmi. Tuttavia, non puoi creare un criterio di avviso che soddisfi i tuoi obiettivi, in quanto i dati di due programmi non possono essere separati.

I primi due progetti ti consentono di soddisfare i tuoi requisiti di analisi dei dati, ma l'ultimo progetto non lo fa.

Per informazioni sulla creazione dei descrittori delle metriche, consulta l'articolo Creare descrittori delle metriche.

Nomi delle metriche personalizzate

Quando crei una metrica personalizzata, definisci un identificatore di stringa che rappresenta il tipo di metrica. Questa stringa deve essere univoca tra le metriche personalizzate nel progetto Google Cloud e deve utilizzare un prefisso che contrassegni la metrica come metrica definita dall'utente. Per Monitoring, i prefissi consentiti sono custom.googleapis.com/, external.googleapis.com/user e external.googleapis.com/prometheus. Il prefisso è seguito dal nome che descrive cosa stai raccogliendo. Per informazioni dettagliate sul modo consigliato per assegnare un nome a una metrica personalizzata, consulta Convenzioni di denominazione delle metriche. Di seguito sono riportati alcuni esempi dei due tipi di identificatori per i tipi di metriche:

    custom.googleapis.com/cpu_utilization
    custom.googleapis.com/instance/cpu/utilization

Nell'esempio precedente, il prefisso custom.googleapis.com indica che entrambe le metriche sono metriche personalizzate. Entrambi gli esempi si riferiscono a metriche che misurano l'utilizzo della CPU, ma utilizzano modelli organizzativi diversi. Quando prevedi un numero elevato di metriche personalizzate, ti consigliamo di utilizzare una struttura di denominazione gerarchica come quella utilizzata dal secondo esempio.

Tutti i tipi di metriche hanno identificatori univoci a livello globale, denominati nomi delle risorse. La struttura di un nome di risorsa per un tipo di metrica è:

projects/PROJECT_ID/metricDescriptors/METRIC_TYPE

dove METRIC_TYPE è l'identificatore di stringa del tipo di metrica. Se gli esempi di metriche precedenti vengono creati nel progetto my-project-id, i nomi delle risorse per queste metriche sarebbero i seguenti:

    projects/my-project-id/metricDescriptors/custom.googleapis.com/cpu_utilization
    projects/my-project-id/metricDescriptors/custom.googleapis.com/instance/cpu/utilization

Nome o tipo? Nel descrittore della metrica, il campo name memorizza il nome della risorsa del tipo di metrica, mentre il campo type memorizza la stringa METRIC_TYPE.

Tipi di risorse monitorate per metriche personalizzate

Quando scrivi i dati in una serie temporale, devi indicare la provenienza dei dati. Per specificare l'origine dei dati, scegli un tipo di risorsa monitorata che rappresenta l'origine dei dati e utilizzalo per descrivere l'origine specifica. La risorsa monitorata non fa parte del tipo di metrica. Invece, le serie temporali in cui scrivi i dati includono un riferimento al tipo di metrica e un riferimento alla risorsa monitorata. Il tipo di metrica descrive i dati, mentre la risorsa monitorata descrive la provenienza dei dati.

Valuta la risorsa monitorata prima di creare il descrittore della metrica. Il tipo di risorsa monitorata che utilizzi influisce sulle etichette che devi includere nel descrittore della metrica. Ad esempio, la risorsa VM di Compute Engine contiene etichette per l'ID progetto, l'ID istanza e la zona dell'istanza. Di conseguenza, se prevedi di scrivere una metrica personalizzata rispetto a una risorsa VM di Compute Engine, le etichette della risorsa includono l'ID istanza, in modo da non avere bisogno di un'etichetta per l'ID istanza nel descrittore della metrica.

Tutti i punti dati della metrica devono essere associati a un oggetto risorsa monitorato. I punti provenienti da diversi oggetti delle risorse monitorate vengono conservati in serie temporali diverse.

Devi utilizzare uno dei seguenti tipi di risorse monitorate con le metriche personalizzate:

Una prassi comune è utilizzare gli oggetti monitorati delle risorse che rappresentano le risorse fisiche in cui è in esecuzione il codice dell'applicazione. Questo approccio presenta diversi vantaggi:

  • Ottieni un rendimento migliore rispetto all'utilizzo di un singolo tipo di risorsa.
  • Evita di utilizzare dati non ordinati dovuti a più processi che scrivono nella stessa serie temporale.
  • Puoi raggruppare i dati della metrica personalizzata con altri dati della metrica provenienti dalle stesse risorse.

global e risorse generiche

I tipi di risorse generic_task e generic_node sono utili nelle situazioni in cui nessuno dei tipi di risorse più specifici è appropriato. Il tipo generic_task è utile per definire risorse simili a un'attività, come le applicazioni. Il tipo generic_node è utile per definire risorse simili a nodi, come le macchine virtuali. Entrambi i tipi generic_* hanno diverse etichette comuni che puoi utilizzare per definire oggetti delle risorse univoci, il che ne semplifica l'utilizzo nei filtri delle metriche per aggregazioni e riduzioni.

Al contrario, il tipo di risorsa global ha solo etichette project_id e location. Se hai molte origini di metriche all'interno di un progetto, l'utilizzo dello stesso oggetto risorsa di global può causare conflitti e sovrascritture dei dati delle metriche.

Metodi API che supportano le metriche personalizzate

La seguente tabella mostra i metodi nell'API Monitoring che supportano le metriche personalizzate e i metodi che supportano le metriche integrate:

Metodo API Monitoring Utilizzare con
metriche personalizzate
Utilizzare con
metriche integrate
monitoredResourceDescriptors.get
monitoredResourceDescriptors.list
metricDescriptors.get
metricDescriptors.list
timeSeries.list
timeSeries.create
metricDescriptors.create
metricDescriptors.delete

Limiti e latenze

Per i limiti relativi alle metriche personalizzate e alla conservazione dei dati, consulta la sezione Quote e limiti.

Per conservare i dati delle metriche oltre il periodo di conservazione, devi copiarli manualmente in un'altra posizione, ad esempio Cloud Storage o BigQuery.

Per informazioni sulle latenze associate alla scrittura di dati nelle metriche personalizzate, consulta Latenza dei dati delle metriche.

Passaggi successivi