Avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta función se proporciona actualmente como parte de una vista previa de conformidad con nuestras políticas de prelanzamiento.
Puede configurar las siguientes opciones para obtener información valiosa más detallada sobre sus instancias de MySQL:
- Planes de consulta para sentencias de escritura
- Habilitar el seguimiento de la duración de la espera de bloqueo
Planes de consulta para sentencias de escritura
Establecer explain_mode en procedure habilita a NRDOT Collector para recopilar planes de EXPLAIN para sentencias de escritura sin otorgar privilegios DML al usuario de monitoreo. Cuando está configurado, el receptor busca un procedimiento SQL SECURITY DEFINER llamado <schema>.explain_statement. Si ese procedimiento no existe o el usuario de monitoreo carece de privilegios de ejecución sobre él, el receptor vuelve al modo inline. En este estado, las sentencias de escritura no logran recopilar planes de consulta, y el log del recolector muestra la siguiente advertencia: unable to execute explain statement.
Para establecer el explain_mode en procedure, ejecute lo siguiente como una cuenta con privilegios (por ejemplo, root) una vez por esquema:
DELIMITER //CREATE DEFINER = 'root'@'%' PROCEDURE <YOUR_SCHEMA>.explain_statement(IN q TEXT)SQL SECURITY DEFINERBEGIN SET @nr_explain_sql = CONCAT('EXPLAIN FORMAT=JSON ', q); PREPARE nr_explain_stmt FROM @nr_explain_sql; EXECUTE nr_explain_stmt; DEALLOCATE PREPARE nr_explain_stmt;END//DELIMITER ;GRANT EXECUTE ON PROCEDURE <YOUR_SCHEMA>.explain_statement TO '<YOUR_DB_USERNAME>'@'%';El paso GRANT EXECUTE es necesario para algo más que ejecutar la instrucción CALL. Sin este privilegio, el usuario de monitoreo no puede ver el procedimiento en information_schema.ROUTINES, que el receptor utiliza para verificar la existencia. Omitir GRANT EXECUTE produce el mismo resultado que un procedimiento faltante, lo que hace que el receptor vuelva al modo inline en ambos casos.
Sugerencia
Esta configuración mantiene el estado por esquema. Crear o restaurar una base de datos, o eliminar un procedimiento, deshabilita silenciosamente la recopilación de planes de sentencias de escritura para ese esquema y desencadena un retorno al modo inline. Las rutinas almacenadas de SQL SECURITY DEFINER aplican los privilegios del definidor al SQL dinámico ejecutado a través de sentencias PREPARE/EXECUTE dentro de ellas. Esto permite que un usuario de monitoreo de solo SELECTrecupere planes para sentencias para las cuales carece de privilegios de ejecución directa.
Habilitar el seguimiento de la duración de la espera de bloqueo
El consumidor events_waits_current proporciona información sobre la duración de la espera de bloqueo, pero requiere una configuración específica de la plataforma:
Plataforma | Método | ¿Persistente tras los reinicios? |
|---|---|---|
MySQL autogestionado |
en
(
) | Sí |
AWS RDS |
| No : se restablece al reiniciar/conmutar por error. Vuelva a ejecutar después de cada reinicio, u otorgue al usuario receptor este
para que pueda volver a habilitar el consumidor automáticamente al volver a conectarse. |
Documentación relacionada
Compatibilidad y requisitos previos
Conozca las versiones de MySQL compatibles, los requisitos de red y los parámetros de servidor recomendados.
Instrumentación en entornos autohospedados
Aprenda a configurar el monitoreo de MySQL en entornos autohospedados con New Relic.
Instrumentación en entornos RDS
Aprenda a configurar el monitoreo de MySQL en entornos RDS con New Relic.