Controllo e attribuzione dei costi

Google Cloud Managed Service per Prometheus addebita il numero di campioni importati in Cloud Monitoring e per le richieste di lettura all'API Monitoring. Il numero di campioni importati è il fattore principale che incide sui tuoi costi.

Questo documento descrive come controllare i costi associati alla metrica e come identificare le origini dell'importazione di volumi elevati.

Per ulteriori informazioni sui prezzi di Managed Service per Prometheus, consulta il riepilogo dei prezzi di Managed Service per Prometheus.

Visualizzare la fattura

Per visualizzare la fattura di Google Cloud:

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

    Vai a Fatturazione

  2. Se hai più di un account di fatturazione, seleziona Vai alla fatturazione collegata per visualizzare l'account di fatturazione del progetto attuale. Per individuare un Account di fatturazione diverso, seleziona Gestisci account di fatturazione e scegli l'account per il quale vuoi ricevere i report sull'utilizzo.

  3. Nella sezione Gestione dei costi della navigazione Fatturazione seleziona Report.

  4. Dal menu Servizi, seleziona l'opzione Cloud Monitoring.

  5. Dal menu SKU, seleziona le seguenti opzioni:

    • Campioni di Prometheus importati
    • Monitoraggio delle richieste API

Il seguente screenshot mostra il report sulla fatturazione per Managed Service per Prometheus da un progetto:

Il report di fatturazione per Managed Service per Prometheus mostra le metriche attuali e
l'utilizzo previsto.

Riduci i costi

Per ridurre i costi associati all'utilizzo di Managed Service per Prometheus, puoi procedere nel seguente modo:

  • Riduci il numero di serie temporali inviate al servizio gestito di filtrando i dati delle metriche generati.
  • Riduci il numero di campioni raccolti modificando lo scraping intervallo di tempo.
  • Limita il numero di campioni da una configurazione errata ad alta cardinalità metrics.

Riduci il numero di serie temporali

La documentazione open source di Prometheus consiglia raramente di filtrare il volume delle metriche, il che è ragionevole quando i costi sono legati ai costi delle macchine. Ma quando si paga un fornitore di servizi gestiti per unità, l'invio possono causare costi inutilmente alti.

Gli esportatori inclusi in kube-prometheus progetto: kube-state-metrics servizio in particolare, può emettere molti dati metriche. Ad esempio, il servizio kube-state-metrics emette centinaia di metriche, molti dei quali potrebbero essere completamente privi di valore per i consumatori. R nuovo cluster a tre nodi mediante l'invio del progetto kube-prometheus di circa 900 campioni al secondo a Managed Service per Prometheus. Filtrare queste metriche estranee da solo potrebbe essere sufficiente per ricevere la fattura fino a un livello accettabile.

Per ridurre il numero di metriche, puoi:

  • Modifica le tue configurazioni di scraping per eseguire lo scraping di meno destinazioni.
  • Filtra le metriche raccolte come descritto di seguito:

Se utilizzi il servizio kube-state-metrics, potresti aggiungere un Regola di rietichettatura di Prometheus con keep un'azione. Per la raccolta gestita, questa regola viene inserita in PodMonitoring o Definizione di ClusterPodMonitoring. Per raccolta con deployment autonomo, questa regola viene applicata nello scrape di Prometheus config o Definizione di ServiceMonitor (ad operatore Prometheus).

Ad esempio, l'utilizzo del seguente filtro su un nuovo cluster a tre nodi riduce il volume del campione di circa 125 campioni al secondo:

  metricRelabeling:
  - action: keep
    regex: kube_(daemonset|deployment|pod|namespace|node|statefulset|persistentvolume|horizontalpodautoscaler)_.+
    sourceLabels: [__name__]

Il filtro precedente utilizza un'espressione regolare per specificare quali metriche conservare in base al nome della metrica. Ad esempio, metriche il cui nome inizia con kube_daemonset_ vengono conservati. Puoi anche specificare un'azione di drop, che filtra le metriche che corrispondono all'espressione regolare.

A volte, potresti ritenere che un intero esportatore non sia importante. Ad esempio: il pacchetto kube-prometheus installa il seguente servizio esegue il monitoraggio un valore predefinito, molti dei quali non sono necessari in un ambiente gestito:

  • alertmanager
  • coredns
  • grafana
  • kube-apiserver
  • kube-controller-manager
  • kube-scheduler
  • kube-state-metrics
  • kubelet
  • node-exporter
  • prometheus
  • prometheus-adapter
  • prometheus-operator

Per ridurre il numero di metriche da esportare, puoi eliminare, disattivare o interrompi lo scraping dei monitor dei servizi che non ti servono. Ad esempio, la disattivazione il monitoraggio del servizio kube-apiserver su un nuovo cluster a tre nodi riduce il volume del campione di circa 200 campioni al secondo.

Riduci il numero di campioni raccolti

Gli addebiti di Managed Service per Prometheus vengono calcolati su base campione. Puoi Ridurre il numero di campioni importati aumentando la lunghezza del campionamento punto. Ad esempio:

  • La modifica di un periodo di campionamento di 10 secondi in un periodo di campionamento di 30 secondi può ridurre il volume del campione del 66%, senza molte perdite di informazioni.
  • La modifica di un periodo di campionamento di 10 secondi in un periodo di campionamento di 60 secondi può ridurre il volume del campione dell'83%.

Per informazioni su come vengono conteggiati i campioni e come viene influisce sul numero di campioni. Consulta Esempi di prezzi basati su esempi importati.

Di solito, puoi impostare l'intervallo di scraping in base al job o al target.

Per la raccolta gestita, imposti l'intervallo di scraping nella PodMonitoring risorsa utilizzando il campo interval. Per la raccolta di cui è stato eseguito il deployment autonomo, imposti l'intervallo di campionamento nello scrape , di solito impostando un campo interval o scrape_interval.

Configura l'aggregazione locale (solo raccolta di cui è stato eseguito il deployment autonomo)

Se configuri il servizio utilizzando la raccolta di cui è stato eseguito il deployment autonomo, ad esempio con kube-prometheus, prometheus-operator oppure eseguendo il deployment dell'immagine, potrai ridurre gli esempi inviati a Managed Service per Prometheus aggregando metriche ad alta cardinalità localmente. Puoi utilizza le regole di registrazione per aggregare le etichette come instance e utilizzare il flag --export.match o l'ambiente EXTRA_ARGS per inviare solo dati aggregati Monarca.

Ad esempio, supponiamo di avere tre metriche: high_cardinality_metric_1, high_cardinality_metric_2, e low_cardinality_metric. Vuoi ridurre il numero di campioni inviati per high_cardinality_metric_1 ed elimina tutti i campioni inviati per high_cardinality_metric_2, mantenendo tutti i dati non elaborati archiviati localmente (ad esempio per scopi di avviso). La tua configurazione potrebbe avere un aspetto simile a questo:

  • Esegui il deployment dell'immagine Managed Service per Prometheus.
  • Configura le tue configurazioni di scraping per eseguire lo scraping di tutti i dati non elaborati il server locale (utilizzando il numero di filtri desiderato).
  • Configura le regole di registrazione per eseguire le aggregazioni locali high_cardinality_metric_1 e high_cardinality_metric_2, forse di aggregando l'etichetta instance o un numero qualsiasi di metriche delle etichette, a seconda di ciò che offre la migliore riduzione nel numero di serie temporali non necessarie. Puoi eseguire una regola simile alla seguente, che elimina instance e somma le serie temporali risultanti con le etichette rimanenti:

    record: job:high_cardinality_metric_1:sum
    expr: sum without (instance) (high_cardinality_metric_1)
    

    Vedi gli operatori di aggregazione nella documentazione di Prometheus per altre opzioni di aggregazione.

  • Esegui il deployment dell'immagine Managed Service per Prometheus con quanto segue flag di filtro, che impedisce ai dati non elaborati di l'invio a Monarch delle metriche elencate:

    --export.match='{__name__!="high_cardinality_metric_1",__name__!="high_cardinality_metric_2"}'
    

    Il flag export.match di esempio utilizza selettori separati da virgole con l'elemento != per filtrare i dati non elaborati indesiderati. Se aggiungi un'altra registrazione per aggregare altre metriche ad alta cardinalità, devi aggiungere anche nuovo selettore __name__ al filtro, in modo che i dati non elaborati vengano eliminati. Di utilizzando un singolo flag contenente più selettori con l'operatore != per escludere i dati indesiderati, devi modificare il filtro solo quando crei una nuova aggregazione anziché ogni volta che modifichi o aggiungi una configurazione di scrape.

    Alcuni metodi di deployment, come Prometheus-Operator, richiede di omettere le virgolette singole che racchiudono le parentesi.

Questo flusso di lavoro potrebbe comportare un overhead operativo durante la creazione e la gestione regole di registrazione e export.match flag, ma è probabile che tu possa di volume concentrandosi solo su metriche con cardinalità eccezionalmente elevata. Per informazioni sull'identificazione delle metriche che potrebbero trarre vantaggio pre-aggregazione, consulta Identificare le metriche a volume elevato.

Non implementare la federazione quando utilizzi Managed Service per Prometheus. Questo flusso di lavoro rende obsoleto l'utilizzo dei server federazione, in quanto un singolo deployment è stato eseguito autonomamente Il server Prometheus può eseguire qualsiasi aggregazione a livello di cluster di cui potresti avere bisogno. La federazione potrebbe causare effetti imprevisti, ad esempio metriche di tipo "sconosciuto" e il volume delle importazioni è raddoppiato.

Limita i campioni da metriche ad alta cardinalità (solo raccolta con deployment autonomo)

Puoi creare metriche a cardinalità estremamente elevata aggiungendo etichette che un numero elevato di valori potenziali, come l'ID utente o l'indirizzo IP. Tale le metriche possono generare un numero molto elevato di campioni. Utilizzo delle etichette un numero elevato di valori è generalmente un errore di configurazione. Puoi evita metriche ad alta cardinalità nei raccoglitori di cui è stato eseguito il deployment autonomo impostando un valore sample_limit nelle configurazioni di scraping.

Se utilizzi questo limite, ti consigliamo di impostarlo su un valore in modo da individuare solo metriche palesemente erroneamente configurate. Qualsiasi campione oltre tale limite vengono eliminati e può essere molto difficile diagnosticare i problemi a causa del superamento del limite.

L'utilizzo di un limite del campione non è un buon modo per gestire l'importazione di un campione, ma il limite può proteggerti da errori di configurazione accidentali. Per ulteriori informazioni le informazioni, vedi Utilizzo di sample_limit per evitare il sovraccarico.

Identificare e attribuire i costi

Puoi usare Cloud Monitoring per identificare le metriche Prometheus che sono scrivendo il maggior numero di campioni. Queste metriche contribuiscono maggiormente ai tuoi costi. Dopo aver identificato le metriche più costose, puoi modifica le tue configurazioni di scrape per filtrare queste metriche in modo appropriato.

La pagina Gestione delle metriche di Cloud Monitoring fornisce informazioni che può aiutarti a controllare l'importo speso per le metriche addebitabili senza influire sull'osservabilità. La pagina Gestione delle metriche riporta le seguenti informazioni:

  • Volumi di importazione per la fatturazione basata sia su byte che su campioni, nelle varie metriche domini e per singole metriche.
  • Dati su etichette e cardinalità delle metriche.
  • Utilizzo di metriche nei criteri di avviso e nelle dashboard personalizzate.
  • Percentuale di errori di scrittura delle metriche.

Per visualizzare la pagina Gestione delle metriche, segui questi passaggi:

  1. Nella console Google Cloud, vai alla Pagina Gestione delle metriche:

    Vai a Gestione delle metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

  2. Nella barra degli strumenti, seleziona la finestra temporale. Per impostazione predefinita, La pagina Gestione delle metriche mostra informazioni sulle metriche raccolte. nel giorno precedente.

Per saperne di più sulla pagina Gestione delle metriche, consulta Visualizza e gestisci l'utilizzo delle metriche.

Le seguenti sezioni descrivono i metodi per analizzare il numero di campioni che puoi stanno inviando a Managed Service per Prometheus e attribuiscono volumi elevati a metriche specifiche, spazi dei nomi Kubernetes e regioni Google Cloud.

Identifica metriche di volume elevato

Per identificare le metriche Prometheus con i maggiori volumi di importazione, le seguenti:

  1. Nella console Google Cloud, vai alla Pagina Gestione delle metriche:

    Vai a Gestione delle metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

  2. Nel prospetto Campioni fatturabili importati: fai clic su Visualizza grafici.
  3. Individua il grafico Importazione del volume dello spazio dei nomi e fai clic su.  Altre opzioni del grafico.
  4. Seleziona l'opzione del grafico Visualizza in Esplora metriche.
  5. Nel riquadro Builder di Metrics Explorer, modifica i campi come segue:
      .
    1. Nel campo Metrica, verifica che le seguenti risorse e e la metrica selezionata:
      Metric Ingestion Attribution e Samples written by attribution id.
    2. Per l'opzione Aggregazione seleziona sum.
    3. Per il campo per, seleziona le seguenti etichette:
        .
      • attribution_dimension
      • metric_type
    4. Per il campo Filtro, utilizza attribution_dimension = namespace. Devi eseguire questa operazione dopo aver aggregato i dati tramite Etichetta attribution_dimension.

    Il grafico risultante mostra i volumi di importazione per ciascun tipo di metrica.

  6. Per vedere il volume di importazione per ciascuna delle metriche, nella sezione Attiva/disattiva Tabella del grafico per entrambe, seleziona Entrambe. La tabella mostra il volume importato per ogni metrica nel Colonna Valore.
  7. Fai clic due volte sull'intestazione della colonna Valore per ordinare le metriche in base a un volume di importazione decrescente.

Il grafico risultante, che mostra le tue metriche principali per volume classificati per significa che ha l'aspetto del seguente screenshot: Il grafico configurato mostra il volume di importazione delle metriche per ogni
          o una metrica di valutazione.

Identificare gli spazi dei nomi ad alto volume

Per attribuire il volume di importazione a specifici spazi dei nomi Kubernetes, procedi nel seguente modo:

  1. Nella console Google Cloud, vai alla Pagina Gestione delle metriche:

    Vai a Gestione delle metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

  2. Nel prospetto Campioni fatturabili importati: fai clic su Visualizza grafici.
  3. Individua il grafico Importazione del volume dello spazio dei nomi e fai clic su.  Altre opzioni del grafico.
  4. Seleziona l'opzione del grafico Visualizza in Esplora metriche.
  5. Nel riquadro Builder di Metrics Explorer, modifica i campi come segue:
      .
    1. Nel campo Metrica, verifica che le seguenti risorse e e la metrica selezionata:
      Metric Ingestion Attribution e Samples written by attribution id.
    2. Configura gli altri parametri di ricerca in base alle esigenze:
      • Per correlare il volume complessivo di importazione con gli spazi dei nomi:
        • Per l'opzione Aggregazione seleziona sum.
        • Per il campo per, seleziona il le seguenti etichette:
            .
          • attribution_dimension
          • attribution_id
        • Per il campo Filtro, utilizza attribution_dimension = namespace.
      • Per correlare il volume di importazione delle singole metriche con spazi dei nomi:
        • Per l'opzione Aggregazione seleziona sum.
        • Per il campo per, seleziona le seguenti etichette:
            .
          • attribution_dimension
          • attribution_id
          • metric_type
        • Per il campo Filtro, utilizza attribution_dimension = namespace.
      • a identificare gli spazi dei nomi responsabili di uno specifico metrica ad alto volume:
        1. Identifica il tipo di metrica per la metrica ad alto volume di utilizzando uno degli altri esempi per identificare volumi elevati tipi di metriche. Il tipo di metrica è la stringa nella tabella che inizia con prometheus.googleapis.com/. Per ulteriori informazioni le informazioni, vedi Identifica metriche di volume elevato.
        2. Limita i dati del grafico al tipo di metrica identificato per aggiungendo un filtro per il tipo di metrica nel Filtro . Ad esempio:
          metric_type= prometheus.googleapis.com/container_tasks_state/gauge.
        3. Per l'opzione Aggregazione seleziona sum.
        4. Per il campo per, seleziona le seguenti etichette:
            .
          • attribution_dimension
          • attribution_id
        5. Per il campo Filtro, utilizza attribution_dimension = namespace.
      • Per visualizzare l'importazione per regione Google Cloud, aggiungi location al campo per.
      • Per visualizzare l'importazione per progetto Google Cloud, aggiungi la classe resource_container a di .