Raccogli le metriche di Prometheus

Questo documento descrive la configurazione e l'utilizzo di Ops Agent ricevitore di metriche che puoi utilizzare per raccogliere metriche da Prometheus su in Compute Engine. Il presente documento descrive inoltre un esempio che puoi utilizzare per provare il ricevitore.

Gli utenti di Google Kubernetes Engine sono stati in grado di raccogliere Metriche Prometheus utilizzando Google Cloud Managed Service per Prometheus. Il ricevitore Ops Agent Prometheus offre agli utenti di Compute Engine le stesse funzionalità.

Puoi utilizzare tutti gli strumenti forniti da Cloud Monitoring, incluso PromQL, per visualizzare e analizzare i dati raccolti dal ricevitore Prometheus. Ad esempio, puoi utilizzare Esplora metriche, come descritto in Google Cloud Console Monitoring, per eseguire query sui dati. Puoi anche creare dashboard di Cloud Monitoring criteri di avviso per monitorare le metriche di Prometheus. Ti consigliamo di utilizzare PromQL come linguaggio di query per le metriche Prometheus.

Puoi visualizzare le metriche di Prometheus anche nelle interfacce esterne Cloud Monitoring, ad esempio la UI di Prometheus e Grafana.

Scegli il ricevitore giusto

Prima di decidere di utilizzare il ricevitore Prometheus, determina se esiste già un'integrazione Ops Agent per l'applicazione che utilizzano. Per informazioni sulle integrazioni esistenti con Ops Agent, consulta Monitoraggio di applicazioni di terze parti. Se esiste già un'integrazione, ti consigliamo di utilizzarla. Per ulteriori informazioni informazioni, consulta Scegliere un'integrazione esistente.

Ti consigliamo di utilizzare il ricevitore Ops Agent Prometheus quando: sono vere:

  • Hai esperienza nell'utilizzo di Prometheus, ti affidi allo standard Prometheus, e capire come fattori come l'intervallo di scraping e la cardinalità possano influire sui costi. Per ulteriori informazioni, consulta Scelta di Prometheus destinatario.

  • Il software che stai monitorando non fa già parte insieme di integrazioni Ops Agent esistenti.

Integrazioni esistenti

Ops Agent fornisce integrazioni per una serie applicazioni di terze parti. Queste integrazioni ti offrono quanto segue:

  • Un insieme di metriche workload.googleapis.com selezionate per l'applicazione
  • Una dashboard per visualizzare le metriche.

Le metriche importate utilizzando un'integrazione esistente sono soggetti ai prezzi basati sui byte per le metriche raccolte dagli agenti. Il numero e i tipi di metriche sono noti in anticipo e puoi usa queste informazioni per stimare i costi.

Ad esempio, se utilizzi Integrazione di Apache Web Server (httpd), Ops Agent raccoglie cinque metriche scalari; ogni punto dati viene conteggiato 8 byte. Se mantieni la frequenza di campionamento predefinita di Ops Agent di 60 secondi, il numero di byte importati al giorno è pari a 57.600 * il numero di host:

  • 8 (byte) * 1440 (minuti al giorno) * 5 (metriche) * n (host), oppure
  • 57.600 * n (host)

Per ulteriori informazioni sulla stima dei costi, consulta gli esempi di prezzi basati sui byte importati.

Il ricevitore Prometheus

Quando utilizzi Ops Agent per raccogliere le metriche Prometheus, viene mostrato quanto segue applica:

  • Il numero e la cardinalità delle metriche emesse dalla tua applicazione sono sotto il tuo controllo. Non esiste un insieme selezionato di metriche. Quantità di dati che importi è determinato dalla configurazione della tua applicazione Prometheus e il ricevitore Ops Agent Prometheus.

  • Le metriche vengono importate in Cloud Monitoring come prometheus.googleapis.com metrics. Queste metriche sono classificate come tipo "personalizzato" le metriche quando importati in Cloud Monitoring e sono soggetti quote e limiti per le metriche personalizzate.

  • Devi progettare e creare tutte le dashboard di Cloud Monitoring di cui hai bisogno, in base all'insieme di metriche che stai importando e alle tue esigenze aziendali. Per informazioni sulla creazione delle dashboard, consulta Dashboard e grafici.

  • I prezzi per l'importazione delle metriche si basano sul numero di samples importati. Per stimare i costi quando utilizzi il ricevitore Prometheus, devi determinare il numero di campioni che è probabile raccogliere durante ciclo di fatturazione di Google Cloud. La stima si basa sui seguenti fattori:

    • Numero di metriche scalari; ogni valore è un campione
    • Numero di metriche di distribuzione; ogni istogramma conta come (2 + numero di bucket nell'istogramma) esempi
    • Frequenza di campionamento di ogni metrica
    • Numero di host da cui vengono campionate le metriche

    Per ulteriori informazioni sul conteggio dei campioni e sulla stima dei costi, consulta Esempi di prezzi basati sui campioni importati.

Prerequisiti

Per raccogliere le metriche Prometheus utilizzando il ricevitore Prometheus, devi installa la versione di Ops Agent 2.25.0 o versioni successive.

Il ricevitore Ops Agent richiede un endpoint che emette metriche Prometheus. Pertanto, l'applicazione deve fornire questo endpoint direttamente o usare una libreria Prometheus o un esportatore per esporre un endpoint. Molte librerie e framework di linguaggio come Spring e DropWizard per applicazioni come StatisticheD, DogStatsD e Graphite, che emettono dati non Prometheus possono utilizzare librerie o esportatori client di Prometheus per emettere Metriche di stile Prometheus. Ad esempio, per emettere metriche Prometheus:

Quando le metriche di Prometheus vengono emesse da un'applicazione, direttamente o utilizzando una libreria o un esportatore, le metriche possono quindi essere raccolte Ops Agent configurato con un ricevitore Prometheus.

Configurazione dell'agente operativo

Il modello di configurazione di Ops Agent in genere prevede definendo quanto segue:

  • Destinatari, che determinano quali metriche vengono raccolte.
  • Processori, che descrivono in che modo Ops Agent può modificare le metriche.
  • Pipeline, che collegano ricevitori e processori in un servizio.

La configurazione per l'importazione delle metriche di Prometheus è leggermente diversa: non sono coinvolti processori.

Configurazione per le metriche Prometheus

La configurazione di Ops Agent per l'importazione delle metriche Prometheus è diversa da quella la configurazione abituale come segue:

  • Non devi creare un processore Ops Agent per le metriche Prometheus. La Il ricevitore Prometheus supporta quasi tutte le opzioni di configurazione specificato da Prometheus Specifica di scrape_config, inclusa la rietichettatura le opzioni di CPU e memoria disponibili.

    Anziché utilizzare un processore Ops Agent, l'elaborazione delle metriche viene eseguita usando relabel_configs e metric_relabel_configs della configurazione di scape, come specificato nel ricevitore Prometheus. Per ulteriori informazioni, consulta Rietichettatura: modifica dei dati sottoposti a estratto.

  • La pipeline Prometheus viene definita solo in termini di ricevitore Prometheus. Non specifichi nessun processore. Inoltre, non puoi utilizzare elementi non Prometheus ricevitori nella pipeline per le metriche Prometheus.

La maggior parte della configurazione del ricevitore è la specifica di scrape-config le opzioni di CPU e memoria disponibili. Ometti queste opzioni per brevità, di seguito viene mostrata la struttura di una configurazione Ops Agent che utilizza un ricevitore Prometheus. Devi specificare valori di RECEIVER_ID e PIPELINE_ID.

metrics:
  receivers:
    RECEIVER_ID:
      type: prometheus
      config:
        scrape_configs:
          [... omitted for brevity ...]

  service:
    pipelines:
      PIPELINE_ID:
        receivers: [RECEIVER_ID]

Nella sezione seguente viene descritto in modo più dettagliato il ricevitore Prometheus. Per un esempio funzionale di un ricevitore e di una pipeline, consulta Aggiungere il ricevitore e la pipeline di Ops Agent.

Il ricevitore Prometheus

Per specificare un ricevitore per le metriche Prometheus, devi creare una metrica ricevitore di tipo prometheus e specifica un insieme di opzioni scrape_config. Il ricevitore supporta tutti i moduli Prometheus scrape_config, ad eccezione di quanto segue:

  • Le sezioni di Service Discovery, *_sd_config.
  • L'impostazione honor_labels.

Di conseguenza, puoi copiare le configurazioni di scraping esistenti e utilizzarle per Ops Agent con poche modifiche o nessuna.

La struttura completa del ricevitore Prometheus è illustrata di seguito:

metrics:
  receivers:
    prom_application:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'STRING' # must be unique across all Prometheus receivers
              scrape_interval: # duration, like 10m or 15s
              scrape_timeout:  # duration, like 10m or 15s
              metrics_path: # resource path for metrics, default = /metrics
              honor_timestamps: # boolean, default = false
              scheme: # http or https, default = http
              params:
                - STRING: STRING
              basic_auth:
                username: STRING
                password: SECRET
                password_file: STRING
              authorization:
                type: STRING # default = Bearer
                credentials: SECRET
                credentials_file: FILENAME

              oauth2: OAUTH2 # See Prometheus oauth2
              follow_redirects: # boolean, default = true
              enable_http2: # boolean, default = true
              tls_config: TLS_CONFIG # See Prometheus tls_config
              proxy_url: STRING

              static_configs:
                STATIC_CONFIG # See Prometheus static_config
              relabel_configs:
                RELABEL_CONFIG # See Prometheus relabel_config
              metric_relabel_configs:
                METRIC_RELABEL_CONFIGS # See Prometheus metric_relabel_configs

Per esempi di rietichettatura delle configurazioni, consulta Destinatari aggiuntivi configurazione.

Esempio: configurare Ops Agent per Prometheus

Questa sezione mostra un esempio di come configurare Ops Agent per raccogliere Metriche di Prometheus da un'applicazione. Questo esempio utilizza Prometheus Exporter JSON fornito dalla community (json_exporter), che espone le metriche Prometheus sulla porta 7979.

La configurazione dell'esempio richiede le seguenti risorse, che potresti dover installare:

  • git
  • curl
  • make
  • python3
  • Lingua Go, versione 1.19 o successive

Crea o configura la tua applicazione

Per ottenere ed eseguire JSON Exporter, utilizza la seguente procedura:

  1. Clona il repository json_exporter e verifica l'utilità di esportazione eseguendo questi comandi:

    git clone https://github.com/prometheus-community/json_exporter.git
    
    cd json_exporter
    
    git checkout v0.5.0
    
  2. Crea l'utilità di esportazione eseguendo questo comando:

    make build
    
  3. Avvia il server HTTP Python con il seguente comando:

    python3 -m http.server 8000 &
    
  4. Avvia JSON Exporter eseguendo questo comando:

    ./json_exporter --config.file examples/config.yml &
    
  5. Esegui una query su JSON Exporter per verificare che sia in esecuzione e che sia in corso metriche sulla porta 7979:

    curl "http://localhost:7979/probe?module=default&target=http://localhost:8000/examples/data.json"
    

    Se la query ha avuto esito positivo, verrà visualizzato un output simile al seguenti:

    # HELP example_global_value Example of a top-level global value scrape in the json
    # TYPE example_global_value untyped
    example_global_value{environment="beta",location="planet-mars"} 1234
    # HELP example_value_active Example of sub-level value scrapes from a json
    # TYPE example_value_active untyped
    example_value_active{environment="beta",id="id-A"} 1
    example_value_active{environment="beta",id="id-C"} 1
    # HELP example_value_boolean Example of sub-level value scrapes from a json
    # TYPE example_value_boolean untyped
    example_value_boolean{environment="beta",id="id-A"} 1
    example_value_boolean{environment="beta",id="id-C"} 0
    # HELP example_value_count Example of sub-level value scrapes from a json
    # TYPE example_value_count untyped
    example_value_count{environment="beta",id="id-A"} 1
    example_value_count{environment="beta",id="id-C"} 3
    

    In questo output, le stringhe come example_value_active sono la metrica con etichette e valori tra parentesi graffe. Il valore dei dati segue l'etichetta impostata.

Aggiungi il ricevitore e la pipeline di Ops Agent

Per configurare Ops Agent per l'importazione delle metriche da JSON Exporter: devi modificare la configurazione dell'agente per aggiungere Ricevente e pipeline Prometheus. Per l'esempio di JSON Exporter, utilizza la seguente procedura:

  1. Modifica il file di configurazione di Ops Agent, /etc/google-cloud-ops-agent/config.yaml e aggiungi il seguente Prometheus le voci ricevitore e pipeline:

    metrics:
      receivers:
        prometheus:
            type: prometheus
            config:
              scrape_configs:
                - job_name: 'json_exporter'
                  scrape_interval: 10s
                  metrics_path: /probe
                  params:
                    module: [default]
                    target: [http://localhost:8000/examples/data.json]
                  static_configs:
                    - targets: ['localhost:7979']
      service:
        pipelines:
          prometheus_pipeline:
            receivers:
              - prometheus
     

    Se il file contiene già altre voci di configurazione, aggiungi il parametro Ricevitore e pipeline Prometheus alle istanze metrics e service voci. Per ulteriori informazioni, consulta la sezione Metriche. configurazioni.

    Per esempi di rietichettatura delle configurazioni nel ricevitore, vedi Configurazione del ricevitore aggiuntiva.

Riavvia Ops Agent

Per applicare le modifiche alla configurazione, devi riavviare Ops Agent.

LINUX

  1. Per riavviare l'agente, esegui questo comando sull'istanza:

    sudo service google-cloud-ops-agent restart
    
  2. Per confermare che l'agente è stato riavviato, esegui questo comando verifica che i componenti di "Metrics Agent" e "Agente Logging" data di inizio:

    sudo systemctl status google-cloud-ops-agent"*"
    

Windows

  1. Connettiti all'istanza utilizzando RDP o uno strumento simile e accedi a Windows.

  2. Apri un terminale PowerShell con privilegi di amministratore facendo clic con il tasto destro del mouse sull'icona di PowerShell e selezionando Esegui come amministratore.

  3. Per riavviare l'agente, esegui il comando PowerShell seguente:

    Restart-Service google-cloud-ops-agent -Force
    
  4. Per confermare che l'agente è stato riavviato, esegui questo comando verifica che i componenti di "Metrics Agent" e "Agente Logging" data di inizio:

    Get-Service google-cloud-ops-agent*
    

Metriche di Prometheus in Cloud Monitoring

Puoi usare gli strumenti forniti da Cloud Monitoring con i dati raccolte dal ricevitore Prometheus. Ad esempio, puoi tracciare i dati utilizzando Esplora metriche, come descritto in Console Google Cloud per Monitoring. Le seguenti sezioni descrivono gli strumenti di query disponibili in Cloud Monitoring con Metrics Explorer:

Puoi creare dashboard e criteri di avviso di Cloud Monitoring per le metriche. Per informazioni sulle dashboard tipi di grafici che puoi utilizzare, consulta Dashboard e grafici. Per informazioni sui criteri di avviso, consulta Utilizzare gli avvisi .

Puoi visualizzare le metriche anche in altre interfacce, ad esempio Prometheus UI e Grafana. Per informazioni sulla configurazione di queste interfacce, consulta seguenti sezioni della documentazione di Google Cloud Managed Service per Prometheus:

Usa PromQL

PromQL è il linguaggio di query consigliato per le metriche importate utilizzando Ricevitore Prometheus.

Il modo più semplice per verificare che i dati Prometheus vengano importati è utilizzare la pagina Esplora metriche di Cloud Monitoring nella console Google Cloud:

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

    Vai a Esplora metriche

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

  2. Nella barra degli strumenti della riquadro Query Builder, seleziona il pulsante con  MQL o  PromQL.

  3. Verifica che PromQL sia selezionato con l'opzione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti. consente di formattare la query.

  4. Inserisci la seguente query nell'editor, e poi fai clic su Esegui query:

    up
    

Se i dati vengono importati, vedrai un grafico come il seguente:

Grafico di Metrics Explorer per la metrica json-exporter up.

Se esegui l'esempio di esportazione JSON, puoi anche eseguire query come le seguenti:

  • Esegui query su tutti i dati relativi a una specifica metrica esportata in base al nome, ad esempio:

    example_value_count
    

    Di seguito è riportato un grafico per example_value_count, che include le etichette definite dall'applicazione JSON Exporter e le etichette aggiunte Ops Agent:

    Grafico di Metrics Explorer per la metrica example_value_count json-exporter.

  • Query sui dati per una metrica esportata che ha avuto origine in uno specifico nello spazio dei nomi. Il valore dell'etichetta namespace è Compute Engine l'ID istanza, un numero lungo come 5671897148133813325, assegnato VM. Una query ha il seguente aspetto:

    example_value_count{namespace="INSTANCE_ID"}
    
  • Esegui una query sui dati che corrispondono a un'espressione regolare specifica. Il file JSON L'esportazione emette metriche con un'etichetta id con valori come id-A, id-B, id-C. Per filtrare in base a metriche con una corrispondenza dell'etichetta id questo pattern, utilizza la seguente query:

    example_value_count{id=~"id.*"}
    

Per ulteriori informazioni sull'uso di PromQL in Metrics Explorer grafici di Cloud Monitoring, consulta PromQL in Cloud Monitoring.

Utilizza MQL

Per visualizzare i dati Prometheus come Cloud Monitoring di serie temporali e per creare grafici e dashboard, puoi anche le interfacce basate su menu, o MQL, Di seguito viene mostrata una semplice in Metrics Explorer:

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

    Vai a Esplora metriche

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

  2. Specifica i dati da visualizzare nel grafico. Oltre a utilizzare il parametro Nella scheda PromQL descritta in precedenza, puoi anche utilizzare MQL.

    • Per utilizzare MQL, segui questi passaggi:

      1. Nella barra degli strumenti della riquadro Query Builder, seleziona il pulsante con  MQL o  PromQL.
      2. Verifica che sia selezionato MQL con l'opzione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti. consente di formattare la query.
      3. Inserisci la seguente query:

        fetch prometheus_target::prometheus.googleapis.com/up/gauge
        
      4. Fai clic su Esegui query.

    • Per utilizzare l'interfaccia basata su menu, procedi nel seguente modo:

      1. Nel campo Tipo di risorsa, digita "prometheus". per filtrare quindi seleziona Target Prometheus.

      2. Nel campo Metrica, digita "up/". per filtrare l'elenco, quindi Seleziona prometheus/up/gauge.

Il grafico risultante da una di queste query mostra gli stessi dati di nel grafico mostrato con l'esempio di PromQL.

La risorsa prometheus_target

In Cloud Monitoring, i dati delle serie temporali vengono scritti in base a una risorsa di testo. Per le metriche Prometheus, il tipo di risorsa monitorata prometheus_target. Monitoraggio delle query per Metriche Prometheus non scritte in PromQL devi specificare questo tipo di risorsa.

La risorsa prometheus_target ha le seguenti etichette, che puoi da utilizzare per filtrare e manipolare i dati sottoposti a query:

  • project_id: l'identificatore del progetto Google Cloud, ad esempio my-project, in cui Ops Agent in esecuzione.
  • location: la regione Google Cloud o AWS in cui Ops Agent è in esecuzione; ad esempio us-east1-a (Google Cloud) o aws:us-east-1a (AWS).
  • cluster: sempre __gce__ per le metriche Prometheus raccolte utilizzando Ops Agent.
  • namespace: l'ID istanza Compute Engine della VM su cui viene eseguita Ops Agent è in esecuzione.
  • job: il valore del campo job_name nella configurazione del destinatario.
  • instance: l'etichetta dell'istanza del target Prometheus, estratta dal la configurazione del ricevitore; per impostazione predefinita il target.

I valori di queste etichette vengono impostati durante la raccolta. I valori di le etichette namespace, location e cluster sono immutabili. Se anche le metriche di cui è stato eseguito lo scraping dalla tua applicazione hanno queste etichette, Ops Agent aggiunge il prefisso alle etichette di scraping con la stringa exported_.

Visualizza l'utilizzo e la diagnostica delle metriche in Cloud Monitoring

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.

Rietichettatura: modifica dei dati di cui eseguire lo scraping

Puoi utilizzare la rietichettatura per modificare il set di etichette della destinazione dello scrape prima dell'estrazione dello scraping del target. Se disponi di più passaggi in una configurazione di rietichettatura, vengono applicati nell'ordine in cui nel file di configurazione.

Ops Agent crea un insieme di meta etichette (etichette che hanno come prefisso stringa __meta_. Queste meta-etichette registrano informazioni sui Istanza Compute Engine su cui Ops Agent in esecuzione. Etichette con prefisso __, incluse le meta etichette, sono disponibili solo durante la rietichettatura. Puoi rietichettare le etichette per acquisire e i valori di queste etichette nelle etichette acquisite tramite scraping.

La rietichettatura delle metriche viene applicata ai campioni; questo è l'ultimo passaggio prima per l'importazione. Puoi utilizzare la rietichettatura delle metriche per eliminare serie temporali che non devi importare; l'eliminazione di queste serie temporali riduce il numero di campioni importati, con un conseguente calo dei costi.

Per saperne di più sulla rietichettatura, consulta la documentazione di Prometheus per relabel_config e metric_relabel_configs.

Meta etichette di Compute Engine disponibili durante la rietichettatura

Quando Ops Agent esegue lo scraping delle metriche, include un insieme di meta-etichette la cui si basano sulla configurazione della VM di Compute Engine su cui mentre l'agente è in esecuzione. Puoi utilizzare queste etichette e il prompt relabel_configs per aggiungere ulteriori metadati alle tue metriche su alla VM da cui sono stati importati. Per un esempio, vedi Configurazione del ricevitore aggiuntiva.

Sulle destinazioni sono disponibili le seguenti meta etichette che puoi utilizzare nel Sezione relabel_configs:

  • __meta_gce_instance_id: l'ID numerico di Compute Engine istanza (locale)
  • __meta_gce_instance_name: il nome dell'istanza Compute Engine (locale); Ops Agent inserisce automaticamente questo valore nella etichetta instance_name modificabile sulle metriche.
  • __meta_gce_machine_type: URL completo o parziale del tipo di macchina dell'oggetto istanza; Ops Agent inserisce automaticamente questo valore nella etichetta machine_type modificabile sulle metriche.
  • __meta_gce_metadata_NAME: ogni elemento di metadati dell'istanza
  • __meta_gce_network: l'URL di rete dell'istanza
  • __meta_gce_private_ip: l'indirizzo IP privato dell'istanza
  • __meta_gce_interface_ipv4_NAME: indirizzo IPv4 di ogni interfaccia denominata
  • __meta_gce_project: il progetto Google Cloud su cui è in esecuzione l'istanza (locale)
  • __meta_gce_public_ip: l'indirizzo IP pubblico dell'istanza, se presente
  • __meta_gce_tags: elenco separato da virgole di tag istanza
  • __meta_gce_zone: l'URL della zona Compute Engine in cui è in esecuzione l'istanza

I valori di queste etichette vengono impostati all'avvio di Ops Agent. Se modifichi e i valori, devi riavviare Ops Agent per aggiornarli.

Configurazione destinatario aggiuntivo

Questa sezione fornisce esempi che utilizzano gli attributi relabel_configs e Sezioni metric_relabel_configs del ricevitore Prometheus da modificare il numero e la struttura delle metriche importate. Questa sezione include inoltre una versione modificata del ricevitore per l'esempio JSON Exporter che utilizza le opzioni di rietichettatura.

Aggiungi metadati della VM

Puoi utilizzare la sezione relabel_configs per aggiungere etichette alle metriche. Ad esempio, di seguito viene utilizzata una meta-etichetta, __meta_gce_zone, fornita da Ops Agent per creare un'etichetta della metrica, zone, che viene conservato dopo la rietichettatura, perché zone non ha il prefisso __.

Per un elenco delle meta etichette disponibili, vedi Meta etichette di Compute Engine disponibili durante la rietichettatura. Alcuni dei Le meta etichette vengono rietichettate automaticamente in base alla configurazione predefinita di Ops Agent.

relabel_configs:
  - source_labels: [__meta_gce_zone]
    regex: '(.+)'
    replacement: '${1}'
    target_label: zone

Il ricevitore Prometheus mostrato in Esempio: configurazione di Ops Agent per Prometheus include l'aggiunta di questa etichetta.

Elimina metriche

Puoi utilizzare la sezione metrics_relabel_configs per rilasciare metriche che che non vuoi importare; questo pattern è utile per il contenimento dei costi. Ad esempio, puoi utilizzare il seguente pattern per rilasciare qualsiasi metrica con un nome che corrisponde a METRIC_NAME_REGEX_1 o METRIC_NAME_REGEX_2:

metric_relabel_configs:
  - source_labels: [ __name__ ]
    regex: 'METRIC_NAME_REGEX_1'
    action: drop
  - source_labels: [ __name__ ]
    regex: 'METRIC_NAME_REGEX_2'
    action: drop

Aggiungi etichette statiche

Puoi utilizzare la sezione metrics_relabel_configs per aggiungere etichette statiche a tutte le metriche importate dal ricevitore Prometheus. Puoi utilizzare le seguenti opzioni pattern per aggiungere le etichette staticLabel1 e staticLabel2 a tutte le metriche importate:

metric_relabel_configs:
  - source_labels: [ __address__ ]
    action: replace
    replacement: 'STATIC_VALUE_1'
    target_label: staticLabel1
  - source_labels: [ __address__ ]
    action: replace
    replacement: 'STATIC_VALUE_2'
    target_label: staticLabel2

La seguente versione del ricevitore Prometheus per l'esportazione JSON utilizza questi pattern di configurazione per:

  • Imposta l'etichetta zone dal valore dell'elemento __meta_gce_zone meta-etichetta fornita da Ops Agent.
  • Rilascia la metrica example_global_value dell'esportatore.
  • Aggiungi l'etichetta staticLabel con il valore "Un valore statico" a tutti i valori importati metrics.
metrics:
  receivers:
    prometheus:
        type: prometheus
        config:
          scrape_configs:
            - job_name: 'json_exporter'
              scrape_interval: 10s
              metrics_path: /probe
              params:
                module: [default]
                target: [http://localhost:8000/examples/data.json]
              static_configs:
                - targets: ['localhost:7979']
              relabel_configs:
                - source_labels: [__meta_gce_zone]
                  regex: '(.+)'
                  replacement: '${1}'
                  target_label: zone
              metric_relabel_configs:
                - source_labels: [ __name__ ]
                  regex: 'example_global_value'
                  action: drop
                - source_labels: [ __address__ ]
                  action: replace
                  replacement: 'A static value'
                  target_label: staticLabel