• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Référence des métriques MySQL NRDOT

|View as Markdown (English)

Monitorez les performances de votre base de données MySQL avec des métriques complètes collectées par le NRDOT Collector. Par défaut, New Relic collecte les métriques référencées dans la section Métriques par défaut. Vous pouvez améliorer votre monitoring en activant les métriques souhaitées listées dans la section Métriques supplémentaires.

Métriques supplémentaires

Les métriques suivantes sont désactivées par défaut, mais peuvent être activées pour obtenir des informations détaillées sur les performances et l'état de santé de MySQL. Ces métriques sont organisées par fonctionnalité et la plupart nécessitent une connexion MySQL directe.

Événements de log

db.server.query_sample

Visibilité en temps réel sur les instructions de base de données en cours d’exécution : un instantané ponctuel pris à chaque collecte, et non un log d’exécution complet. Désactivé par défaut.

AttributDescription
db.system.namemysql
mysql.threads.thread_idIdentifiant unique pour le thread exécutant l'instruction
mysql.session.idPROCESSLIST_ID: l'ID de connexion visible via SHOW PROCESSLIST
user.nameUtilisateur du thread de premier plan ; vide pour les threads d'arrière-plan
db.namespaceBase de données actuelle du thread (processlist_db)
mysql.threads.processlist_commandType de commande, ou Sleep si inactif
mysql.threads.processlist_stateAction/état actuel du thread
db.query.textTexte de l'instruction SQL
mysql.events_statements_current.digestEmpreinte de l’instruction SHA-256
mysql.events_statements_current.timer_startCompteur de picosecondes monotone marquant le début de l'instruction : une clé stable par exécution à travers les cycles de collecte
mysql.events_statements_current.timer_waitTemps d'exécution écoulé, en secondes
mysql.events_waits_current.timer_waitTemps d’attente écoulé, en secondes (nécessite le consommateur events_waits_current)
mysql.wait_event_typeClassification d'attente de niveau supérieur dérivée du nom de l'événement d'attente (io, lock, synch), ou CPU/User sleep/other lorsqu'il n'y a pas d'attente réelle. Associé à mysql.wait_event.
mysql.wait_eventRépartition détaillée des attentes : le nom de l’événement d’attente sans son segment de catégorie (par exemple, table/sql/handler, mutex/innodb/checkpoint_state), ou CPU/User sleep/other lorsqu’il n’y a pas d’attente réelle. Associé à mysql.wait_event_type.
mysql.wait_typeNom brut et non traité de l'instrument qui a produit l'événement d'attente. Pour la répartition analysée/catégorisée, consultez mysql.wait_event_type / mysql.wait_event.
mysql.session.statuswaiting, running, ou other
mysql.event_idThread + numéro de l'événement actuel lorsque l'événement a commencé
client.address / client.portHôte/port du client (port renseigné sur MySQL 8.0.22+ uniquement, sinon 0)
network.peer.address / network.peer.portIdentique, comme attributs de couche réseau
mysql.blocking.blockerséventail JSON de {thread_id, session_id} tuples, un par bloqueur de verrou de ligne InnoDB simultané pour cette session (pas seulement le premier, s’il en existe plus d’un). "[]" lorsqu’il n’est pas bloqué ; le session_id d’un bloqueur est null s’il s’est déconnecté avant de pouvoir être résolu.
mysql.blocking.blocker.countNombre entier de bloqueurs simultanés. 0 signifie non bloqué.
mysql.session.client_nameIdentité auto-déclarée du pilote client (par exemple, MySQL Connector/J), provenant de session_connect_attrs. Vide si le pilote n'envoie pas d'attributs de connexion.
db.query.comment_tags / .nr_service_guidTags de commentaire de corrélation APM : voir (Facultatif) Configurer la corrélation APM-base de données
db.query.text.normalized.hashMD5 du SQL normalisé pour la corrélation inter-moteurs

Conseil

Filtrez le blocage avec mysql.blocking.blocker.count > 0, et non != 0. null != 0 évalue TRUE en NRQL, ce qui inclurait silencieusement les sessions non bloquées dans vos résultats.

db.server.top_query

Les requêtes consommant le plus de temps d’exécution, agrégées côté serveur par le propre performance_schema.events_statements_summary_by_digest de MySQL : un véritable compteur d’exécution par digest, et non un nombre d’échantillons. Désactivé par défaut.

AttributDescription
db.system.namemysql
db.query.textTexte de l’instruction SQL (obfusqué)
db.namespaceDu digest SCHEMA_NAME
mysql.events_statements_summary_by_digest.digestEmpreinte de l’instruction SHA-256
mysql.events_statements_summary_by_digest.count_starNombre de fois où l'instruction a été exécutée, rapporté comme un delta par collecte, non cumulatif
mysql.events_statements_summary_by_digest.sum_timer_waitTemps d’exécution total, delta en secondes
mysql.events_statements_summary_by_digest.sum_rows_examined / .sum_rows_sentNombres de lignes delta. Diviser par count_star donne les moyennes par exécution. Ce sont des nombres de lignes, et non des lectures logiques.
db.query.comment_tags / .nr_service_guidIdentique à query_sample
db.query.text.normalized.hashIdentique à query_sample

db.server.query_plan

Plan d’exécution pour une instruction, signalé comme son propre événement afin que le plan puisse être filtré, routé ou supprimé indépendamment des statistiques propres à top_query/query_sample. Nécessite qu’au moins db.server.top_query ou db.server.query_sample soit également activé. Une fois activé, mysql.query_plan n’est plus inclus dans les enregistrements db.server.top_query/db.server.query_sample. Consultez Collecte du plan d’exécution pour les mécanismes de EXPLAIN.

AttributDescription
db.system.namemysql
db.namespaceLa base de données / le schéma par défaut pour la requête. Dans les échantillons de requêtes, il s’agit de la base de données actuelle du thread (processlist_db) ; dans les requêtes principales, il s’agit du SCHEMA_NAME du digest. Vide lorsqu’aucune base de données par défaut n’a été sélectionnée.
mysql.query_plan.hashDéfini sur la même valeur que mysql.events_statements_summary_by_digest.digest (digest de la requête) par conception
mysql.query_plan.sourceL'événement pour lequel le plan a été signalé (db.server.top_query ou db.server.query_sample), afin que les plans puissent être routés ou rejetés par événement source
mysql.query_planLe plan de requête pour l'instruction, si disponible

Collecte du plan d’exécution

EXPLAIN nécessite une instruction SQL littérale : le texte de condensé normalisé utilise des espaces réservés (SELECT ? FROM t WHERE id = ?) que MySQL ne peut pas exécuter.

Version de MySQLDisponibilité du plan
8.0.3+Disponible : query_sample_text dans la table de résumé du condensé contient une véritable instruction pour EXPLAIN
5.x, 8.0.0–8.0.2Non disponible : aucun query_sample_text à expliquer

Si une instruction capturée est tronquée (se termine par ...), EXPLAIN est ignoré sur chaque version. Voir Paramètres de serveur recommandés.

explain_modeComportement
inline (défaut)Exécute EXPLAIN FORMAT=json <statement> directement ; suffisant pour les workloads SELECTuniquement
procedurePasse par une procédure SQL SECURITY DEFINER (<schema>.explain_statement) afin que les instructions d’écriture (UPDATE/DELETE/INSERT/REPLACE) puissent être expliquées sans accorder de DML à l’utilisateur de monitoring. Se rabat sur inline si la procédure est manquante. Nécessite l’étape de configuration unique par schéma. Consultez Plans de requête pour les instructions d’écriture.

Important

mysql.query_plan est la sortie EXPLAIN FORMAT=json brute, enveloppée dans un éventail JSON à un élément avant la mise en cache, afin que l’ingestion de log de New Relic ne l’aplatisse pas automatiquement et ne la détruise pas. Analysez l’index [0] pour récupérer l’objet plan.

Unités de temps

Type de télémétrie

Champs

Unité

Événements de log (

query_sample

,

top_query

)

sum_timer_wait

,

events_statements_current.timer_wait

,

events_waits_current.timer_wait

secondes

Métriques (événements d'instruction, attente d'I/O de table/index, attente de verrouillage de table)

par unité

metadata.yaml

 : ns

nanosecondes

Important

mysql.events_waits_current.timer_wait est le seul champ qui est une durée d’attente/blocage véritable et distincte (et non le temps total écoulé). Associez-le avec mysql.wait_event_type / mysql.wait_event (ou le mysql.wait_type brut).

Instrumentation dans les environnements auto-hébergés

Découvrez comment configurer le monitoring MySQL dans des environnements auto-hébergés avec New Relic.

Instrumentation dans les environnements RDS

Découvrez comment configurer le monitoring MySQL dans les environnements RDS avec New Relic.

Guide de dépannage

Apprenez à résoudre les problèmes courants liés au monitoring MySQL.

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.