Requête ProMAL - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Requête ProMAL

Lorsque vous ingérez OpenTelemetry des métriques dans le protocole OTLP ( CloudWatch via OpenTelemetry Protocol), le modèle de données OTLP hiérarchique est aplati sous forme d'étiquettes compatibles avec PROMQL. Cette section décrit la structure des étiquettes, la syntaxe ProMQL pour interroger ces étiquettes et le support de l'UTF-8 dans ProMQL.

Note

Dans Prometheus 3, Promql prend en charge les caractères UTF-8 complets dans les noms des métriques et les noms d'étiquettes. Cela est particulièrement important pour les métriques OTLP, car les conventions OpenTelemetry sémantiques utilisent des points dans les noms d'attributs tels que. service.name Auparavant, ces points étaient remplacés par des traits de soulignement lors de la traduction, ce qui provoquait des divergences entre ce qui était défini dans les OTel conventions et ce qui était interrogeable dans Prometheus.

Lorsque vous utilisez ProMQL dans CloudWatch, la convention de @ préfixe distingue les étiquettes OTLP des étiquettes Prometheus standard. Les champs de chaque étendue utilisent un @ préfixe à double portée (par exemple,@resource.@schema_url), tandis que les attributs utilisent un préfixe à @ portée unique, par exemple,. @resource.service.name Les attributs de point de données prennent également en charge l'accès nu (non préfixé) pour une compatibilité descendante avec les requêtes ProMQL standard, par exemple, et sont équivalents. {"http.server.active_requests"} {"@datapoint.@name"="http.server.active_requests"}

Une expression ProMQL est placée entre accolades, spécifiant le nom de la métrique et un ensemble facultatif de correspondants d'étiquettes. L'exemple suivant sélectionne toutes les séries chronologiques pour la http.server.active_requests métrique :

{"http.server.active_requests"}

L'exemple suivant sélectionne toutes les séries chronologiques pour la métrique http.server.active_requests dont l'attribut de OpenTelemetry ressource service.name est égal à myservice :

{"http.server.active_requests", "@resource.service.name"="myservice"}

Vous pouvez combiner plusieurs correcteurs d'étiquettes dans une seule requête. L'exemple suivant sélectionne toutes les séries chronologiques pour la http.server.active_requests métrique dont l'attribut de OpenTelemetry ressource service.name est égal myservice dans toutes les régions des États-Unis :

{"http.server.active_requests", "@resource.service.name"="myservice", "@aws.region"=~"us-.*"}

L'exemple suivant montre une requête de plage. Il calcule la valeur moyenne de tous les points de données dans une plage de temps spécifiée pour chaque série chronologique :

avg_over_time( {"http.server.active_requests", "@resource.service.name"="myservice"}[5m] )

Le tableau suivant récapitule les conventions de préfixes pour chaque étendue OTLP :

Champ d'application OTLP Préfixe des champs Préfixe d'attributs Exemple

Ressource

@resource.@

@resource.

@resource.service.name="myservice"

Champ d'instrumentation

@instrumentation.@

@instrumentation.

@instrumentation.@name="otel-go/metrics"

Point de données

@datapoint.@

@datapoint.ou nu

cpu="cpu0" ou @datapoint.cpu="cpu0"

AWS-réservé

N/A

@aws.

@aws.account_id="123456789"

Interrogation des AWS métriques vendues avec ProMQL

Pour pouvoir interroger les AWS métriques vendues dans ProMQL, vous devez d'abord activer l' OTel enrichissement des métriques vendues. Voir : Activation des métriques vendues dans ProMQL.

Une fois que vous avez activé OTel l'enrichissement, AWS les métriques vendues peuvent être consultées via ProMQL avec des étiquettes supplémentaires. Le nom de la métrique est identique au nom de la CloudWatch métrique d'origine, et les CloudWatch dimensions d'origine sont disponibles sous forme d'attributs de point de données. Les libellés suivants sont disponibles (l'exemple ci-dessous concerne une instance EC2) :

Étiquette ProMQL Description Exemple

InstanceId

CloudWatch Dimension d'origine, sous forme d'attribut de point de données

i-0123456789abcdef0

"@resource.cloud.resource_id"

ARN complet de la ressource

arn:aws:ec2:us-east-1:123456789012:instance/i-0123456789abcdef0

"@resource.cloud.provider"

Fournisseur de cloud

aws

"@resource.cloud.region"

AWS Région d'origine de cette métrique

us-east-1

"@resource.cloud.account.id"

AWS ID de compte d'où provient cette métrique

123456789012

"@instrumentation.@name"

Nom du champ d'application de l'instrumentation identifiant le service source

cloudwatch.aws/ec2

"@instrumentation.cloudwatch.source"

Identifiant du service source

aws.ec2

"@instrumentation.cloudwatch.solution"

Identifiant de la solution d'enrichissement

CloudWatchOTelEnrichment

"@aws.tag.Environment"

AWS balise de ressource

production

"@aws.account"

AWS compte où cette métrique a été ingérée (étiquette du système)

123456789012

"@aws.region"

AWS Région où cette métrique a été ingérée (étiquette du système)

us-east-1

L'exemple suivant sélectionne Invocations une fonction Lambda spécifique :

histogram_sum({Invocations, FunctionName="my-api-handler"})

L'exemple suivant sélectionne Lambda Errors pour toutes les fonctions associées à une équipe spécifique :

histogram_sum( {Errors, "@instrumentation.@name"="cloudwatch.aws/lambda", "@aws.tag.Team"="backend"} )

L'exemple suivant calcule le nombre total de Invocations Lambda groupé par équipe :

sum by ("@aws.tag.Team")( {Invocations, "@instrumentation.@name"="cloudwatch.aws/lambda"} )

L'exemple suivant sélectionne toutes les séries chronologiques pour la CPUUtilization métrique EC2. L'utilisation de "@instrumentation.@name"="cloudwatch.aws/ec2" est destinée à correspondre exclusivement à CPUUtilization d'EC2 et non à celle d'autres AWS services tels qu'Amazon Relational Database Service :

histogram_avg({CPUUtilization, "@instrumentation.@name"="cloudwatch.aws/ec2"})