1. Au-delà des métriques serveur #
Ce que voit Database Observability.
Le principe #
Un exporteur Prometheus dit que la base est lente ; Database Observability dit quelle requête, avec quel plan d'exécution et quels verrous. Les composants database_observability.mysql et database_observability.postgres collectent ces détails et les envoient à Loki ; l'application Database Observability de Grafana Cloud les présente.
Les collecteurs MySQL #
| Collecteur | Par défaut | Rôle |
|---|---|---|
| query_details | oui, 1 min | Requêtes normalisées (250 maximum) |
| query_samples | oui, 10 s | Échantillons d’exécutions réelles |
| schema_details | oui, 1 min | Tables et colonnes |
| explain_plans | oui, 1 min | Plans d’exécution (EXPLAIN) |
| locks | non, 30 s | Attentes de verrous au-delà de 1 s |
| table_stats, index_stats | non | Statistiques des tables et index |
2. La configuration #
MySQL vers Loki et Mimir.
config.alloy #
local.file "mysql_dsn" {
filename = "/etc/alloy/secrets/mysql-dsn"
is_secret = true
}
prometheus.exporter.mysql "orders" {
data_source_name = local.file.mysql_dsn.content
}
database_observability.mysql "orders" {
data_source_name = local.file.mysql_dsn.content
forward_to = [loki.write.default.receiver]
targets = prometheus.exporter.mysql.orders.targets
enable_collectors = ["locks", "table_stats"]
}
prometheus.scrape "orders" {
targets = database_observability.mysql.orders.targets
forward_to = [prometheus.remote_write.mimir.receiver]
}
loki.write "default" {
endpoint {
url = "http://loki:3100/loki/api/v1/push"
}
}
prometheus.remote_write "mimir" {
endpoint {
url = "http://mimir:9009/api/v1/push"
}
}Configuration validée avec alloy validate (Alloy v1.21.3, novembre 2026).
- Le DSN est un secret : lu par
local.fileavecis_secret = true, il n'apparaît ni dans l'interface ni dans les logs d'Alloy. targets: réutilise ceux deprometheus.exporter.mysqlpour relier détails et métriques de la même instance.allow_update_performance_schema_settings(faux par défaut) : nécessaire pour quequery_samplesetsetup_actorsajustent eux-mêmes performance_schema.
Côté base #
Créez un utilisateur dédié en lecture seule, avec accès à performance_schema (MySQL) ou pg_stat_statements et pg_monitor (PostgreSQL). Les droits exacts dépendent de la version : suivez le guide de configuration de Grafana pour votre moteur.
Non exécuté ici : sans serveur MySQL dans notre environnement, la configuration a été validée, pas lancée.
