Anwendungsspezifische Labels
Anwendungsspezifische Labels sind Labels oder Attribute, die in Log-, Messwert- oder Trace-Daten eingefügt werden. Diese Labels identifizieren den Dienst oder die Arbeitslast, von dem bzw. der die Daten generiert wurden. Sie können anwendungsspezifische Labels wie alle anderen Labels verwenden. Sie können Daten beispielsweise nach der ID einer Anwendung filtern. Von unterstützter Infrastruktur generierte Telemetriedaten enthalten diese Labels automatisch. Mit Instrumentierung können von Ihrer Anwendung geschriebene Messwerte und Traces diese Labels enthalten.
In diesem Abschnitt wird a.b.{x,y} als a.b.x und a.b.y interpretiert.
Messwertdaten aus der Instrumentierung, die Sie Ihren Anwendungen hinzugefügt haben, können die folgenden Messwertlabels enthalten:
metric.labels.apphub_application_{container,id,location}metric.labels.apphub_workload_{criticality_type,environment_type,id}
Trace-Spans, die von der Instrumentierung generiert werden, die Sie Ihren Anwendungen hinzugefügt haben, können die folgenden Ressourcenattribute enthalten:
gcp.apphub.application.{container,id,location}gcp.apphub.{workload,service}.{criticality_type,environment_type,id}
Informationen zu OpenTelemetry-HTTP-Servermesswerten
Für Arbeitslasten, die in der Google Kubernetes Engine ausgeführt werden, gibt es keine Systemmesswerte, die den Traffic, die Serverfehlerrate oder die Latenz für HTTP-Anfragen melden können. Die Werte für diese Golden Signals können jedoch aus dem Messwert http.server.request.duration abgeleitet werden, der automatisch von der OpenTelemetry-HTTP-Clientbibliothek erfasst wird.
Der googlemanagedprometheus-Exporter konvertiert den OpenTelemetry-Messwert http.server.request.duration in einen Prometheus-Messwert mit den folgenden Eigenschaften:
- Name:
prometheus/http_server_request_duration_seconds/histogram - Messwert:
prometheus.googleapis.com/http_server_request_duration_seconds/histogram - Ressourcentypen:
prometheus_target - Einheit:
s - Art:
CUMULATIVE - Werttyp:
DISTRIBUTION
Wenn Ihr Google Cloud -Projekt den Messwert http_server_request_duration_seconds enthält, werden in Ihren Application Monitoring-Dashboards die Traffic-Stufe, die Serverfehlerrate und die Latenz für HTTP-Anfragen angezeigt.
Informationen zum Konfigurieren Ihrer Anwendung für den Export des Messwerts http_server_request_duration_seconds finden Sie im Abschnitt OpenTelemetry in Kubernetes verwenden in diesem Dokument.
Anwendungs-Labels zu Messwertdaten hinzufügen
Google Cloud Observability versucht, die Quelle von Prometheus-Messwerten zu identifizieren, indem die Attribute, die an die an Ihr Projekt gesendeten Prometheus-Messwerte angehängt sind, mit den von der App Hub API zurückgegebenen Daten verglichen werden. Im Rest dieses Abschnitts werden Konfigurationen aufgeführt, mit denen Google Cloud Observability die App Hub-Anwendung identifizieren kann.
OpenTelemetry in Kubernetes verwenden
So hängen Sie mit Google Cloud Observability Anwendungs-Labels an Messwertdaten an, die von den Arbeitslasten Ihrer Anwendung generiert werden, die in Google Kubernetes Engine ausgeführt werden:
Instrumentieren Sie die Anwendung mit OpenTelemetry.
- Allgemeine Informationen finden Sie unter Beobachtbarkeit für Anwendungsentwickler.
- Links zu Go-, Java-, Node.js- und Python-Beispielen sowie Informationen zu diesen Beispielen finden Sie unter Übersicht über Instrumentierungsbeispiele.
Stellen Sie entweder den von Google entwickelten Collector oder den OpenTelemetry Collector bereit und konfigurieren Sie den Collector so:
- Messwertdaten mit dem
googlemanagedprometheus-Exporter exportieren. - Konfigurieren Sie den Prozessor
k8sattributesso, dass Metadaten wienamespaceaus der Umgebung extrahiert werden. - Konfigurieren Sie den
transform/collision-Prozessor, um die Attributeproject_id,location,clusterundnamespacefestzulegen. - Konfigurieren Sie den Prozessor
transform/aco-gke, um die Labelstop_level_controller_nameundtop_level_controller_typezu füllen.
Ein Beispiel finden Sie unter
otlp-k8s-ingest/config/collector.yaml, der Konfigurationsdatei für den von Google erstellten Collector. Weitere Informationen zu diesem Collector finden Sie unter Von Google erstellten OpenTelemetry Collector in GKE bereitstellen.- Messwertdaten mit dem
Registrieren Sie die Arbeitslasten Ihrer Anwendung bei App Hub.
Google Cloud Managed Service for Prometheus in der GKE verwenden
So hängen Sie mit Google Cloud Observability Anwendungs-Labels an Messwertdaten an, die von den Arbeitslasten Ihrer Anwendung generiert werden, die in Google Kubernetes Engine-Clustern ausgeführt werden:
Verwenden Sie Google Cloud Managed Service for Prometheus mit verwalteter Erfassung.
Stellen Sie Ihre Arbeitslasten in einem Google Kubernetes Engine-Cluster bereit, dessen Version mindestens
1.32.1-gke.1439000ist.Registrieren Sie die Arbeitslasten Ihrer Anwendung bei App Hub.
Google Cloud Managed Service for Prometheus ermittelt die Werte der Anwendungs-Labels über Service Discovery-Metadaten und fügt dann die top_level_controller_{name,type}-Labels dem targetLabels.metadata hinzu.
Während der Messwertaufnahme verwendet Google Cloud Observability die top_level_controller_{name,type}-Labels und die App Hub API, um Ihre App Hub-Anwendung zu identifizieren und Ihren Messwertdaten die entsprechenden Labels hinzuzufügen.
Cloud Run verwenden
So hängen Sie mit Google Cloud Observability Anwendungs-Labels an Messwertdaten an, die von Ihren Cloud Run-Arbeitslasten generiert werden:
Instrumentieren Sie Ihre Anwendung entweder mit OpenTelemetry oder dem Managed Service for Prometheus-Sidecar für Cloud Run. Informationen zu diesen Ansätzen finden Sie in den folgenden Dokumenten:
Registrieren Sie die Arbeitslasten Ihrer Anwendung bei App Hub.
Messwertlabels prüfen
So prüfen Sie, ob Ihre Anwendung Prometheus-Messwerte an Ihr Projekt sendet:
-
Prüfen Sie, ob Ihre Anwendung Prometheus-Messwerte an Ihr Projekt sendet:
-
Rufen Sie in der Google Cloud Console das leaderboard auf der Seite des Metrics Explorer 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 der Google Cloud Console Ihr Projekt von Google Cloud aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Anwendungsverwaltung konfigurierten Ordners aus.
- Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie
Prometheus Targetin die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:- Wählen Sie im Menü Aktive Ressourcen die Option Prometheus-Ziel aus.
- Einen Messwert wählen Sie in den Menüs Aktive Messwertkategorien und Aktive Messwerte aus.
- Klicken Sie auf Übernehmen.
Verwenden Sie das Element Filter, um Filter hinzuzufügen, mit denen Zeitreihen aus den Abfrageergebnissen entfernt werden.
- Konfigurieren Sie, wie die Daten angezeigt werden.
Maximieren Sie das Menü Filter, um Labels aufzurufen. Jeder Eintrag im Menü Filter entspricht einem Label.
Weitere Informationen zum Konfigurieren eines Diagramms finden Sie unter Messwerte bei Verwendung von Metrics Explorer auswählen.
Wenn keine Prometheus-Messwerte angezeigt werden, prüfen Sie Ihre Konfiguration.
-
Wenn Ihre Prometheus-Messwerte keine Anwendungs-Labels enthalten, gehen Sie so vor:
Prüfen Sie, ob Sie Ihre Arbeitslast oder Ihren Dienst bei App Hub registriert haben.
Prüfen Sie Ihre Logs auf Fehler.
Wenn Sie beispielsweise einen OpenTelemetry Collector oder den von Google entwickelten Collector bereitstellen und in der Google Kubernetes Engine ausführen, können Sie Folgendes tun:
-
Rufen Sie in der Google Cloud Console die Seite Arbeitslasten auf:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Kubernetes Engine lautet.
- Wählen Sie Ihr Collector-Deployment und dann den Tab Logs aus.
-
Wenn Sie einen OpenTelemetry Collector oder den von Google erstellten Collector verwenden, prüfen Sie die Konfiguration Ihres Collectors. Ihr Collector muss Folgendes tun:
- Messwertdaten mit dem
googlemanagedprometheus-Exporter exportieren. - Konfigurieren Sie den Prozessor
k8sattributesso, dass Metadaten wienamespaceaus der Umgebung extrahiert werden. - Konfigurieren Sie den
transform/collision-Prozessor, um die Attributeproject_id,location,clusterundnamespacefestzulegen. - Konfigurieren Sie den Prozessor
transform/aco-gke, um die Labelstop_level_controller_nameundtop_level_controller_typezu füllen.
Ein Beispiel finden Sie in der von Google erstellten Collector-Konfigurationsdatei:
otlp-k8s-ingest/config/collector.yaml.- Messwertdaten mit dem
Anwendungsattribute zu Trace-Spans hinzufügen
Sie instrumentieren Ihre Anwendung nicht so, dass anwendungsspezifische Attribute an die Spans angehängt werden, die an Ihr Google Cloud -Projekt gesendet werden. Stattdessen verwendet Google Cloud Observability OpenTelemetry-Ressourcenattribute und die App Hub API, um die mit einem Span verknüpfte App Hub-Anwendung zu identifizieren. Anschließend werden die anwendungsspezifischen Attribute hinzugefügt, bevor der Span gespeichert wird.
Damit Google Cloud Observability anwendungsspezifische Ressourcenattribute an Trace-Daten anhängt, die von den Diensten und Arbeitslasten Ihrer Anwendung generiert werden, müssen Sie Folgendes tun:
Instrumentieren Sie Ihre Anwendung mit OpenTelemetry und konfigurieren Sie Ihren Exporter so, dass Trace-Daten an den Endpunkt der Telemetry (OTLP) API gesendet werden.
Wir empfehlen einen Collector-basierten Export. In den folgenden Dokumenten werden Collectors beschrieben, die alle erforderlichen Attribute an die Span-Daten anhängen:
- Von Google erstellten OpenTelemetry-Collector in der Google Kubernetes Engine bereitstellen
- Von Google entwickelten OpenTelemetry Collector in Cloud Run bereitstellen
- OpenTelemetry Collector auf Container-Optimized OS bereitstellen
Wenn Sie keinen der vorherigen Collectors verwenden, müssen Sie Ihre Instrumentierung oder Ihren Collector so konfigurieren, dass alle erforderlichen Attribute angehängt werden.
Stellen Sie Ihre Dienste und Arbeitslasten auf einer unterstützten Infrastruktur bereit.
Registrieren Sie Ihre Dienste und Arbeitslasten in App Hub.
Weitere Informationen zu diesen Attributen finden Sie unter Semantische Konventionen fürGoogle Cloud App Hub.
Erforderliche Attribute
Dieser Abschnitt gilt für Konfigurationen, bei denen Sie keinen der empfohlenen Collectors verwenden. Sie können beispielsweise einen eigenen Collector schreiben oder Ihre Trace-Daten direkt exportieren.
Attribute, die Ihr Projekt und den Ressourcenstandort identifizieren
Legen Sie die folgenden Attribute fest:
cloud.provider: Legen Sie"gcp"fest.cloud.account.id: Auf Ihre Projekt-ID festlegen.cloud.availability_zoneodercloud.region: Legen Sie die Zone oder Region fest, in der sich Ihre Ressourcen befinden. Sie können beide Attribute festlegen.
Mit Ressourcendetektoren können Sie die vorherigen Attribute festlegen:
resourcedetectionprocessor- Go: Google Cloud Ressourcendetektor
- Java:
opentelemetry-java-contrib/gcp-resources - Node.js:
resource-detector-gcp - Python:
opentelemetry-resourcedetector-gcp
Attribute für Google Kubernetes Engine-Arbeitslasten
Konfigurieren Sie für eine Google Kubernetes Engine-Arbeitslast Ihren Collector oder Ihre Instrumentierung so, dass Folgendes geschieht:
- Extrahieren Sie Metadaten wie
namespaceaus der Umgebung. - Extrahieren Sie relevante Metadaten aus dem Prozessor
k8sattributes. - Legen Sie die Attribute
project_id,location,clusterundnamespacefür Messwerte fest. - Legen Sie die Labels
top_level_controller_nameundtop_level_controller_typefür Messwerte fest.
Ein Collector-basiertes Beispiel finden Sie unter otlp-k8s-ingest/config/collector.yaml.
Dieser Collector verwendet den Prozessor k8sattributesprocessor.
Attribute für VM-Arbeitslasten
Wenn Sie Ihre Anwendung auf einer VM bereitstellen, muss diese VM mit einer verwalteten Instanzgruppe (MIG) verknüpft sein. Außerdem müssen Sie die folgenden Attribute anhängen:
gcp.gce.instance_group_manager.namegcp.gce.instance_group_manager.regionodergcp.gce.instance_group_manager.zone