Prometheus-Messwerte erfassen

In diesem Dokument wird die Konfiguration und Verwendung eines Ops-Agent-Messwertempfängers beschrieben, mit dem Sie Messwerte von Prometheus in Compute Engine erfassen können. Dieses Dokument beschreibt auch ein Beispiel, mit dem Sie den Empfänger testen können.

Nutzer von Google Kubernetes Engine konnten Prometheus-Messwerte mit Google Cloud Managed Service for Prometheus erfassen. Der Prometheus-Empfänger des Ops-Agents bietet Nutzern von Compute Engine die gleiche Funktion.

Sie können alle von Cloud Monitoring bereitgestellten Tools, einschließlich PromQL, verwenden, um die vom Prometheus-Empfänger erfassten Daten anzusehen und zu analysieren. Sie können beispielsweise Metrics Explorer verwenden, wie in Google Cloud Console für Monitoring beschrieben, um Ihre Daten abzufragen. Sie können auch Dashboards und Benachrichtigungsrichtlinien für Cloud Monitoring erstellen, um Ihre Prometheus-Messwerte zu überwachen. Wir empfehlen die Verwendung von PromQL als Abfragesprache für Ihre Prometheus-Messwerte.

Sie können Ihre Prometheus-Messwerte auch in Schnittstellen außerhalb von Cloud Monitoring aufrufen, z. B. in der Prometheus-Benutzeroberfläche und Grafana.

Den richtigen Empfänger auswählen

Bevor Sie sich für die Verwendung des Prometheus-Empfängers entscheiden, prüfen Sie, ob bereits eine Ops-Agent-Einbindung für die von Ihnen verwendete Anwendung vorhanden ist. Informationen zu den vorhandenen Einbindungen in den Ops-Agent finden Sie unter Anwendungen von Drittanbietern überwachen. Wenn es eine vorhandene Integration gibt, empfehlen wir ihre Verwendung. Weitere Informationen finden Sie unter Vorhandene Integration auswählen.

Wir empfehlen die Verwendung des Ops-Agent-Prometheus-Empfängers, wenn Folgendes zutrifft:

  • Sie haben Erfahrung mit Prometheus, verlassen sich auf den Prometheus-Standard und verstehen, wie sich Faktoren wie Extraktionsintervall und Kardinalität auf Ihre Kosten auswirken können. Weitere Informationen finden Sie unter Prometheus-Empfänger auswählen.

  • Die Software, die Sie überwachen, ist nicht bereits in der vorhandenen Ops-Agent-Integration enthalten.

Vorhandene Integrationen

Der Ops-Agent bietet Integrationen für eine Reihe von Drittanbieteranwendungen. Diese Integrationen bieten Ihnen folgende Vorteile:

  • Eine Reihe ausgewählter workload.googleapis.com-Messwerte für die Anwendung
  • Dashboard zur Visualisierung der Messwerte

Für die über eine vorhandene Integration aufgenommenen Messwerte gelten die bytebasierten Preise für vom Agent erfasste Messwerte. Die Anzahl und Typen der Messwerte sind im Voraus bekannt. Sie können diese Informationen verwenden, um die Kosten zu schätzen.

Wenn Sie beispielsweise die Apache-Webserver-Integration (httpd) verwenden, erfasst der Ops-Agent fünf skalare Messwerte. Jeder Datenpunkt zählt als 8 Byte. Wenn Sie die Standardabtasthäufigkeit von Ops-Agent bei 60 Sekunden halten, beträgt die Anzahl der pro Tag aufgenommenen Byte 57.600 * die Anzahl der Hosts:

  • 8 (Byte) * 1440 (Minuten pro Tag) * 5 (Messwerte) * n (Hosts) oder
  • 57.600 * n (Hosts)

Weitere Informationen zur Kostenschätzung finden Sie unter Preisbeispiele basierend auf aufgenommenen Byte.

Der Prometheus-Empfänger

Wenn Sie den Ops-Agent zum Erfassen von Prometheus-Messwerten verwenden, gilt Folgendes:

  • Hinweis: Die Anzahl und Kardinalität der von Ihrer Anwendung ausgegebenen Messwerte liegen unter Ihrer Kontrolle. Es gibt keine spezielle Auswahl von Messwerten. Wie viele Daten Sie aufnehmen, hängt von der Konfiguration Ihrer Prometheus-Anwendung und des Ops-Agent-Prometheus-Empfängers ab.

  • Messwerte werden als prometheus.googleapis.com-Messwerte in Cloud Monitoring aufgenommen. Diese Messwerte werden bei der Aufnahme in Cloud Monitoring als eine Art von „benutzerdefinierten“ Messwerten klassifiziert und unterliegen den Kontingenten und Limits für benutzerdefinierte Messwerte.

  • Sie müssen alle erforderlichen Cloud Monitoring-Dashboards basierend auf den aufgenommenen Messwerten und Ihren Geschäftsanforderungen entwerfen und erstellen. Informationen zum Erstellen von Dashboards finden Sie unter Dashboards und Diagramme.

  • Die Preise für die Messwertaufnahme basieren auf der Anzahl der aufgenommenen Beispiele. Um Ihre Kosten bei Verwendung des Prometheus-Empfängers zu schätzen, müssen Sie die Anzahl der Beispiele ermitteln, die Sie während eines Abrechnungszeitraums wahrscheinlich erfassen. Die Schätzung basiert auf folgenden Faktoren:

    • Skalarmesswerte; jeder Wert ist eine Stichprobe
    • Anzahl der Verteilungsmesswerte; jedes Histogramm zählt als (2 + Anzahl von Buckets im Histogramm)
    • Abtasthäufigkeit jedes Messwerts
    • Anzahl der Hosts, von denen die Messwerte erfasst werden

    Weitere Informationen zum Zählen der Proben und zum Schätzen von Kosten finden Sie unter Preisbeispiele basierend auf aufgenommenen Proben.

Vorbereitung

Zum Erfassen von Prometheus-Messwerten mit dem Prometheus-Empfänger müssen Sie die Ops-Agent-Version 2.25.0 oder höher installieren.

Der Ops-Agent-Empfänger erfordert einen Endpunkt, der Prometheus-Messwerte ausgibt. Daher muss Ihre Anwendung entweder einen solchen Endpunkt direkt bereitstellen oder einen Endpunkt mithilfe einer Prometheus-Bibliothek oder eines Exporters verfügbar machen. Viele Bibliotheken und Sprach-Frameworks wie Spring und DropWizard oder Anwendungen wie StatsD, HundeStatsD und Graphite, die Nicht-Prometheus-Messwerte ausgeben, können Prometheus-Clientbibliotheken oder -Exporter verwenden, um Messwerte im Prometheus-Stil auszugeben. So geben Sie beispielsweise Prometheus-Messwerte aus:

Wenn Prometheus-Messwerte von einer Anwendung direkt oder mithilfe einer Bibliothek oder eines Exporters ausgegeben werden, können die Messwerte von einem Ops-Agent erfasst werden, der mit einem Prometheus-Empfänger konfiguriert ist.

Ops-Agent konfigurieren

Das Konfigurationsmodell des Ops-Agents umfasst in der Regel Folgendes:

  • Empfänger, die bestimmen, welche Messwerte erfasst werden.
  • Prozessoren, die beschreiben, wie der Ops-Agent die Messwerte ändern kann.
  • Pipelines, die Empfänger und Prozessoren zu einem Dienst verknüpfen.

Die Konfiguration für die Aufnahme von Prometheus-Messwerten unterscheidet sich geringfügig: Es gibt keine Prozessoren.

Konfiguration für Prometheus-Messwerte

Die Konfiguration des Ops-Agents für die Aufnahme von Prometheus-Messwerten unterscheidet sich von der üblichen Konfiguration:

  • Sie erstellen keinen Ops-Agent-Prozessor für Prometheus-Messwerte. Der Prometheus-Empfänger unterstützt fast alle Konfigurationsoptionen, die in der Prometheus-scrape_config-Spezifikation angegeben sind, einschließlich Relabeling-Optionen.

    Anstatt einen Ops-Agent-Prozessor zu verwenden, wird jede Messwertverarbeitung mit den Abschnitten relabel_configs und metric_relabel_configs der Escape-Konfiguration durchgeführt, wie im Prometheus-Empfänger angegeben. Weitere Informationen finden Sie unter Relabeling: Ändern der extrahierten Daten.

  • Die Prometheus-Pipeline wird nur im Hinblick auf den Prometheus-Empfänger definiert. Sie geben keine Prozessoren an. Außerdem können Sie in der Pipeline keine Nicht-Prometheus-Empfänger für Prometheus-Messwerte verwenden.

Der Großteil der Empfängerkonfiguration ist die Spezifikation der Extraktionskonfiguration. Wenn Sie diese Optionen der Kürze halber weglassen, zeigt das folgende Beispiel die Struktur einer Ops-Agent-Konfiguration, die einen Prometheus-Empfänger verwendet. Sie geben die Werte für RECEIVER_ID und PIPELINE_ID an.

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

  service:
    pipelines:
      PIPELINE_ID:
        receivers: [RECEIVER_ID]

Im folgenden Abschnitt wird der Prometheus-Empfänger ausführlicher beschrieben. Ein funktionales Beispiel für einen Empfänger und eine Pipeline finden Sie unter Empfänger und Pipeline des Ops-Agents hinzufügen.

Der Prometheus-Empfänger

Um einen Empfänger für Prometheus-Messwerte anzugeben, erstellen Sie einen Messwertempfänger vom Typ prometheus und geben eine Reihe von scrape_config-Optionen an. Der Empfänger unterstützt alle scrape_config-Optionen von Prometheus mit Ausnahme von Folgendem:

  • Die Abschnitte zur Diensterkennung, *_sd_config.
  • Die Einstellung honor_labels.

Sie können daher vorhandene Scraping-Konfigurationen kopieren und für den Ops-Agent mit keinen oder geringfügigen Änderungen verwenden.

Die vollständige Struktur des Prometheus-Empfängers ist so dargestellt:

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

Beispiele für das Relabeling von Konfigurationen finden Sie unter Zusätzliche Empfängerkonfiguration.

Beispiel: Ops-Agent für Prometheus konfigurieren

In diesem Abschnitt wird gezeigt, wie Sie den Ops-Agent so konfigurieren, dass Prometheus-Messwerte aus einer Anwendung erfasst werden. In diesem Beispiel wird der von der Prometheus-Community bereitgestellte JSON Exporter (json_exporter) verwendet, der Prometheus-Messwerte an Port 7979 verfügbar macht.

Zum Einrichten des Beispiels sind die folgenden Ressourcen erforderlich, die Sie möglicherweise installieren müssen:

  • git
  • curl
  • make
  • python3
  • Go-Sprache, Version 1.19 oder höher

Anwendung erstellen oder konfigurieren

So rufen Sie den JSON-Exporter ab und führen ihn aus:

  1. Klonen Sie das Repository json_exporter und prüfen Sie den Exporter mit den folgenden Befehlen:

    git clone https://github.com/prometheus-community/json_exporter.git
    
    cd json_exporter
    
    git checkout v0.5.0
    
  2. Erstellen Sie den Exporter mit dem folgenden Befehl:

    make build
    
  3. Starten Sie den Python-HTTP-Server mit dem folgenden Befehl:

    python3 -m http.server 8000 &
    
  4. Starten Sie den JSON-Exporter mit dem folgenden Befehl:

    ./json_exporter --config.file examples/config.yml &
    
  5. Fragen Sie den JSON-Exporter ab, um sicherzustellen, dass er ausgeführt wird, und geben Sie Messwerte an Port 7979 frei:

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

    Wenn die Abfrage erfolgreich war, sollte die Ausgabe in etwa so aussehen:

    # 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 dieser Ausgabe sind die Strings wie example_value_active die Messwertnamen mit Labels und Werten in geschweiften Klammern. Der Datenwert folgt dem Labelsatz.

Ops-Agent-Empfänger und -Pipeline hinzufügen

Um den Ops-Agent so zu konfigurieren, dass er Messwerte aus der JSON Exporter-Anwendung aufnimmt, müssen Sie die Konfiguration des Agents ändern, um einen Prometheus-Empfänger und eine Pipeline hinzuzufügen. Verwenden Sie für das Beispiel für den JSON-Exporter die folgenden Schritte:

  1. Bearbeiten Sie die Ops-Agent-Konfigurationsdatei /etc/google-cloud-ops-agent/config.yaml und fügen Sie die folgenden Prometheus-Empfänger und Pipelineeinträge hinzu:

    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
     

    Wenn bereits andere Konfigurationseinträge in dieser Datei vorhanden sind, fügen Sie den vorhandenen Prometheus-Empfänger und die -Pipeline zu den vorhandenen Einträgen metrics und service hinzu. Weitere Informationen finden Sie unter Messwertkonfigurationen.

    Beispiele für das Relabeling von Konfigurationen im Empfänger finden Sie unter Zusätzliche Empfängerkonfiguration.

Ops-Agent neu starten

Sie müssen den Ops-Agent neu starten, um Konfigurationsänderungen anzuwenden.

LINUX

  1. Führen Sie den folgenden Befehl auf der Instanz aus, um den Agent neu zu starten:

    sudo service google-cloud-ops-agent restart
    
  2. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Agent neu gestartet wurde. Prüfen Sie dann, ob die Komponenten „Metrics-Agent“ und „Logging-Agent“ gestartet wurden:

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

Windows

  1. Stellen Sie mithilfe von RDP oder einem ähnlichen Tool eine Verbindung zu Ihrer Instanz her und melden Sie sich bei Windows an.

  2. Öffnen Sie ein PowerShell-Terminal mit Administratorberechtigungen. Klicken Sie dazu mit der rechten Maustaste auf das PowerShell-Symbol und wählen Sie Als Administrator ausführen aus.

  3. Führen Sie den folgenden PowerShell-Befehl aus, um den Agent neu zu starten:

    Restart-Service google-cloud-ops-agent -Force
    
  4. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Agent neu gestartet wurde. Prüfen Sie dann, ob die Komponenten „Metrics-Agent“ und „Logging-Agent“ gestartet wurden:

    Get-Service google-cloud-ops-agent*
    

Prometheus-Messwerte in Cloud Monitoring

Sie können die von Cloud Monitoring bereitgestellten Tools mit den vom Prometheus-Empfänger erfassten Daten verwenden. Sie können beispielsweise Daten mit dem Metrics Explorer grafisch darstellen, wie in Google Cloud Console für Monitoring beschrieben. In den folgenden Abschnitten werden die Abfrageparameter beschrieben, die in Cloud Monitoring mit Metrics Explorer verfügbar sind:

Sie können Cloud Monitoring-Dashboards und Benachrichtigungsrichtlinien für Ihre Messwerte erstellen. Informationen zu Dashboards und zu den verschiedenen Diagrammtypen, die Sie verwenden können, finden Sie unter Dashboards und Diagramme. Informationen zu den Benachrichtigungsrichtlinien finden Sie unter Benachrichtigungsrichtlinien verwenden.

Sie können Ihre Messwerte auch auf anderen Oberflächen aufrufen, z. B. in der Prometheus-Benutzeroberfläche und Grafana. Informationen zum Einrichten dieser Schnittstellen finden Sie in den folgenden Abschnitten der Dokumentation zu Google Cloud Managed Service for Prometheus:

PromQL verwenden

PromQL ist die empfohlene Abfragesprache für Messwerte, die mit dem Prometheus-Empfänger aufgenommen werden.

Am einfachsten können Sie prüfen, ob Ihre Prometheus-Daten aufgenommen werden. Verwenden Sie dazu die Cloud Monitoring Metrics Explorer-Seite in der Google Cloud Console:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Metrics Explorer aus:

    Zum Metrics Explorer

  2. Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche  MQL oder  PromQL.

  3. Prüfen Sie, ob PromQL in der Ein-/Aus-Schaltfläche Sprache ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.

  4. Geben Sie im Editor folgende Abfrage ein und klicken Sie dann auf Abfrage ausführen:

    up
    

Wenn Ihre Daten aufgenommen werden, sehen Sie ein Diagramm wie das folgende:

Metrics Explorer-Diagramm für den Messwert „json-exporter“.

Wenn Sie das Beispiel für den JSON-Exporter ausführen, können Sie auch Abfragen wie die folgenden senden:

  • Fragen Sie alle Daten für einen bestimmten exportierten Messwert anhand des Namens ab. Beispiel:

    example_value_count
    

    Im Folgenden wird ein Diagramm für den example_value_count angezeigt, einschließlich der von der JSON Exporter-Anwendung definierten Labels und der vom Ops-Agent hinzugefügten Labels:

    Metrics Explorer-Diagramm für den Messwert „json-exporter example_value_count“.

  • Fragen Sie Daten für einen exportierten Messwert ab, der aus einem bestimmten Namespace stammt. Der Wert des Labels namespace ist die Compute Engine-Instanz-ID, eine lange Zahl wie 5671897148133813325, die der VM zugewiesen ist. Eine Abfrage sieht so aus:

    example_value_count{namespace="INSTANCE_ID"}
    
  • Fragen Sie Daten ab, die einem bestimmten regulären Ausdruck entsprechen. Der JSON-Exporter gibt Messwerte mit dem Label id aus, das Werte wie id-A, id-B und id-C enthält. Verwenden Sie die folgende Abfrage, um nach Messwerten mit einem id-Label zu filtern, das diesem Muster entspricht:

    example_value_count{id=~"id.*"}
    

Weitere Informationen zur Verwendung von PromQL in Metrics Explorer- und Cloud Monitoring-Diagrammen finden Sie unter PromQL in Cloud Monitoring.

MQL verwenden

Wenn Sie Ihre Prometheus-Daten als Cloud Monitoring-Zeitachse aufrufen und Diagramme und Dashboards erstellen möchten, können Sie auch die menübasierten Schnittstellen oder MQL verwenden. Im Folgenden sehen Sie eine einfache Abfrage im Metrics Explorer:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Metrics Explorer aus:

    Zum Metrics Explorer

  2. Geben Sie die Daten an, die im Diagramm angezeigt werden sollen. Zusätzlich zum zuvor beschriebenen Tab PromQL können Sie auch MQL verwenden.

    • So verwenden Sie MQL:

      1. Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche  MQL oder  PromQL.
      2. Prüfen Sie, ob MQL im Schalter Sprache ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.
      3. Geben Sie die folgende Abfrage ein:

        fetch prometheus_target::prometheus.googleapis.com/up/gauge
        
      4. Klicken Sie auf Abfrage ausführen.

    • So verwenden Sie die menügesteuerte Schnittstelle:

      1. Geben Sie im Feld Ressourcentyp "prometheus" ein, um die Liste zu filtern, und wählen Sie dann Prometheus-Ziel aus.

      2. Geben Sie im Feld Messwert "up/" ein, um die Liste zu filtern, und wählen Sie prometheus/up/gauge aus.

Das Diagramm, das sich aus einer dieser Abfragen ergibt, zeigt die gleichen Daten wie das Diagramm mit dem PromQL-Beispiel.

prometheus_target-Ressource

In Cloud Monitoring werden Zeitachsendaten für einen Typ von überwachter Ressource geschrieben. Bei Prometheus-Messwerten lautet der Typ der überwachten Ressource prometheus_target. Monitoring-Abfragen für Prometheus-Messwerte, die nicht in PromQL geschrieben sind, müssen diesen Ressourcentyp angeben.

Die Ressource prometheus_target hat die folgenden Labels, die Sie zum Filtern und Bearbeiten von abgefragten Daten verwenden können:

  • project_id: Die Kennung des Google Cloud-Projekts, z. B. my-project, in dem der Ops-Agent ausgeführt wird.
  • location: Die Google Cloud- oder AWS-Region, in der der Ops-Agent ausgeführt wird. z. B. us-east1-a (Google Cloud) oder aws:us-east-1a (AWS).
  • cluster: Immer __gce__ für Prometheus-Messwerte, die mithilfe des Ops-Agents erfasst werden.
  • namespace: Die Compute Engine-Instanz-ID der VM, auf der der Ops-Agent ausgeführt wird.
  • job: Der Wert des Felds job_name in der Empfängerkonfiguration.
  • instance: Das Instanzlabel des Prometheus-Ziels, das aus der Empfängerkonfiguration stammt; die Standardeinstellung ist das Ziel.

Die Werte für diese Labels werden während der Erfassung festgelegt. Die Werte der Labels namespace, location und cluster sind unveränderlich. Wenn die aus der Anwendung extrahierten Messwerte auch diese Labels haben, stellt der Ops-Agent die extrahierten Labels mit dem String exported_ voran.

Messwertnutzung und -diagnose in Cloud Monitoring ansehen

Auf der Cloud Monitoring-Seite Messwertverwaltung finden Sie Informationen, mit denen Sie den Betrag steuern können, den Sie für kostenpflichtige Messwerte ausgeben, ohne die Beobachtbarkeit zu beeinträchtigen. Die Seite Messwertverwaltung enthält folgende Informationen:

  • Aufnahmevolumen für byte- und probenbasierte Abrechnung für Messwertdomains und einzelne Messwerte
  • Daten zu Labels und zur Kardinalität von Messwerten
  • Verwenden Messwerten in Benachrichtigungsrichtlinien und benutzerdefinierten Dashboards
  • Rate von Messwert-Schreibfehlern

So rufen Sie die Seite Messwertverwaltung auf:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Messwertverwaltung aus:

    Zur Messwertverwaltung

  2. Wählen Sie in der Symbolleiste das Zeitfenster aus. Standardmäßig werden auf der Seite Messwertverwaltung Informationen zu den Messwerten angezeigt, die am Vortag erfasst wurden.

Weitere Informationen zur Seite Messwertverwaltung finden Sie unter Messwertnutzung ansehen und verwalten.

Labeling durchführen: Daten-Scraping ändern

Mit der Labelerstellung können Sie den Labelsatz des Extraktionsziels oder seiner Messwerte ändern, bevor das Ziel extrahiert wird. Wenn Sie mehrere Schritte in einer Relabeling-Konfiguration haben, werden diese in der Reihenfolge angewendet, in der sie in der Konfigurationsdatei aufgeführt sind.

Der Ops-Agent erstellt einen Satz von Metalabels (Labels mit dem String __meta_). Diese Metalabels zeichnen Informationen zur Compute Engine-Instanz auf, auf der der Ops-Agent ausgeführt wird. Labels mit dem Präfix __, einschließlich der Metalabels, sind nur während der Labelerstellung verfügbar. Mit dem Relabeling können Sie die Werte dieser Labels in Labels erfassen, die extrahiert werden.

Das Messwert-Labeling wird auf Beispiele angewendet. der letzte Schritt vor der Aufnahme ist. Sie können Messwert-Labeling verwenden, um Zeitachsen zu löschen, die Sie nicht aufnehmen müssen. Das Löschen dieser Zeitachsen verringert die Anzahl der aufgenommenen Stichproben, was die Kosten senken kann.

Weitere Informationen zum Relabeling finden Sie in der Prometheus-Dokumentation für relabel_config und metric_relabel_configs.

Während der Labelerstellung sind Compute Engine-Metalabels verfügbar

Wenn der Ops-Agent Messwerte extrahiert, enthält er eine Reihe von Metalabels, deren Werte auf der Konfiguration der Compute Engine-VM basieren, auf der der Agent ausgeführt wird. Sie können diese Labels und den Abschnitt relabel_configs des Prometheus-Empfängers verwenden, um Ihren Messwerten zusätzliche Metadaten zur VM hinzuzufügen, von der sie aufgenommen wurden. Ein Beispiel finden Sie unter Zusätzliche Empfängerkonfiguration.

Die folgenden Meta-Labels stehen für Ziele zur Verfügung, die Sie im Abschnitt relabel_configs verwenden können:

  • __meta_gce_instance_id: die numerische ID der Compute Engine-Instanz (lokal)
  • __meta_gce_instance_name: der Name der Compute Engine-Instanz (lokal). Der Ops-Agent platziert diesen Wert automatisch in dem änderbaren Label instance_name für Ihre Messwerte.
  • __meta_gce_machine_type: Vollständige oder Teil-URL des Maschinentyps der Instanz Der Ops-Agent platziert diesen Wert automatisch in den änderbaren Labels machine_type für Ihre Messwerte.
  • __meta_gce_metadata_NAME: jedes Metadatenelement der Instanz
  • __meta_gce_network: Netzwerk-URL der Instanz
  • __meta_gce_private_ip: die private IP-Adresse der Instanz.
  • __meta_gce_interface_ipv4_NAME: IPv4-Adresse jeder benannten Schnittstelle
  • __meta_gce_project: Google Cloud-Projekt, in dem die Instanz ausgeführt wird (lokal)
  • __meta_gce_public_ip: die öffentliche IP-Adresse der Instanz, sofern vorhanden
  • __meta_gce_tags: eine durch Kommas getrennte Liste von Instanztags
  • __meta_gce_zone: die URL der Compute Engine-Zone, in der die Instanz ausgeführt wird

Die Werte dieser Labels werden beim Start des Ops-Agents festgelegt. Wenn Sie die Werte ändern, müssen Sie den Ops-Agent neu starten, um die Werte zu aktualisieren.

Zusätzliche Empfängerkonfiguration

Dieser Abschnitt enthält Beispiele, in denen die Abschnitte relabel_configs und metric_relabel_configs des Prometheus-Empfängers verwendet werden, um die Anzahl und Struktur der aufgenommenen Messwerte zu ändern. Dieser Abschnitt enthält auch eine modifizierte Version des Empfängers für das JSON Exporter-Beispiel, das die Relabeling-Optionen verwendet.

VM-Metadaten hinzufügen

Im Abschnitt relabel_configs können Sie Messwerten Labels hinzufügen. Im folgenden Beispiel wird ein Meta-Label __meta_gce_zone verwendet, das vom Ops-Agent bereitgestellt wird, um das Messwertlabel zone zu erstellen, das nach der Labelerstellung beibehalten wird, da zone nicht das Präfix __ haben.

Eine Liste der verfügbaren Metalabels finden Sie unter Compute-Metalabels mit Relabeling. Einige Meta-Labels werden von der Standardkonfiguration des Ops-Agents für Sie umbenannt.

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

Der unter Beispiel: Ops-Agent für Prometheus konfigurieren angezeigte Prometheus-Empfänger enthält das Hinzufügen dieses Labels.

Messwerte entfernen

Sie können den Abschnitt metrics_relabel_configs verwenden, um Messwerte zu löschen, die Sie nicht aufnehmen möchten. Dieses Muster ist nützlich, um die Kosten zu begrenzen. Sie können beispielsweise mit dem folgenden Muster jeden Messwert mit einem Namen löschen, der mit METRIC_NAME_REGEX_1 oder METRIC_NAME_REGEX_2 übereinstimmt:

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

Statische Labels hinzufügen

Sie können den Abschnitt metrics_relabel_configs verwenden, um allen vom Prometheus-Empfänger aufgenommenen Messwerten statische Labels hinzuzufügen. Sie können das folgende Muster verwenden, um allen aufgenommenen Messwerten die Labels staticLabel1 und staticLabel2 hinzuzufügen:

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

Die folgende Version des Prometheus-Empfängers für das JSON Exporter-Beispiel verwendet diese Konfigurationsmuster für Folgendes:

  • Legen Sie das Label zone auf dem Wert des Meta-Labels __meta_gce_zone fest, das vom Ops-Agent bereitgestellt wird.
  • Löschen Sie den Messwert example_global_value des Exporters.
  • Fügen Sie allen aufgenommenen Messwerten das Label staticLabel mit dem Wert „Ein statischer Wert“ hinzu.
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