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:
- Spring-Nutzer können die Bibliothek Spring Metrics verwenden.
- StatsD-Nutzer können das Paket
statsd_exporter
verwenden. - Graphite-Nutzer können das Paket
graphite_exporter
verwenden.
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
undmetric_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:
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
Erstellen Sie den Exporter mit dem folgenden Befehl:
make build
Starten Sie den Python-HTTP-Server mit dem folgenden Befehl:
python3 -m http.server 8000 &
Starten Sie den JSON-Exporter mit dem folgenden Befehl:
./json_exporter --config.file examples/config.yml &
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:
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
undservice
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
Führen Sie den folgenden Befehl auf der Instanz aus, um den Agent neu zu starten:
sudo service google-cloud-ops-agent restart
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
Stellen Sie mithilfe von RDP oder einem ähnlichen Tool eine Verbindung zu Ihrer Instanz her und melden Sie sich bei Windows an.
Ö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.
Führen Sie den folgenden PowerShell-Befehl aus, um den Agent neu zu starten:
Restart-Service google-cloud-ops-agent -Force
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:
-
Rufen Sie in der Google Cloud Console die Seite leaderboard Metrics Explorer auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche code MQL oder code PromQL.
Prüfen Sie, ob PromQL in der Ein-/Aus-Schaltfläche PromQL ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.
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:
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: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 wie5671897148133813325
, 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 wieid-A
,id-B
undid-C
enthält. Verwenden Sie die folgende Abfrage, um nach Messwerten mit einemid
-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:
-
Rufen Sie in der Google Cloud Console die Seite leaderboard Metrics Explorer auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
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:
- Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche code MQL oder code MQL.
- 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.
Geben Sie die folgende Abfrage ein:
fetch prometheus_target::prometheus.googleapis.com/up/gauge
Klicken Sie auf Abfrage ausführen.
So verwenden Sie die menügesteuerte Schnittstelle:
Geben Sie im Feld Ressourcentyp "prometheus" ein, um die Liste zu filtern, und wählen Sie dann Prometheus-Ziel aus.
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) oderaws: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 Feldsjob_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 können Sie den Betrag steuern, den Sie für abrechenbare 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
- Anzahl der Lesevorgänge für jeden Messwert.
- Verwenden Messwerten in Benachrichtigungsrichtlinien und benutzerdefinierten Dashboards
- Rate von Messwert-Schreibfehlern
Mit der Messwertverwaltung können Sie auch unnötige Messwerte ausschließen, sodass keine Kosten für die Datenaufnahme anfallen.
So rufen Sie die Seite Messwertverwaltung auf:
-
Rufen Sie in der Google Cloud Console die Seite
Messwertverwaltung auf:Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- 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 Labelinstance_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 Labelsmachine_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