Ottimizzare e monitorare i costi di Google Cloud Observability

Questa pagina descrive come ottimizzare e monitorare i costi di Google Cloud Observability. Per le informazioni sui prezzi, consulta la pagina Prezzi di Google Cloud Observability.

Potrebbero interessarti anche i seguenti documenti:

Ottimizza

Questa sezione fornisce indicazioni su come ridurre o ottimizzare i costi associati a Cloud Logging, Cloud Trace e Google Cloud Managed Service per Prometheus.

Ridurre l'archiviazione dei log

Per ridurre i costi di archiviazione di Cloud Logging, configura i filtri di esclusione sui sink di log per escludere il routing di determinati log. I filtri di esclusione possono rimuovere tutte le voci di log corrispondenti al filtro oppure solo una percentuale dei log. Quando una voce di log corrisponde a un filtro di esclusione di un sink, il sink non esegue il routing della voce di log alla destinazione. Le voci dei log escluse non vengono conteggiate ai fini dell'allocazione di spazio di archiviazione. Per istruzioni sull'impostazione dei filtri di esclusione, consulta Esclusioni dei log.

Un'altra opzione per ridurre i costi di archiviazione di Cloud Logging è il routing dei log al di fuori di Cloud Logging verso una destinazione supportata. Cloud Logging non addebita costi per il routing dei log verso le destinazioni supportate. Tuttavia, potrebbero essere addebitati costi quando i log vengono ricevuti da una destinazione:

Per informazioni sul routing dei log al di fuori di Cloud Logging, consulta la pagina Instradare i log verso destinazioni supportate.

Ottimizza i costi di Managed Service per Prometheus

I prezzi di Managed Service per Prometheus sono concepiti per essere controllabili. Poiché gli addebiti avvengono per campione, puoi utilizzare i seguenti metodi per controllare i costi:

  • Periodo di campionamento: la modifica del periodo di scraping delle metriche da 15 a 60 secondi può comportare un risparmio sui costi del 75%, senza sacrificare la cardinalità. Puoi configurare i periodi di campionamento in base al job, al target o a livello globale.

  • Filtraggio: puoi utilizzare i filtri per ridurre il numero di campioni inviati al datastore globale del servizio. Per ulteriori informazioni, consulta Filtraggio delle metriche esportate. Utilizza le configurazioni di rietichettatura delle metriche nella configurazione di scraping di Prometheus per rilasciare le metriche al momento dell'importazione, in base ai matcher delle etichette.

  • Mantieni dati locali ad alta cardinalità e a basso valore. Puoi eseguire Prometheus standard insieme al servizio gestito, utilizzando le stesse configurazioni di scraping, e conservare in locale i dati che non vale la pena inviare al datastore globale del servizio.

I prezzi di Managed Service per Prometheus sono concepiti per essere prevedibili.

  • Non vengono addebitati costi se hai istogrammi sparsi. I campioni vengono conteggiati solo per il primo valore diverso da zero e, successivamente, quando il valore del bucketn è maggiore del valore del bucketn-1: Ad esempio, un istogramma con valori 10 10 13 14 14 14 viene conteggiato come tre campioni per il primo, il terzo e il quarto bucket.

    A seconda del numero di istogrammi e del loro utilizzo, l'esclusione dai prezzi dei bucket invariati in genere potrebbe comportare un numero di campioni ridotto del 20%-40% rispetto al numero assoluto indicato dai bucket dell'istogramma ai fini della fatturazione.

  • Con i prezzi per campione, non vengono addebitati costi per i container a scalabilità rapida e non scalabili, prerilasciabili o temporanei, come quelli creati da HPA o GKE Autopilot.

    Se Managed Service per Prometheus addebitasse in base alla metrica, pagheresti per la cardinalità di un intero mese, in una sola soluzione, ogni volta che viene avviato un nuovo container. Con i prezzi per campione, paghi solo quando il container è in esecuzione.

Query, incluse le query di avviso

Tutte le query inviate dall'utente, incluse quelle inviate durante l'esecuzione delle regole di registrazione di Prometheus, vengono addebitate tramite chiamate all'API Cloud Monitoring. Per la tariffa attuale, consulta la tabella della sezione Riepilogo dei prezzi di Google Cloud Managed Service per Prometheus o Riepilogo dei prezzi di Cloud Monitoring.

Ridurre l'utilizzo delle tracce

Per controllare il volume di importazione degli intervalli di Trace, puoi gestire la frequenza di campionamento delle tracce per bilanciare la quantità di tracce necessaria per l'analisi delle prestazioni e il livello di tolleranza dei costi.

Per i sistemi a traffico elevato, la maggior parte dei clienti può effettuare il campionamento con una frequenza di 1 traccia per 1000 transazioni o persino di 1 per 10.000 transazioni e disporre comunque di informazioni sufficienti per l'analisi delle prestazioni.

La frequenza di campionamento viene configurata con le librerie client di Cloud Trace.

Ridurre la fattura degli avvisi

A partire dal 1° maggio 2026, Cloud Monitoring inizierà ad addebitare costi per l'utilizzo dei criteri di avviso. Per informazioni sul modello di prezzi, vedi Prezzi per gli avvisi.

Questo documento descrive le strategie che puoi utilizzare per ridurre i costi per gli avvisi.

Consolida le policy di avviso per operare su più risorse

A causa del costo di 0,10 $per condizione, è più conveniente utilizzare un criterio di avviso per monitorare più risorse che utilizzare un criterio di avviso per monitorare ogni risorsa. Considera i seguenti esempi:

Esempio 1

Dati

  • 100 VM
  • Ogni VM emette una metrica, metric_name
  • metric_name ha un'etichetta con 10 valori
Criterio di avviso
  • Una condizione di avviso
  • Aggrega le condizioni a livello di VM
  • Periodo di esecuzione di 30 secondi
Costi risultanti
  • Costo della condizione: 1 condizione * 0,10 $ al mese = 0,10 $ al mese
  • Costo delle serie temporali: 100 serie temporali restituite per periodo * 86.400 periodi al mese = 8,6 milioni di serie temporali restituite al mese * 0,35 $ per milione di serie temporali = 3,02 $ al mese
  • Costo totale: 3,12$al mese

Esempio 2

Dati

  • 100 VM
  • Ogni VM emette una metrica, metric_name
  • metric_name ha un'etichetta con 10 valori
Criteri di avviso
  • 100 condizioni
  • Ogni condizione viene filtrata e aggregata a una VM
  • Periodo di esecuzione di 30 secondi
Costi risultanti
  • Costo della condizione: 100 condizioni * 0,10 $ al mese = 10 $al mese
  • Costo delle serie temporali: 100 condizioni * 1 serie temporale restituita per condizione per periodo * 86.400 periodi al mese = 8,6 milioni di serie temporali restituite al mese * 0,35 $ per milione di serie temporali = 3,02 $ al mese
  • Costo totale: 13,02$al mese

In entrambi gli esempi, monitori lo stesso numero di risorse. Tuttavia, l'esempio 2 utilizza 100 policy di avviso, mentre l'esempio 1 ne utilizza solo una. Di conseguenza, l'esempio 1 costa quasi 10 $in meno al mese.

Aggrega solo al livello per cui devi generare avvisi

L'aggregazione a livelli di granularità più elevati comporta costi superiori rispetto all'aggregazione a livelli di granularità inferiori. Ad esempio, l'aggregazione a livello di progetto Google Cloud è più economica dell'aggregazione a livello di cluster, e l'aggregazione a livello di cluster è più economica dell'aggregazione a livello di cluster e spazio dei nomi.

Considera i seguenti esempi:

Esempio 1

Dati

  • 100 VM
  • Ogni VM emette una metrica, metric_name
  • metric_name ha un'etichetta con 10 valori
Criterio di avviso
  • Una condizione di avviso
  • Aggrega le condizioni a livello di VM
  • Periodo di esecuzione di 30 secondi
Costi risultanti
  • Costo della condizione: 1 condizione * 0,10 $ al mese = 0,10 $ al mese
  • Costo delle serie temporali: 100 serie temporali restituite per periodo * 86.400 periodi al mese = 8,6 milioni di serie temporali restituite al mese * 0,35 $ per milione di serie temporali = 3,02 $ al mese
  • Costo totale: 3,12$al mese

Esempio 4

Dati

  • 100 VM, in cui ogni VM appartiene a un servizio
  • Cinque servizi totali
  • Ogni VM emette una metrica, metric_name
  • metric_name ha un'etichetta con 10 valori
Criterio di avviso
  • Una condizione
  • Aggrega le condizioni al livello di servizio
  • Periodo di esecuzione di 30 secondi
Costi risultanti
  • Costo della condizione: 1 condizione * 0,10 $ al mese = 0,10 $ al mese
  • Costo delle serie temporali: 5 serie temporali restituite per periodo * 86.400 periodi al mese = 432.000 serie temporali restituite al mese * 0,35 $ per milione di serie temporali = 0,14 $ al mese
  • Costo totale: 0,24$al mese

Esempio 5

Dati

  • 100 VM
  • Ogni VM emette una metrica, metric_name
  • metric_name ha 100 etichette con 1000 valori ciascuna
Criterio di avviso
  • Una condizione
  • Aggrega le condizioni a livello di VM
  • Periodo di esecuzione di 30 secondi
Costi risultanti
  • Costo della condizione: 1 condizione * 0,10 $ al mese = 0,10 $ al mese
  • Costo delle serie temporali: 100 serie temporali restituite per periodo * 86.400 periodi al mese = 8,5 milioni di serie temporali restituite al mese * 0,35 $ per milione di serie temporali = 3,02 $ al mese
  • Costo totale: 3,12$al mese

Confronta l'esempio 1 con l'esempio 4: entrambi gli esempi operano sugli stessi dati sottostanti e hanno un'unica norma di avviso. Tuttavia, poiché i criterio di avviso nell'esempio 4 vengono aggregati al servizio, sono meno costosi rispetto ai criterio di avviso nell'esempio 1, che vengono aggregati in modo più granulare alla VM.

Inoltre, confronta l'esempio 1 con l'esempio 5: In questo caso, la cardinalità della metrica nell'esempio 5 è 10.000 volte superiore alla cardinalità della metrica nell'esempio 1. Tuttavia, poiché i criterio di avviso nell'esempio 1 e nell'esempio 5 vengono aggregati alla VM e poiché il numero di VM è lo stesso in entrambi gli esempi, gli esempi sono equivalenti in termini di prezzo.

Quando configuri i criteri di avviso, scegli i livelli di aggregazione più adatti al tuo caso d'uso. Ad esempio, se ti interessa ricevere avvisi sull'utilizzo della CPU, potresti voler eseguire l'aggregazione a livello di VM e CPU. Se ti interessa ricevere avvisi sulla latenza per endpoint, ti consigliamo di eseguire l'aggregazione a livello di endpoint.

Non inviare avvisi relativi a dati non elaborati e non aggregati

Il monitoraggio utilizza un sistema di metriche dimensionali, in cui qualsiasi metrica ha una cardinalità totale pari al numero di risorse monitorate moltiplicato per il numero di combinazioni di etichette per quella metrica. Ad esempio, se hai 100 VM che emettono una metrica e questa metrica ha 10 etichette con 10 valori ciascuna, la cardinalità totale è 100 * 10 * 10 = 10.000.

A causa del modo in cui viene scalata la cardinalità, gli avvisi sui dati non elaborati possono essere estremamente costosi. Nell'esempio precedente, vengono restituite 10.000 serie temporali per ogni periodo di esecuzione. Tuttavia, se esegui l'aggregazione alla VM, vengono restituite solo 100 serie temporali per periodo di esecuzione, indipendentemente dalla cardinalità delle etichette dei dati sottostanti.

Gli avvisi sui dati non elaborati ti espongono anche al rischio di un aumento delle serie temporali quando le tue metriche ricevono nuove etichette. Nell'esempio precedente, se un utente aggiunge una nuova etichetta alla metrica, la cardinalità totale aumenta a 100 * 11 * 10 = 11.000 serie temporali. In questo caso, il numero di serie temporali restituite aumenta di 1000 per ogni periodo di esecuzione,anche se la norma di avviso rimane invariata. Se invece esegui l'aggregazione nella VM, nonostante l'aumento della cardinalità sottostante, vengono restituite solo 100 serie temporali.

Filtrare le risposte non necessarie

Configura le condizioni in modo da valutare solo i dati necessari per le tue esigenze di avviso. Se non interverresti per risolvere un problema, escludilo dalle tue policy di avviso. Ad esempio, probabilmente non devi inviare avvisi per la VM di sviluppo di uno stagista.

Per ridurre costi e avvisi non necessari, puoi filtrare le serie temporali che non sono importanti. Puoi utilizzare le etichette dei metadati per taggare gli asset con categorie e poi filtrare le categorie di metadati non necessarie. Google Cloud

Utilizzare gli operatori di flusso principale per ridurre il numero di serie temporali restituite

Se la condizione utilizza una query PromQL o MQL, puoi utilizzare un operatore di flussi principali per selezionare un numero di serie temporali restituite con i valori più alti:

Ad esempio, una clausola topk(metric, 5) in una query PromQL limita il numero di serie temporali restituite a cinque in ogni periodo di esecuzione.

Se limiti il numero di serie temporali, potresti riscontrare dati mancanti e avvisi errati, ad esempio:

  • Se più di N serie temporali violano la soglia, perderai i dati al di fuori delle prime N serie temporali.
  • Se una serie temporale che viola la soglia si verifica al di fuori delle prime N serie temporali, i tuoi incidenti potrebbero chiudersi automaticamente nonostante la serie temporale esclusa continui a violare la soglia.
  • Le query sulle condizioni potrebbero non mostrare un contesto importante, ad esempio le serie temporali di base che funzionano come previsto.

Per mitigare questi rischi, scegli valori elevati per N e utilizza l'operatore top-streams solo nelle norme di avviso che valutano molte serie temporali, ad esempio gli avvisi per i singoli container Kubernetes.

Aumenta la durata del periodo di esecuzione (solo PromQL)

Se la condizione utilizza una query PromQL, puoi modificare la durata del periodo di esecuzione impostando il campo evaluationInterval nella condizione.

Intervalli di valutazione più lunghi comportano la restituzione di un numero inferiore di serie temporali al mese. Ad esempio, una query di condizione con un intervallo di 15 secondi viene eseguita con una frequenza doppia rispetto a una query con un intervallo di 30 secondi e una query con un intervallo di 1 minuto viene eseguita con una frequenza dimezzata rispetto a una query con un intervallo di 30 secondi.

Monitoraggio

Questa sezione descrive come monitorare i costi creando policy di avviso. Un criterio di avviso può monitorare i dati delle metriche e inviarti una notifica quando questi dati superano una soglia.

Monitora i byte di log mensili importati

Per creare un criterio di avviso che si attivi quando il numero di byte di log scritti nei bucket di log supera il limite definito dall'utente per Cloud Logging, utilizza le impostazioni seguenti.

Nuova condizione
Campo

Valore
Risorsa e metrica Nel menu Risorse, seleziona Globale.
Nel menu Categorie di metriche, seleziona Metrica basata su log.
Nel menu Metriche, seleziona Byte di log mensili inseriti.
Filtro Nessuno.
Tra le serie temporali
Aggregazione serie temporali
sum
Finestra temporale continua 60 m
Funzione finestra temporale continua max
Configura trigger di avviso
Campo

Valore
Tipo di condizione Threshold
Trigger avviso Any time series violates
Posizione soglia Above threshold
Valore soglia Sei tu a determinare il valore accettabile.
Finestra di ripetizione test Il valore minimo accettabile è di 30 minuti.

Monitorare le metriche totali importate

Non è possibile creare un avviso in base alle metriche importate mensilmente. Tuttavia, puoi creare un avviso per i tuoi costi di Cloud Monitoring. Per informazioni, vedi Configurare un avviso di fatturazione.

Monitorare gli intervalli di traccia mensili importati

Per creare un criterio di avviso che si attivi quando gli intervalli mensili importati di Cloud Trace superano un limite definito dall'utente, utilizza le impostazioni seguenti.

Nuova condizione
Campo

Valore
Risorsa e metrica Nel menu Risorse, seleziona Globale.
Nel menu Categorie di metriche, seleziona Fatturazione.
Nel menu Metriche, seleziona Intervalli di traccia mensili inseriti.
Filtro
Tra le serie temporali
Aggregazione serie temporali
sum
Finestra temporale continua 60 m
Funzione finestra temporale continua max
Configura trigger di avviso
Campo

Valore
Tipo di condizione Threshold
Trigger avviso Any time series violates
Posizione soglia Above threshold
Threshold value Sei tu a determinare il valore accettabile.
Finestra di ripetizione test Il valore minimo accettabile è di 30 minuti.

Configurare un avviso di fatturazione

Per ricevere notifiche degli addebiti fatturabili o previsti che superano un dato budget, crea un avviso nella pagina Budget e avvisi della Google Cloud console:

  1. Nella console Google Cloud , vai alla pagina Fatturazione:

    Vai a Fatturazione

    Puoi trovare questa pagina anche utilizzando la barra di ricerca.

    Se disponi di più account di fatturazione Cloud, esegui una di queste operazioni:

    • Per gestire la fatturazione Cloud per il progetto attuale, seleziona Vai all'account di fatturazione collegato.
    • Per individuare un altro account di fatturazione Cloud, seleziona Gestisci gli account di fatturazione e scegli l'account per cui vuoi impostare un budget.
  2. Nel menu di navigazione Fatturazione, seleziona Budget e avvisi.
  3. Fai clic su Crea budget.
  4. Compila i campi nella finestra di dialogo per il budget. In questa finestra di dialogo puoi selezionare progetti e prodotti Google Cloud e quindi creare un budget per la specifica combinazione. Per impostazione predefinita, riceverai una notifica al raggiungimento del 50%, 90% e 100% del budget. Per la documentazione completa, consulta Impostare budget e avvisi di spesa.