Introduzione alla raccolta di dati con deployment automatico

Questo documento descrive come configurare Google Cloud Managed Service per Prometheus con di cui è stato eseguito il deployment autonomo. Viene eseguito il deployment di un'applicazione di esempio in un cluster Kubernetes cluster ed è monitorato da un server Prometheus che archivia le metriche raccolte Monarca.

Questo documento illustra come:

  • Configura il tuo ambiente e gli strumenti a riga di comando.
  • Configura un account di servizio per i cluster abilitati per Workload Identity.
  • Esegui il programma binario Prometheus del drop-in su Kubernetes.
  • Controlla quali metriche vengono importate in Managed Service per Prometheus.
  • Integra Managed Service per Prometheus con le configurazioni dell'operatore Prometheus.
  • Compila ed esegui manualmente il programma binario Prometheus.

Con la raccolta dei dati di cui è stato eseguito il deployment autonomo, puoi gestire l'installazione di Prometheus come abbiamo sempre fatto. L'unica differenza è che eseguirai Managed Service per il programma binario sostitutivo drop-in di Prometheus, gke.gcr.io/prometheus-engine/prometheus@sha256:8c8e35af7e2b92ac9d82ce640621c0d3aa10d7d62856681af3572d0a8fbb787b, anziché il file binario Prometheus upstream.

Il file binario drop-in fornisce ulteriori opzioni di configurazione --export.*. Per ulteriori informazioni informazioni, vedi l'output --help. Questo documento punta le opzioni più importanti.

Managed Service per Prometheus non supporta l'esportazione di metriche da un o da un server utilizzato come ricevitore di scrittura remoto. Puoi replicare tutte le funzionalità del server federazione, inclusa la riduzione dell'importazione volume tramite l'aggregazione dei dati prima dell'invio a Monarch mediante filtri e aggregazioni locali.

L'inserimento di flussi di dati in Managed Service per Prometheus consuma Google Cloud. Se esegui il deployment autonomo dei raccoglitori, ti consigliamo di aumentare Limiti di CPU e memoria di 5 volte e regolandoli in base all'utilizzo effettivo.

Per saperne di più sulla raccolta dei dati gestiti e di cui è stato eseguito il deployment autonomo, consulta Raccolta dei dati con Managed Service per Prometheus.

Prima di iniziare

Questa sezione descrive la configurazione necessaria per le attività descritte in questo documento.

Configura progetti e strumenti

Per utilizzare Google Cloud Managed Service per Prometheus, sono necessarie le seguenti risorse:

  • Un progetto Google Cloud in cui è abilitata l'API Cloud Monitoring.

    • Se non hai un progetto Google Cloud, segui questi passaggi:

      1. Nella console Google Cloud, vai a Nuovo progetto:

        Creare un nuovo progetto

      2. Nel campo Nome progetto, inserisci un nome per il progetto. e fai clic su Crea.

      3. Vai a Fatturazione:

        Vai a Fatturazione

      4. Seleziona il progetto appena creato, se non lo è già selezionata nella parte superiore della pagina.

      5. Ti viene chiesto di scegliere un profilo pagamenti esistente per crearne uno nuovo.

      L'API Monitoring è abilitata per impostazione predefinita per i nuovi progetti.

    • Se hai già un progetto Google Cloud, assicurati che L'API Monitoring è abilitata:

      1. Vai su API e Google Cloud:

        Vai su API e servizi

      2. Seleziona il progetto.

      3. Fai clic su Abilita API e servizi.

      4. Cerca "Monitoring".

      5. Nei risultati di ricerca, fai clic su "API Cloud Monitoring".

      6. Se "API abilitata" non viene visualizzato, fai clic sul pulsante Attiva.

  • Un cluster Kubernetes. Se non hai un cluster Kubernetes, segui le istruzioni nella Guida rapida per GKE.

Sono inoltre necessari i seguenti strumenti a riga di comando:

  • gcloud
  • kubectl

Gli strumenti gcloud e kubectl fanno parte Google Cloud CLI. Per informazioni sull'installazione consulta Gestione dei componenti dell'interfaccia a riga di comando di Google Cloud. Per vedere le componenti gcloud CLI che hai installato, esegui questo comando:

gcloud components list

Configura il tuo ambiente

Per evitare di inserire ripetutamente l'ID progetto o il nome del cluster, eseguire la configurazione seguente:

  • Configura gli strumenti a riga di comando come segue:

    • Configura gcloud CLI per fare riferimento all'ID del tuo Progetto Google Cloud:

      gcloud config set project PROJECT_ID
      
    • Configura l'interfaccia a riga di comando kubectl per utilizzare il tuo cluster:

      kubectl config set-cluster CLUSTER_NAME
      

    Per ulteriori informazioni su questi strumenti, consulta le seguenti risorse:

Configura uno spazio dei nomi

Crea lo spazio dei nomi Kubernetes NAMESPACE_NAME per le risorse create nell'ambito dell'applicazione di esempio:

kubectl create ns NAMESPACE_NAME

Verificare le credenziali dell'account di servizio

Puoi saltare questa sezione se il tuo cluster Kubernetes Identità carico di lavoro abilitata.

In esecuzione su GKE, Managed Service per Prometheus recupera automaticamente le credenziali dall'ambiente in base Account di servizio predefinito Compute Engine. L'account di servizio predefinito ha le autorizzazioni necessarie, monitoring.metricWriter e monitoring.viewer, predefinito. Se non utilizzi Workload Identity e in precedenza hai già rimosso uno di questi ruoli dall'account di servizio del nodo predefinito, Devi aggiungere di nuovo le autorizzazioni mancanti prima di continuare.

Se non esegui su GKE, consulta Fornisci le credenziali in modo esplicito.

Configura un account di servizio per Workload Identity

Puoi saltare questa sezione se il tuo cluster Kubernetes non dispone Identità carico di lavoro abilitata.

Managed Service per Prometheus acquisisce i dati delle metriche utilizzando l'API Cloud Monitoring. Se il cluster utilizza Workload Identity, devi concedere al tuo account di servizio Kubernetes l'autorizzazione l'API Monitoring. In questa sezione vengono descritte le seguenti informazioni:

Crea e associa l'account di servizio

Questo passaggio viene visualizzato in diverse posizioni all'interno di Managed Service per Prometheus documentazione. Se hai già eseguito questo passaggio come parte di una dell'attività, così non dovrai ripeterla. Vai avanti e vai alla sezione Autorizzare dell'account di servizio.

La seguente sequenza di comandi crea l'account di servizio gmp-test-sa e lo associa all'account di servizio Kubernetes predefinito Spazio dei nomi NAMESPACE_NAME:

gcloud config set project PROJECT_ID \
&&
gcloud iam service-accounts create gmp-test-sa \
&&
gcloud iam service-accounts add-iam-policy-binding \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE_NAME/default]" \
  gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
&&
kubectl annotate serviceaccount \
  --namespace NAMESPACE_NAME \
  default \
  iam.gke.io/gcp-service-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com

Se usi uno spazio dei nomi GKE o un account di servizio diverso, e regolare i comandi in modo appropriato.

Autorizza l'account di servizio

I gruppi di autorizzazioni correlate vengono raccolti in ruoli e si assegnano i ruoli a un'entità. In questo esempio, il cluster Google Cloud l'account di servizio. Per ulteriori informazioni sui ruoli di Monitoring, consulta Controllo dell'accesso.

Il comando seguente concede l'account di servizio Google Cloud, gmp-test-sa, i ruoli dell'API Monitoring necessari scrittura i dati delle metriche.

Se hai già concesso l'account di servizio Google Cloud un ruolo specifico nell'ambito dell'attività precedente, non dovrai ripeterlo.

gcloud projects add-iam-policy-binding PROJECT_ID\
  --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
  --role=roles/monitoring.metricWriter

Debug della configurazione di Workload Identity

Se hai difficoltà a far funzionare Workload Identity, consulta documentazione per la verifica della configurazione di Workload Identity e la guida alla risoluzione dei problemi di Workload Identity.

Poiché gli errori di battitura e i testi incollati parziali sono le fonti più comuni di errori quando durante la configurazione di Workload Identity, consigliamo vivamente l'utilizzo del variabili e icone di copia e incolla cliccabili incorporate negli esempi di codice in questi instructions.

Workload Identity in ambienti di produzione

L'esempio descritto in questo documento associa il servizio Google Cloud di servizio all'account di servizio Kubernetes predefinito e fornisce a Google Cloud all'account di servizio di tutte le autorizzazioni necessarie per utilizzare l'API Monitoring.

In un ambiente di produzione, conviene usare un approccio più granulare, con un account di servizio per ogni componente, ognuno con autorizzazioni minime. Per ulteriori informazioni sulla configurazione degli account di servizio per gestione dei carichi di lavoro e delle identità, consulta Utilizzo di Workload Identity.

Configura raccolta di cui è stato eseguito il deployment autonomo

Questa sezione descrive come configurare ed eseguire un'applicazione di esempio che utilizza una raccolta di cui è stato eseguito il deployment autonomo.

Esegui il deployment dell'applicazione di esempio

L'applicazione di esempio emette la metrica contatore example_requests_total e example_random_numbers metrica dell'istogramma (tra le altre) sulla porta metrics. Il file manifest dell'applicazione definisce tre repliche.

Per eseguire il deployment dell'applicazione di esempio, esegui questo comando:

kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.12.0/examples/example-app.yaml

Esegui il programma binario Prometheus sostitutivo

Per importare i dati delle metriche emessi dall'applicazione di esempio, esegui il deployment La versione creata con fork di Google del server Prometheus, configurata su eseguire lo scraping delle metriche del carico di lavoro e del proprio endpoint delle metriche.

  1. Per eseguire il deployment del server creato mediante fork, esegui questo comando:

    kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.12.0/examples/prometheus.yaml
    

    Questo server Prometheus di cui è stato eseguito il deployment è un thin fork di Prometheus a monte binario. Si comporta come un server Prometheus standard, ma anche importa i dati in Managed Service per Prometheus.

    Il file manifest riportato sopra fornisce un esempio funzionante di base che invia dati al un datastore globale, Monarch. Non archivia in modo permanente copia locale dei dati. Per informazioni su come vengono applicati la configurazione open source e come estenderla, documentazione sulla configurazione di Prometheus.

    L'immagine predefinita funziona solo su nodi Linux. Per eseguire lo scraping dei target in esecuzione sui nodi Windows, esegui il deployment del server su un nodo Linux e configuralo per eseguire lo scraping degli endpoint sui nodi Windows o per creare il file binario per Windows autonomamente.

  2. Verifica che i pod per il server Prometheus e l'applicazione di esempio deployment eseguito correttamente:

    kubectl -n NAMESPACE_NAME get pod
    

    Se il deployment è riuscito, vedrai un output simile al seguenti:

    NAME                            READY   STATUS    RESTARTS   AGE
    prom-example-84c6f547f5-fglbr   1/1     Running   0          5m
    prom-example-84c6f547f5-jnjp4   1/1     Running   0          5m
    prom-example-84c6f547f5-sqdww   1/1     Running   0          5m
    prometheus-test-0               2/2     Running   1          3m
    

Se esegui su GKE, puoi fare quanto segue:

Se esegui all'esterno di GKE, devi creare un account di servizio e autorizzarlo a scrivere i dati delle metriche, come descritto nella sezione che segue.

Fornisci le credenziali in modo esplicito

Durante l'esecuzione su GKE, il server Prometheus che raccoglie recupera automaticamente le credenziali dall'ambiente in base l'account di servizio del nodo o la configurazione di Workload Identity. Nei cluster Kubernetes non GKE, le credenziali devono essere forniti al server Prometheus raccoglitore tramite flag o GOOGLE_APPLICATION_CREDENTIALS variabile di ambiente.

  1. Imposta il contesto sul progetto di destinazione:

    gcloud config set project PROJECT_ID
    
  2. Crea un account di servizio:

    gcloud iam service-accounts create gmp-test-sa
    

    Questo passaggio crea l'account di servizio che potresti avere già creati nel Istruzioni per Workload Identity.

  3. Concedi le autorizzazioni richieste all'account di servizio:

    gcloud projects add-iam-policy-binding PROJECT_ID\
      --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/monitoring.metricWriter
    

  4. Crea e scarica una chiave per l'account di servizio:

    gcloud iam service-accounts keys create gmp-test-sa-key.json \
      --iam-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
    
  5. Aggiungi il file della chiave come secret al cluster non GKE:

    kubectl -n NAMESPACE_NAME create secret generic gmp-test-sa \
      --from-file=key.json=gmp-test-sa-key.json
    

  6. Apri la risorsa StatefulSet Prometheus per la modifica:

    kubectl -n NAMESPACE_NAME edit statefulset prometheus-test
    
    1. Aggiungi il testo visualizzato in grassetto alla risorsa:

      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        namespace: NAMESPACE_NAME
        name: example
      spec:
        template
          containers:
          - name: prometheus
            args:
            - --export.credentials-file=/gmp/key.json
      ...
            volumeMounts:
            - name: gmp-sa
              mountPath: /gmp
              readOnly: true
      ...
          volumes:
          - name: gmp-sa
            secret:
              secretName: gmp-test-sa
      ...
      

    2. Salva il file e chiudi l'editor. Una volta applicata la modifica, vengono ricreati e avviano l'autenticazione nella metrica con l'account di servizio specificato.

    In alternativa, invece di usare i flag impostati in questo esempio, puoi impostare il percorso del file chiave utilizzando il metodo GOOGLE_APPLICATION_CREDENTIALS variabile di ambiente.

    Argomenti aggiuntivi per la raccolta di cui è stato eseguito il deployment autonomo

    In questa sezione viene descritto come effettuare le seguenti operazioni:

    • Filtra i dati esportati nel servizio gestito.
    • Converti le configurazioni di deployment esistenti.
    • Esegui il programma binario Prometheus in modalità a disponibilità elevata.
    • Crea ed esegui il programma binario Prometheus sostitutivo.
    • Esegui Managed Service per Prometheus al di fuori di Google Cloud.

    Filtra metriche esportate

    Se raccogli molti dati, potresti voler evitare che alcune serie temporali a Managed Service per Prometheus per contenere i costi.

    Puoi usare la normale rietichettatura delle metriche configurate in Prometheus configurazione di scraping. Con la rietichettatura delle configurazioni, puoi rilasciare le metriche in base alle corrispondenze delle etichette al momento dell'importazione.

    A volte potresti voler importare i dati localmente, ma non esportarli in Managed Service per Prometheus. Per filtrare le metriche esportate, puoi utilizzare --export.match flag.

    Il flag specifica uno o più selettori della serie PromQL e il flag può può essere usato più volte. Una serie temporale viene esportata in Managed Service per Prometheus se soddisfa tutti i selettori in almeno uno dei flag; nel determinare l'idoneità, le condizioni all'interno di un singolo flag vengono usate in relazione con l'operatore AND, mentre le condizioni in flag separati sono impostate come OR. La L'esempio seguente utilizza due istanze del flag:

    ./prometheus \
      --export.match='{job="prometheus"}' \
      --export.match='{__name__=~"job:.+"}' \
      ...
    

    Questa modifica determina solo le metriche per "prometheus" lavoro come così come le metriche generate dalla registrazione di regole aggregate a livello di lavoro (quando segui le best practice di denominazione) per l'esportazione. Esempi per tutti gli altri serie vengono escluse. Per impostazione predefinita, non viene specificato nessun selettore e vengono esportate tutte le serie temporali.

    Il flag --export.match ha la stessa semantica del parametro match[] per la federazione Prometheus. Puoi quindi eseguire la migrazione delle configurazioni di federazione Managed Service per Prometheus utilizzando i selettori della tua federazione server direttamente sotto forma di flag sui server Prometheus copiati dalla tua federazione Server Prometheus. Esportazione delle metriche da un server federazione all'API gestita non è supportato.

    Per includere metriche di tipo histogram in un filtro, devi specificare _count, _sum e _bucket. Puoi anche usare un matcher con caratteri jolly, ad esempio il selettore {__name__=~"histogram_metric_.+"}.

    Se utilizzi la libreria prometheus-operator, imposta qualsiasi valore --export.match che utilizzano la variabile di ambiente EXTRA_ARGS della containerizzato. Per maggiori informazioni, vedi Utilizzare con prometheus-operator.

    Puoi combinare flag di filtro con regole di registrazione eseguite localmente per eseguire il "aggregazione" dati prima dell'invio a Monarch, riducendo cardinalità e costi. Per Per saperne di più, consulta Controllo dei costi e attribuzione.

    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 saperne di più sulla pagina Gestione delle metriche, consulta Visualizza e gestisci l'utilizzo delle metriche.

    Usa con l'operatore Prometheus

    Il file binario di Managed Service per Prometheus Prometheus può essere utilizzato anche su un deployment GKE Prometheus esistente gestito operatore-prometheus.

    Per utilizzare il file binario del servizio gestito, sostituisci la specifica dell'immagine nel Risorsa Prometheus:

      apiVersion: monitoring.coreos.com/v1
      kind: Prometheus
      metadata:
        name: NAMESPACE_NAME
        namespace: gmp-system
      spec:
        image: gke.gcr.io/prometheus-engine/prometheus@sha256:8c8e35af7e2b92ac9d82ce640621c0d3aa10d7d62856681af3572d0a8fbb787b
        ...
        replicas: 1
        serviceAccountName: default
        version: v2.35.0
        ...
    

    Se ti trovi in un cluster Workload Identity e lo spazio dei nomi o il servizio account nella tua risorsa è diverso, ripeti Istruzioni di Workload Identity per le istruzioni aggiuntive e la coppia di account di servizio Kubernetes.

    Quando esegui l'esecuzione su un cluster Kubernetes non GKE, devi fornisci manualmente le credenziali. Per fornire le credenziali:

    1. Aggiungi un file di chiave dell'account di servizio appropriato come secret, come descritto in Fornire le credenziali in modo esplicito.

    2. Modifica la risorsa Prometheus per aggiungere il testo mostrato in grassetto:

        apiVersion: monitoring.coreos.com/v1
        kind: Prometheus
        metadata:
          namespace: gmp-test
          name: example
        spec:
          ...
          secrets:
          - gmp-test-sa
          containers:
          - name: prometheus
            env:
            - name: GOOGLE_APPLICATION_CREDENTIALS
              value: /gmp/key.json
            volumeMounts:
            - name: secret-gmp-test-sa
              mountPath: /gmp
              readOnly: true
      

    Puoi impostare la variabile di ambiente EXTRA_ARGS del container per aggiungere ulteriori flag, ad esempio i flag di filtro delle metriche. Questo viene fatto tramite una variabile di ambiente perché la sezione args del la specifica del container è gestita dall'operatore Prometheus.

    Utilizzo con kube-prometheus

    Puoi configurare deployment creati utilizzando il popolare kube-prometheus per utilizzare Managed Service per Prometheus.

    kube-prometheus ha alcune dipendenze interne strette negli spazi dei nomi predefiniti e account di servizio, perciò consigliamo di modificare solo il numero minimo di campi necessarie per inviare dati a Managed Service per Prometheus.

    All'interno di manifests/prometheus-prometheus.yaml, sostituisci l'immagine specifica e disattiva la raccolta dell'alta disponibilità riducendo il valore di replicas a 1:

        apiVersion: monitoring.coreos.com/v1
        kind: Prometheus
        ...
        spec:
          image: gke.gcr.io/prometheus-engine/prometheus@sha256:8c8e35af7e2b92ac9d82ce640621c0d3aa10d7d62856681af3572d0a8fbb787b
          ...
          replicas: 1
          version: v2.35.0
          ...
      

    Se è in esecuzione su GKE e non hai modificato il valore predefinito l'account di servizio sul nodo, l'applicazione dei manifest modificati dovrebbe iniziare a inviare dati a Managed Service per Prometheus. In caso contrario, devi configurare e applicare un account di servizio. Durante l'esecuzione su GKE e utilizzando Workload Identity, potresti dover crea e autorizza l'account di servizio prometheus-k8s nel monitoring. Durante l'esecuzione su un ambiente Kubernetes non GKE segui le istruzioni riportate nella sezione dell'operatore prometheus.

    Tieni presente che kube-prometheus raccoglie molte metriche per impostazione predefinita, la maggior parte delle quali spesso non sono necessarie in un ambiente Kubernetes gestito come GKE. Per risparmiare sui costi di importazione, puoi personalizzare kube-prometheus in modo che esegua lo scraping solo le metriche che ti interessano e filtra in modo massiccio le metriche esportate.

    Per ulteriori suggerimenti, consulta la sezione Controllo dei costi e attribuzione.

    Deployment ad alta disponibilità

    Il file binario Prometheus sostitutivo è dotato di supporto integrato per raccolta disponibile usando le elezioni dei leader. Server Prometheus replicati in ad alta disponibilità raccolgono metriche e valutano le regole come di consueto, ma solo uno di questi invia dati a Google Cloud Managed Service per Prometheus.

    Le repliche dello stesso server Prometheus devono avere sempre configurazioni, incluso lo stesso external_labels. Questo requisito è diverso da altri sistemi, che si basano su una speciale etichetta esterna, come __replica__, per rendere le repliche esplicitamente diverse.

    Il server API Kubernetes è un backend per le elezioni leader supportato e può attivabile impostando i seguenti flag:

    ./prometheus
      ...
      --export.ha.backend=kube \
      --export.ha.kube.namespace=LEASE_NAMESPACE \
      --export.ha.kube.name=LEASE_NAME
    

    I valori LEASE_NAMESPACE e LEASE_NAME identificano Risorsa di locazione utilizzata per l'elezione dei leader posto. Tutti i server Prometheus che puntano alla stessa risorsa appartengono di un set di repliche. L'account di servizio Kubernetes del deployment Prometheus deve l'autorizzazione a leggere e scrivere la rispettiva risorsa Lease. Quando esegui il comando server Prometheus al di fuori di un cluster Kubernetes, puoi fornire una della configurazione utilizzando --export.ha.kube.config.

    Dopodiché, puoi aumentare il valore di replicas impostandolo su 2 o un valore superiore.

    Etichette riservate

    Managed Service per Prometheus utilizza sei etichette riservate per utilizzare identificare una risorsa in Monarch:

    • project_id: l'identificatore del progetto Google Cloud associato al tuo o una metrica di valutazione. Obbligatorio.
    • location: la località fisica (regione Google Cloud) in cui vengono archiviati i dati. Solitamente, questo valore corrisponde all'area geografica cluster GKE. Se i dati vengono da un deployment AWS o on-premise, il valore potrebbe essere la regione Google Cloud più vicina. Obbligatorio.
    • cluster: il nome del cluster Kubernetes associato alla tua metrica. Se non in esecuzione su Kubernetes, può essere usato come livello gerarchico arbitrario ad esempio un gruppo di istanze. Facoltativo ma vivamente consigliato.
    • namespace: il nome dello spazio dei nomi Kubernetes associato alla metrica. Se non viene eseguito su Kubernetes, può essere utilizzato come livello gerarchico arbitrario. come un sottogruppo di istanze. Facoltativo ma vivamente consigliato.
    • job: l'etichetta del job della destinazione Prometheus, se nota; potrebbe essere vuoto per i risultati della valutazione delle regole. Obbligatorio e solitamente aggiunto automaticamente da Prometheus.
    • instance: l'etichetta dell'istanza del target Prometheus, se nota; potrebbe essere vuoto per i risultati della valutazione delle regole. Obbligatorio e solitamente aggiunto automaticamente da Prometheus. Se impostato o rietichettato manualmente, non utilizzare valori impostati come hardcoded come localhost, poiché ciò causa collisioni tra serie temporali.

    Durante l'esecuzione su Google Cloud, project_id, location e cluster vengono aggiunte automaticamente a ogni metrica.

    Sebbene non sia consigliato per l'esecuzione su Google Cloud, puoi eseguire l'override project_id, location, cluster e namespace utilizzando i campi global.external_labels della configurazione Prometheus. Per ulteriori informazioni informazioni, consulta Eseguire la raccolta di cui è stato eseguito il deployment autonomo all'esterno Google Cloud.

    Se usi etichette riservate come etichette delle metriche, la raccolta con deployment autonomo utilizzerà l'etichetta della metrica come valore per il dell'etichetta. Questo può fornire una certa flessibilità, ma può anche generare errori se, ad esempio, Ad esempio, utilizzi l'etichetta location per fare riferimento a qualcosa di diverso da una regione Google Cloud.

    Deployment binari

    Se vuoi eseguire il deployment in un ambiente non containerizzato, puoi creare direttamente il file binario Prometheus sostitutivo.

    Creazione dell'origine

    Se hai già un processo per compilare autonomamente Prometheus, puoi sostituire in modo trasparente il nostro repository GitHub nel processo. Managed Service per Prometheus ha la propria estensione tag di versione per distinguere le sue release da quelle upstream.

    Per creare un file binario semplice, la toolchain di Go e le versioni recenti di NPM/Yarn deve essere installato sulla macchina. Per ulteriori informazioni, consulta la sezione sulla creazione di un modello istruzioni.

    1. Clona il repository:

      git clone https://github.com/GoogleCloudPlatform/prometheus &&
      cd prometheus
      
    2. Controlla il tag di versione desiderato:

      git checkout v2.45.3-gmp.7-gke.0
      
    3. Per creare un tarball Managed Service per Prometheus, esegui questo comando :

      make build && make tarball
      

    Il tarball e i file binari risultanti sono completamente compatibili con i rispettivi upstream le varianti in termini di struttura e funzionalità delle directory.

    Limiti alla creazione e all'aggiornamento di metriche ed etichette

    Managed Service per Prometheus applica un limite di frequenza al minuto per la creazione nuove metriche e sull'aggiunta di nuove etichette alle metriche esistenti. Questo limite di frequenza di solito viene colpito solo alla prima integrazione Managed Service per Prometheus, ad esempio quando esegui la migrazione di un maturo di Prometheus per utilizzare la raccolta con deployment autonomo. Questo non è un limite di frequenza per l'importazione di punti dati. Questo limite di frequenza si applica solo quando si creano metriche mai viste prima o quando si aggiungono nuove etichette a metrics.

    Questa quota è stata corretta, ma gli eventuali problemi dovrebbero risolversi automaticamente man mano che vengono create nuove metriche ed etichette fino al minuto limite.

    Per ulteriori informazioni, consulta la sezione Risoluzione dei problemi.

    Esegui raccolta di cui è stato eseguito il deployment autonomo al di fuori di Google Cloud

    Negli ambienti Compute Engine, negli ambienti GKE o macchina su cui hai eseguito gcloud login con un account sufficientemente autorizzato, può eseguire una raccolta di cui è stato eseguito il deployment autonomo senza ulteriore configurazione. Al di fuori di Google Cloud, devi fornire esplicitamente le credenziali, un project_id che contenga i tuoi e una location (regione Google Cloud) in cui archiviare le metriche. Tu deve impostare le etichette cluster e namespace, anche se in esecuzione in una dell'ambiente non Kubernetes.

    Puoi fornire una chiave dell'account di servizio utilizzando il metodo Flag --export.credentials-file o GOOGLE_APPLICATION_CREDENTIALS come descritto in Fornire le credenziali in modo esplicito.

    Ti consigliamo di scegliere project_id in base al modello di tenancy pianificato per legge. Scegli un progetto in cui archiviare le metriche in base a come prevedi di organizzare legge in un secondo momento con gli ambiti delle metriche. Se non ti interessa, può inserire tutto in un unico progetto.

    Per location, ti consigliamo di scegliere la regione Google Cloud più vicina al tuo e deployment continuo. Più la regione Google Cloud scelta è lontana dal tuo deployment, maggiore è la latenza di scrittura che avrai e più sarai influenzato da potenziali problemi di rete. Ti consigliamo di consultare questo elenco di regioni più cloud. Se che non ti interessa, puoi inserire tutto in un'unica regione Google Cloud. Non puoi usa global come posizione.

    Se viene eseguito in un ambiente Kubernetes, imposta i valori cluster e namespace al cluster e allo spazio dei nomi locali. Se vengono eseguite al di fuori di Kubernetes, impostale su valori che hanno senso gerarchicamente. Ad esempio, in un ambiente basato su VM in esecuzione su AWS, imposta il valore cluster su __aws__ e il valore namespace all'ID istanza. Puoi compilare in modo dinamico l'ID istanza utilizzando una regola di rietichettatura che chiama il server dei metadati locale.

    Come esempio minimo funzionante, puoi eseguire un servizio Prometheus locale con automonitoraggio con il seguente comando:

    ./prometheus \
      --config.file=documentation/examples/prometheus.yaml \
      --export.label.project-id=PROJECT_ID \
      --export.label.location=REGION \
      --export.label.cluster=CLUSTER_NAME \
    

    Questo esempio presuppone che tu abbia impostato la variabile REGION su un valore simile a us-central1, ad esempio.

    Tuttavia, ti consigliamo di impostare le export etichette target per la campagna gestita nella sezione global.external_labels del tuo Configurazione Prometheus. Ad esempio, in ambienti Kubernetes potresti utilizzare configurazione seguente:

    global:
      external_labels:
        project_id: PROJECT_ID
        location: REGION
        cluster: CLUSTER_NAME
        namespace: local-testing
    
    scrape_configs:
      ...
    

    L'esecuzione di Managed Service per Prometheus al di fuori di Google Cloud comporta tariffe per il trasferimento di dati. Sono previste delle tariffe per trasferire i dati in Google Cloud. ti potrebbero venire addebitati dei costi per trasferire i dati da un altro cloud. Tu puoi ridurre al minimo questo costo abilitando la compressione --export.compression=gzip.

    Passaggi successivi