(PECL mysqlnd_ms >= 1.0.0)
mysqlnd_ms_get_stats — Devuelve la distribución consultas y las estadísticas de conexión
Devuelve un array con las estadísticas recopiladas por el complemento de replicación y equilibrado de carga.
El ajuste de configuración de PHP
mysqlnd_ms.collect_statistics
controla la recopilación de estadísticas. Dicha recopilación
está deshabilitada de forma predeterminada por motivos de rendimiento.
El ámbito de la estadísticas es el
proceso de PHP
.
Dependiendo de modelo de desarrollo, un
proceso de PHP
puede manejar una o múltiples peticiones.
Las estadísticas se agregan para todas las conexiones y todos los gestores de almacenamiento.
No es posible indicar cuántas consultas que se originan desde las llamadas a la API de
mysqli
,
PDO_MySQL
o
mysql
han
contribuido a los valores de los datos agregados.
Esta función no tiene parámetros.
Devuelve null
si
la directiva de configuración de PHP
mysqlnd_ms.enable
ha deshabilitado el complemento. De otro modo, devuelve un array de estadísticas.
El array de estadísticas.
Estadística | Descripción | Versión |
---|---|---|
use_slave
|
La semántica de esta estadística ha cambiado entre las versiones 1.0.1 - 1.1.0.
El significado para la versión 1.0.1 es como sigue.
Número de sentencias consideradas de solo lectura por el analizador de consultas interno.
No están incluidas ni las sentencias que comienzan con una sugerencia SQL para forzar
el uso de esclavos, ni las sentencias dirigidas a un esclavos mediante una llamada
de retorno definida por el usuario. El número total de sentencias enviadas a los esclavos es
PECL/mysqlnd_ms 1.1.0 introduce el nuevo concepto de filtros encadenados. Las
estadísticas ahora son establecidas por el filtro de equilibrado de carga interno. Con
la versión 1.1.0, dicho filtro siempre está en el último lugar de la
cadena de filtros, si se usa. En futuras versiones un filtro de equilibrado de carga podrían
seguirle otros filtros, ocasionando otro cambio en el significado de
la estadísica. Si, en un futuro, un a filtro de equilibrado de carga le
sigue otro filtro, ya no se garantizará que la sentencia, la cual
incrementa
El significado para la versión 1.1.0 es como sigue. Número de sentencias
enviadas a los esclavos. No están incluidas las sentencias dirigidas a un esclavo
mediante el filtro 'user' (una llamada de retorno definida por el usuario). Lo último se cuenta mediante
|
Desde 1.0.0. |
use_master
|
La semántica de esta estadística ha cambiado entre las versiones 1.0.1 - 1.1.0.
El significado para la versión 1.0.1 es como sigue.
Número de sentencias no consideradas de solo lectura por el analizador de consultas interno.
No están incluidas mi las sentencias que comienzan con una sugerencia SQL para forzar
el uso del maestro, ni las sentencias dirigidas a un maestro mediante una llamada
de retorno definida por el usuario. El número total de sentencias enviadas al maestro es
PECL/mysqlnd_ms 1.1.0 introduce el nuevo concepto de filtros encadenados. Las
estadísticas ahora son establecidas por el filtro de equilibrado de carga interno. Con
la versión 1.1.0, dicho filtro siempre está en el último lugar de la
cadena de filtros, si se usa. En futuras versiones un filtro de equilibrado de carga podrían
seguirle otros filtros, ocasionando otro cambio en el significado de
la estadísica. Si, en un futuro, un a filtro de equilibrado de carga le
sigue otro filtro, ya no se garantizará que la sentencia, la cual
incrementa
El significado para la versión 1.1.0 es como sigue. Número de sentencias
enviadas a los maestros. No están incluidas las sentencias dirigidas a un maestro
mediante el filtro 'user' (una llamada de retorno definida por el usuario). Lo último se cuenta mediante
|
Desde 1.0.0. |
use_slave_guess
|
Número de sentencias que el analizador de consultas interno recomienda enviar a
un esclavo debido a que no contienen una sugerencia SQL para forzar el uso de
un servidor en particular. Dicha recomendación podría ser invalidada en la siguiente.
No se garantiza que la sentencia sea ejecutada en un esclavo.
Este número es las veces que la función interno is_select
ha supuesto que un esclavo será usado. Véase también la función
del espacio de usuario mysqlnd_ms_query_is_select().
|
Desde 1.1.0. |
use_master_guess
|
Número de sentencias que el analizador de consultas interno recomienda enviar a
un maestro debido a que no contienen una sugerencia SQL para forzar el uso de
un servidor en particular. Dicha recomendación podría ser invalidada en la siguiente.
No se garantiza que la sentencia sea ejecutada en un esclavo.
Este número es las veces que la función interno is_select
ha supuesto que un maestro será usado. Véase también la función
del espacio de usuario mysqlnd_ms_query_is_select().
|
Desde 1.1.0. |
use_slave_sql_hint
|
Número de sentencias enviadas a un esclavo debido a que la sentencia comienza con la sugerencia SQL para forzar el uso del esclavo. | Desde 1.0.0. |
use_master_sql_hint
|
Número de sentencias enviadas a un maestro debido a que la sentencia comienza con la sugerencia SQL para forzar el uso del maestro. | Desde 1.0.0. |
use_last_used_sql_hint
|
Número de sentencias enviadas al servidor que ejecutó la sentencia anterior, debido a que la sentencia comienza con la sugerencia SQL para forzar el uso del servidor usado anteriormente. | Desde 1.0.0. |
use_slave_callback
|
Número de sentencias enviadas a un esclavo debido a que una llamada de retorno definida por el usuario ha elegido un servidor esclavo para la ejecución de sentencias. | Desde 1.0.0. |
use_master_callback
|
Número de sentencias enviadas a un maestro debido a que una llamada de retorno definida por el usuario ha elegido un servidor maestro para la ejecución de sentencias. | Desde 1.0.0. |
non_lazy_connections_slave_success
|
Número de conexiones a esclavos abiertas con éxito desde
configuraciones que no usan
conexiones retardadas .
El número total de conexiones a esclavos abiertas con éxito es
non_lazy_connections_slave_success +
lazy_connections_slave_success
|
Desde 1.0.0. |
non_lazy_connections_slave_failure
|
Número de intentos fallidos de conexión a esclavos desde
configuraciones que no usan
conexiones retardadas .
El número total de intento fallidos de conexión a esclavos es
non_lazy_connections_slave_failure +
lazy_connections_slave_failure
|
Desde 1.0.0. |
non_lazy_connections_master_success
|
Número de conexiones a maestros abiertas con éxito desde
configuraciones que no usan
conexiones retardadas .
El número total de conexiones a maestros abiertas con éxito es
non_lazy_connections_master_success +
lazy_connections_master_success
|
Desde 1.0.0. |
non_lazy_connections_master_failure
|
Número de intentos fallidos de conexión a maestros desde
configuraciones que no usan
conexiones retardadas .
El número total de intento fallidos de conexión a maestros es
non_lazy_connections_master_failure +
lazy_connections_master_failure
|
Desde 1.0.0. |
lazy_connections_slave_success
|
Número de conexiones a esclavos abiertas con éxito desde
configuraciones que usan
lazy connections .
|
Desde 1.0.0. |
lazy_connections_slave_failure
|
Número de intentos fallidos de conexión a esclavos desde
configuraciones que usan
conexiones retardadas .
|
Desde 1.0.0. |
lazy_connections_master_success
|
Número de conexiones a maestros abiertas con éxito desde
configuraciones que usan
conexiones retardadas .
|
Desde 1.0.0. |
lazy_connections_master_failure
|
Número de intentos fallidos de conexión a maestros desde
configuraciones que usan
conexiones retardadas .
|
Desde 1.0.0. |
trx_autocommit_on
|
Número de activaciones del modo autocommit mediante llamadas a la API.
Este número se puede usar para monitorizar la actividad relacionada con el ajuste de
configuración del complemento
trx_stickiness .
Si, por ejemplo, se quiere conocer si una cierta llamada a la API invoca a la
función trx_autocommit() de la biblioteca mysqlnd ,
la cual es un requisito para
trx_stickiness ,
se podría llamar a la función de la API de usuario en cuestión y comprobar si la
estadística ha cambiado. La estadística es modificada solamente por el método
trx_autocommit()
interno de complemento.
|
Desde 1.0.0. |
trx_autocommit_off
|
Número de desactivaciones del modo autocommit mediante llamadas a la API.
|
Desde 1.0.0. |
trx_master_forced
|
Número de sentencias redirigidas al maestro mientras
trx_stickiness=master
y el modo autocommit están deshabilitados.
|
Desde 1.0.0. |
gtid_autocommit_injections_success
|
Número de inyeccioines SQL realizadas con éxito en el modo 'autocommit' como parte de la emulación del id de transacciones global en el lado del cliente del complemento. | Desde 1.2.0. |
gtid_autocommit_injections_failure
|
Número de inyeccioines SQL fallidas en el modo 'autocommit' como parte de la emulación del id de transacciones global en el lado del cliente del complemento. | Desde 1.2.0. |
gtid_commit_injections_success
|
Número de inyeccioines SQL realizadas con éxito en el modo 'commit' como parte de la emulación del id de transacciones global en el lado del cliente del complemento. | Desde 1.2.0. |
gtid_commit_injections_failure
|
Número de inyeccioines SQL fallidas en el modo 'commit' como parte de la emulación del id de transacciones global en el lado del cliente del complemento. | Desde 1.2.0. |
gtid_implicit_commit_injections_success
|
Número de inyecciones SQL realizadas con éxito cuando la consignación implícita es detectada como parte de la
emulación del id de transacciones global
en el lado del cliente del complemento.
La consignación implícita sucede, por ejemplo, cuando el modo 'autocommit' se ha
desactivado, se ejecuta una consulta y se habilita el modo 'autocommit' de nuevo. En este caso,
la sentencia será consignada por el servidor y el SQL a mantener es
inyectado antes de que el modo 'autocommit' sea rehabilitado. Otra secuencia
que causa una consignación implícita es begin() ,
query() , begin() . La segunda llamada
a begin() consignará implícitamente la transacción
iniciada por la primera llamada a begin() .
begin() hace referencia llamadas a una biblioteca interna, no a
llamadas a la API de usuario de PHP.
|
Desde 1.2.0. |
gtid_implicit_commit_injections_failure
|
Número de inyecciones SQL fallidas cuando la consignación implícita es detectada como parte de la emulación del id de transacciones global en el lado del cliente del complemento. La consignación implícita sucede, por ejemplo, cuando el modo 'autocommit' se ha desactivado, se ejecuta una consulta y se habilita el modo 'autocommit' de nuevo. En este caso, la sentencia será consignada por el servidor y el SQL a mantener es inyectado antes de que el modo 'autocommit' sea rehabilitado. | Desde 1.2.0. |
transient_error_retries
|
Cuántas veces ha sido reintentada una operación cuando se detectó un error
transitorio. Véase también el ajuste
transient_error
del fichero de configuración del complemento.
|
Desde 1.6.0. |
fabric_sharding_lookup_servers_success
|
Número de llamadas exitosas a procedimientos remotos de
sharding.lookup_servers a MySQL Fabric.
Se considera que una llamada tiene éxito si el complemento pudo conectar con MySQL
Fabric y obtener cualquier respuesta. Esta respuesta podría o no ser
comprendida por el complemento. El éxito se refiere solamente al transporte
en red. Si la respuesta no fuera comprendida o indicara una condición de error,
fabric_sharding_lookup_servers_xml_failure
se incrementará.
|
Desde 1.6.0. |
fabric_sharding_lookup_servers_failure
|
Número de llamadas fallidas a procedimientos remotos de
sharding.lookup_servers a MySQL Fabric.
Se considera que una llamada a un procedimiento remoto es fallida si existió un
error de red al conectarse a, al escribir en o al leer de
MySQL Fabric.
|
Desde 1.6.0. |
fabric_sharding_lookup_servers_time_total
|
Tiempo usado en conectarse a, escribir en y leer de MySQL
Fabric durante la llamada a procedimientos remotos de
sharding.lookup_servers . El valor se totaliza para todas las llamadas.
El tiempo se mide en microsegundos.
|
Desde 1.6.0. |
fabric_sharding_lookup_servers_bytes_total
|
Número total de bytes recibidos de MySQL Fabric en respuesta a llamadas de
sharding.lookup_servers .
|
Desde 1.6.0. |
fabric_sharding_lookup_servers_xml_failure
|
Frecuencia con que no se entendió una respuesta de MySQL Fabric
a llamadas de sharding.lookup_servers .
Observe que la implementación experimental actual no distingue
entre errores válidos devueltos y réplicas malformadas.
|
Desde 1.6.0. |
xa_begin
|
Cuántas transacciones XA/distribuidas han sido iniciadas empleando mysqlnd_ms_xa_begin(). | Desde 1.6.0. |
xa_commit_success
|
Cuántas transacciones XA/distribuidas han sido consignadas con éxito empleando mysqlnd_ms_xa_commit(). | Desde 1.6.0. |
xa_commit_failure
|
Cuántas transacciones XA/distribuidas fallaron al consignarlas durante mysqlnd_ms_xa_commit(). | Desde 1.6.0. |
xa_rollback_success
|
Cuántas transacciones XA/distribuidas han sido revertidas con éxito empleando mysqlnd_ms_xa_rollback(). La cifra no incluye las reversiones implícitas realizadas como resultado de un fallo de mysqlnd_ms_xa_commit(). | Desde 1.6.0. |
xa_rollback_failure
|
Cuántas transacciones XA/distribuidas no se pudieron revertir.
Esto incluye fallos de mysqlnd_ms_xa_rollback(),
aunque también fallos durante la reversión al cerrar la conexión, si
rollback_on_close está establecido. Véase también
xa_rollback_on_close más abajo.
|
Desde 1.6.0. |
xa_participants
|
Número total de participantes en cualquier transacción XA iniciada con mysqlnd_ms_xa_begin(). | Desde 1.6.0. |
xa_rollback_on_close
|
Cuántas transacciones XA han sido revertidas implítamente cuando
una conexión se cerró y rollback_on_close está establecido.
Dependiendo de las políticas de código, esto podría indicar un defecto en el código, por lo
que podría ser preferible limpiar recursos explícitamente.
|
Desde 1.6.0. |
pool_masters_total
|
Número de servidores maestros (conexiones) de la agrupación de conexiones interna. | Desde 1.6.0. |
pool_slaves_total
|
Número de servidores esclavos (conexiones) de la agrupación de conexiones interna. | Desde 1.6.0. |
pool_masters_active
|
Número de servidores maestros (conexiones) de la agrupación de conexiones interna que se emplean actualmente para elegir una conexión. | Desde 1.6.0. |
pool_slaves_active
|
Número de servidores esclavos (conexiones) de la agrupación de conexiones interna que se emplean actualmente para elegir una conexión. | Desde 1.6.0. |
pool_updates
|
Con qué frecuencia ha sido reemplazada una lista de conexiones activas y ha sido instalado un nuevo conjunto de servidores maestros y esclavos. | Desde 1.6.0. |
pool_master_reactivated
|
Con qué frecuencia ha sido reutilzada una conexión maestra después de ser eliminada de la lista activa. | Desde 1.6.0. |
pool_slave_reactivated
|
Con qué frecuencia ha sido reutilzada una conexión esclava después de ser eliminada de la lista activa. | Desde 1.6.0. |
Ejemplo #1 Ejemplo de mysqlnd_ms_get_stats()
<?php
printf("mysqlnd_ms.enable = %d\n", ini_get("mysqlnd_ms.enable"));
printf("mysqlnd_ms.collect_statistics = %d\n", ini_get("mysqlnd_ms.collect_statistics"));
var_dump(mysqlnd_ms_get_stats());
?>
El resultado del ejemplo sería:
mysqlnd_ms.enable = 1 mysqlnd_ms.collect_statistics = 1 array(26) { ["use_slave"]=> string(1) "0" ["use_master"]=> string(1) "0" ["use_slave_guess"]=> string(1) "0" ["use_master_guess"]=> string(1) "0" ["use_slave_sql_hint"]=> string(1) "0" ["use_master_sql_hint"]=> string(1) "0" ["use_last_used_sql_hint"]=> string(1) "0" ["use_slave_callback"]=> string(1) "0" ["use_master_callback"]=> string(1) "0" ["non_lazy_connections_slave_success"]=> string(1) "0" ["non_lazy_connections_slave_failure"]=> string(1) "0" ["non_lazy_connections_master_success"]=> string(1) "0" ["non_lazy_connections_master_failure"]=> string(1) "0" ["lazy_connections_slave_success"]=> string(1) "0" ["lazy_connections_slave_failure"]=> string(1) "0" ["lazy_connections_master_success"]=> string(1) "0" ["lazy_connections_master_failure"]=> string(1) "0" ["trx_autocommit_on"]=> string(1) "0" ["trx_autocommit_off"]=> string(1) "0" ["trx_master_forced"]=> string(1) "0" ["gtid_autocommit_injections_success"]=> string(1) "0" ["gtid_autocommit_injections_failure"]=> string(1) "0" ["gtid_commit_injections_success"]=> string(1) "0" ["gtid_commit_injections_failure"]=> string(1) "0" ["gtid_implicit_commit_injections_success"]=> string(1) "0" ["gtid_implicit_commit_injections_failure"]=> string(1) "0" ["transient_error_retries"]=> string(1) "0" }