Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
PromQL abfragen
Wenn Sie OpenTelemetry Metriken in OpenTelemetry das CloudWatch via Protocol (OTLP) aufnehmen, wird das hierarchische OTLP-Datenmodell auf ProMQL-kompatible Labels reduziert. In diesem Abschnitt werden die Labelstruktur, die PromQL-Syntax für die Abfrage dieser Labels und die UTF-8-Unterstützung in PromQL beschrieben.
Anmerkung
PromQL in Prometheus 3 unterstützt vollständige UTF-8-Zeichen in Metriknamen und Labelnamen. Dies ist besonders wichtig für OTLP-Metriken, da OpenTelemetry semantische Konventionen Punkte in Attributnamen verwenden, wie z. service.name Bisher wurden diese Punkte bei der Übersetzung durch Unterstriche ersetzt, was zu Diskrepanzen zwischen dem, was in OTel Konventionen definiert war, und dem, was in Prometheus abfragbar war, führte.
Bei der Verwendung von PromQL in CloudWatch unterscheidet die @ Präfixkonvention OTLP-bezogene Labels von Standard-Prometheus-Labels. Felder innerhalb jedes Bereichs verwenden ein doppeltes @ Präfix (zum Beispiel@resource.@schema_url), während Attribute ein Präfix mit einem einzigen Gültigkeitsbereich verwenden, zum Beispiel. @ @resource.service.name Datenpunktattribute unterstützen auch den bloßen Zugriff (ohne Präfix), um beispielsweise die Abwärtskompatibilität mit Standard-PromQL-Abfragen zu gewährleisten, und sind gleichwertig. {"http.server.active_requests"} {"@datapoint.@name"="http.server.active_requests"}
Ein PromQL-Ausdruck wird in geschweifte Klammern eingeschlossen und gibt den Namen der Metrik und einen optionalen Satz von Label-Matchern an. Im folgenden Beispiel werden alle Zeitreihen für die Metrik ausgewählt: http.server.active_requests
{"http.server.active_requests"}
Im folgenden Beispiel werden alle Zeitreihen für die Metrik ausgewählt, http.server.active_requests bei denen das OpenTelemetry Ressourcenattribut service.name gleich istmyservice:
{"http.server.active_requests", "@resource.service.name"="myservice"}
Sie können mehrere Label-Matcher in einer einzigen Abfrage kombinieren. Im folgenden Beispiel werden alle Zeitreihen für die http.server.active_requests Metrik ausgewählt, bei denen das OpenTelemetry Ressourcenattribut myservice in allen US-Regionen service.name gleich ist:
{"http.server.active_requests", "@resource.service.name"="myservice", "@aws.region"=~"us-.*"}
Das folgende Beispiel zeigt eine Bereichsabfrage. Sie berechnet den Durchschnittswert aller Datenpunkte innerhalb eines bestimmten Zeitbereichs für jede Zeitreihe:
avg_over_time( {"http.server.active_requests", "@resource.service.name"="myservice"}[5m] )
In der folgenden Tabelle sind die Präfixkonventionen für jeden OTLP-Bereich zusammengefasst:
| OTLP-Bereich | Präfix für Felder | Präfix für Attribute | Beispiel |
|---|---|---|---|
Ressource |
|
|
|
Umfang der Instrumentierung |
|
|
|
Datenpunkt |
|
|
|
AWS-reserviert |
– |
|
|
Abfrage verkaufter Metriken mit PromQL AWS
Um AWS Verkaufsmetriken in PromQL abfragen zu können, müssen Sie zunächst die Anreicherung von Verkaufsmetriken aktivieren. OTel Siehe: Aktivierung von Verkaufsmetriken in PromQL.
Nachdem Sie die OTel Anreicherung aktiviert haben, können AWS Verkaufsmetriken über PromQL mit zusätzlichen Labels abgefragt werden. Der Metrikname ist derselbe wie der ursprüngliche CloudWatch Metrikname, und die ursprünglichen CloudWatch Dimensionen sind als Datenpunktattribute verfügbar. Die folgenden Labels sind verfügbar (das Beispiel unten bezieht sich auf eine EC2-Instance):
| PromQL-Etikett | Description | Beispiel |
|---|---|---|
|
Ursprüngliche CloudWatch Dimension als Datenpunkt-Attribut |
|
|
Vollständiger ARN der Ressource |
|
|
Cloud-Anbieter |
|
|
AWS Region, aus der diese Metrik stammt |
|
|
AWS Konto-ID, aus der diese Metrik stammt |
|
|
Name des Instrumentierungsbereichs, der den Quelldienst identifiziert |
|
|
Kennung des Quelldiensts |
|
|
Kennung der Anreicherungslösung |
|
|
AWS Ressourcen-Tag |
|
|
AWS Konto, in das diese Metrik aufgenommen wurde (Systemlabel) |
|
|
AWS Region, in der diese Metrik aufgenommen wurde (Systemlabel) |
|
Das folgende Beispiel wählt Invocations nach einer bestimmten Lambda-Funktion aus:
histogram_sum({Invocations, FunctionName="my-api-handler"})
Im folgenden Beispiel wird Lambda Errors für alle Funktionen ausgewählt, die mit einem bestimmten Team gekennzeichnet sind:
histogram_sum( {Errors, "@instrumentation.@name"="cloudwatch.aws/lambda", "@aws.tag.Team"="backend"} )
Das folgende Beispiel berechnet den gesamten Lambda, Invocations gruppiert nach Teams:
sum by ("@aws.tag.Team")( {Invocations, "@instrumentation.@name"="cloudwatch.aws/lambda"} )
Im folgenden Beispiel werden alle Zeitreihen für die CPUUtilization EC2-Metrik ausgewählt. Die Verwendung von "@instrumentation.@name"="cloudwatch.aws/ec2" dient ausschließlich dazu, die CPU-Auslastung von EC2 abzugleichen und nicht von anderen AWS Diensten wie Amazon Relational Database Service:
histogram_avg({CPUUtilization, "@instrumentation.@name"="cloudwatch.aws/ec2"})