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:
Nella console Google Cloud, vai alla pagina Fatturazione.
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.
Nella sezione Gestione dei costi della navigazione Fatturazione seleziona Report.
Dal menu Servizi, seleziona l'opzione Cloud Monitoring.
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:
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à metriche di valutazione.
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:
- Filtrare le metriche esportate quando utilizzi le app gestite .
- Filtrare le metriche esportate quando utilizzi di cui è stato eseguito il deployment autonomo.
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
usa le regole di registrazione per aggregare le etichette come instance
e usare
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
ehigh_cardinality_metric_2
, forse di aggregando l'etichettainstance
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 eliminainstance
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 maggiori 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 modificare 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:
-
Nella console Google Cloud, vai alla
Pagina Gestione delle metriche:Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- 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:
-
Nella console Google Cloud, vai alla
Pagina Gestione delle metriche:Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nel prospetto Campioni fatturabili importati: fai clic su Visualizza grafici.
- Individua il grafico Importazione del volume dello spazio dei nomi e fai clic su. more_vert Altre opzioni del grafico.
- Seleziona l'opzione del grafico Visualizza in Esplora metriche.
- Nel riquadro Builder di Metrics Explorer, modifica i campi
come segue:
- .
- Nel campo Metrica, verifica che le seguenti risorse e
e la metrica selezionata:
Metric Ingestion Attribution
eSamples written by attribution id
. - Per l'opzione Aggregazione
seleziona
sum
. - Per il campo per, seleziona
le seguenti etichette:
- .
attribution_dimension
metric_type
- Per il campo Filtro, utilizza
attribution_dimension = namespace
. Devi eseguire questa operazione dopo aver aggregato i dati tramite Etichettaattribution_dimension
.
Il grafico risultante mostra i volumi di importazione per ciascun tipo di metrica.
- Nel campo Metrica, verifica che le seguenti risorse e
e la metrica selezionata:
- 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.
- 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:
Identificare gli spazi dei nomi ad alto volume
Per attribuire il volume di importazione a specifici spazi dei nomi Kubernetes, procedi nel seguente modo:
-
Nella console Google Cloud, vai alla
Pagina Gestione delle metriche:Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nel prospetto Campioni fatturabili importati: fai clic su Visualizza grafici.
- Individua il grafico Importazione del volume dello spazio dei nomi e fai clic su. more_vert Altre opzioni del grafico.
- Seleziona l'opzione del grafico Visualizza in Esplora metriche.
- Nel riquadro Builder di Metrics Explorer, modifica i campi
come segue:
- .
- Nel campo Metrica, verifica che le seguenti risorse e
e la metrica selezionata:
Metric Ingestion Attribution
eSamples written by attribution id
. - 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 l'opzione Aggregazione
seleziona
- 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
.
- Per l'opzione Aggregazione
seleziona
- a identificare gli spazi dei nomi responsabili di uno specifico
metrica ad alto volume:
- 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 maggiori informazioni le informazioni, vedi Identifica metriche di volume elevato. - 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
. - Per l'opzione Aggregazione
seleziona
sum
. - Per il campo per, seleziona
le seguenti etichette:
- .
attribution_dimension
attribution_id
- Per il campo Filtro, utilizza
attribution_dimension = namespace
.
- 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
- 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 .
- Per correlare il volume complessivo di importazione con gli spazi dei nomi:
- Nel campo Metrica, verifica che le seguenti risorse e
e la metrica selezionata: