

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.

# Interroger vos métriques Prometheus
<a name="AMP-query"></a>

Maintenant que les métriques sont ingérées dans l’espace de travail, vous pouvez les interroger.

Pour créer des tableaux de bord avec des représentations visuelles de vos indicateurs, vous pouvez utiliser un service tel qu'Amazon Managed Grafana. Amazon Managed Grafana (ou une instance autonome de Grafana) peut créer une interface graphique qui affiche vos statistiques dans une grande variété de styles de présentation. Pour plus d'informations sur Amazon Managed Grafana, consultez le guide de l'utilisateur d'[Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/).

Vous pouvez également créer des requêtes ponctuelles, explorer vos données ou créer vos propres applications qui utilisent vos métriques à l'aide de requêtes directes. Les requêtes directes utilisent l'API Amazon Managed Service for Prometheus et le langage de requête standard Prometheus, ProMQL, pour obtenir des données depuis votre espace de travail Prometheus. Pour plus d’informations sur ProMQL et sa syntaxe, consultez la section [Querying Prometheus](https://prometheus.io/docs/prometheus/latest/querying/basics/) dans la documentation Prometheus.

**Topics**
+ [Aide-mémoire ProMQL](#promql-cheat-sheet)
+ [Sélecteurs de base](#promql-basic-selectors)
+ [Sélecteurs vectoriels de plage](#promql-range-selectors)
+ [Opérateurs d'agrégation](#promql-aggregation-operators)
+ [Fonctions courantes](#promql-functions)
+ [Opérateurs binaires](#promql-operators)
+ [Exemples de requêtes pratiques](#promql-practical-examples)
+ [Sécurisez vos requêtes métriques](AMP-secure-querying.md)
+ [Configuration d’Amazon Managed Grafana pour une utilisation avec Amazon Managed Service for Prometheus](AMP-amg.md)
+ [Configuration de Grafana open source ou Grafana Enterprise pour une utilisation avec Amazon Managed Service for Prometheus](AMP-onboard-query-standalone-grafana.md)
+ [Requête à l’aide de Grafana exécutée dans un cluster Amazon EKS](AMP-onboard-query-grafana-7.3.md)
+ [Requête utilisant Prometheus-compatible APIs](AMP-onboard-query-APIs.md)
+ [Obtenez des statistiques sur l'utilisation de vos requêtes pour chaque requête](AMP-stats.md)

## Aide-mémoire ProMQL
<a name="promql-cheat-sheet"></a>

Utilisez cette aide-mémoire ProMQL (Prometheus Query Language) comme référence rapide lorsque vous recherchez des métriques dans votre espace de travail Amazon Managed Service for Prometheus. Avec ProMQL, vous pouvez sélectionner et agréger des données de séries chronologiques en temps réel grâce à son langage de requête fonctionnel.

Pour plus de détails sur ProMQL, consultez [ProMQL Cheat](https://promlabs.com/promql-cheat-sheet/) Sheet sur le site Web. *PromLabs*

## Sélecteurs de base
<a name="promql-basic-selectors"></a>

Sélectionnez les séries chronologiques par nom de métrique et par étiquette correspondante :

```
# Select all time series with the metric name http_requests_total
http_requests_total

# Select time series with specific label values
http_requests_total{job="prometheus", method="GET"}

# Use label matchers
http_requests_total{status_code!="200"}          # Not equal
http_requests_total{status_code=~"2.."}          # Regex match
http_requests_total{status_code!~"4.."}          # Negative regex match
```

## Sélecteurs vectoriels de plage
<a name="promql-range-selectors"></a>

Sélectionnez une gamme d'échantillons au fil du temps :

```
# Select 5 minutes of data
http_requests_total[5m]

# Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks), y (years)
cpu_usage[1h]
memory_usage[30s]
```

## Opérateurs d'agrégation
<a name="promql-aggregation-operators"></a>

Données agrégées sur plusieurs séries chronologiques :

```
# Sum all values
sum(http_requests_total)

# Sum by specific labels
sum by (job) (http_requests_total)
sum without (instance) (http_requests_total)

# Other aggregation operators
avg(cpu_usage)                    # Average
min(response_time)               # Minimum
max(response_time)               # Maximum
count(up)                        # Count of series
stddev(cpu_usage)               # Standard deviation
```

## Fonctions courantes
<a name="promql-functions"></a>

Appliquez des fonctions pour transformer vos données :

```
# Rate of increase per second (for counters)
rate(http_requests_total[5m])

# Increase over time range
increase(http_requests_total[1h])

# Derivative (for gauges)
deriv(cpu_temperature[5m])

# Mathematical functions
abs(cpu_usage - 50)              # Absolute value
round(cpu_usage, 0.1)           # Round to nearest 0.1
sqrt(memory_usage)              # Square root

# Time functions
time()                          # Current Unix timestamp
hour()                          # Hour of day (0-23)
day_of_week()                   # Day of week (0-6, Sunday=0)
```

## Opérateurs binaires
<a name="promql-operators"></a>

Effectuez des opérations arithmétiques et logiques :

```
# Arithmetic operators
cpu_usage + 10
memory_total - memory_available
disk_usage / disk_total * 100

# Comparison operators (return 0 or 1)
cpu_usage > 80
memory_usage < 1000
response_time >= 0.5

# Logical operators
(cpu_usage > 80) and (memory_usage > 1000)
(status_code == 200) or (status_code == 201)
```

## Exemples de requêtes pratiques
<a name="promql-practical-examples"></a>

Requêtes de surveillance courantes que vous pouvez utiliser dans votre espace de travail Amazon Managed Service for Prometheus :

```
# CPU usage percentage
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# Memory usage percentage
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100

# Request rate per second
sum(rate(http_requests_total[5m])) by (job)

# Error rate percentage
sum(rate(http_requests_total{status_code=~"5.."}[5m])) / 
sum(rate(http_requests_total[5m])) * 100

# 95th percentile response time
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

# Top 5 instances by CPU usage
topk(5, avg by (instance) (cpu_usage))
```