En esta página, se describe cómo usar Extended Events (XEvents) en tus instancias.
Cloud SQL admite el uso de XEvents para supervisar, identificar y solucionar problemas relacionados con el rendimiento de tu base de datos. Para ello, crea sesiones de XEvent y lee los archivos de salida de XEvent. Puedes leer los archivos de salida de XEvent en la instancia o descargarlos desde un bucket de Cloud Storage.
Antes de comenzar
Si quieres subir tus archivos XEvent a un bucket de Cloud Storage, crea un bucket en tu cuenta de Google Cloud .
Prácticas recomendadas
- Para evitar transferir archivos grandes entre regiones, te recomendamos que hagas una de las siguientes acciones:
- Crea buckets multirregionales de Cloud Storage
- Configura el bucket de destino de Cloud Storage en la misma región que la instancia
- Antes de usar XEvents, habilita los aumentos de almacenamiento automáticos. Los archivos de salida de XEvent, según su tamaño total y los intervalos de retención, pueden necesitar un espacio significativo en el disco.
- Para evitar retener demasiados archivos XEvent durante mucho tiempo, configura una política de retención de datos para tu bucket de Cloud Storage.
- Si creas una sesión de XEvent con la IU de SSMS, pero no aparecen algunos cuadros para los valores de entrada, cambia el tamaño de la ventana Crear sesión de XEvent.
Cómo crear sesiones de XEvent
XEvents se habilita automáticamente en tus instancias.
Usa el comando CREATE EVENT SESSION
para definir nuevas sesiones de XEvent. También puedes usar la interfaz de usuario de SQL Server Management Studio (SSMS) para crear sesiones de XEvent.
Cloud SQL aplica los siguientes parámetros a todas las sesiones de XEvent:
Parámetro | Descripción | Valores permitidos |
FILENAME
|
Especifica el nombre de archivo y la ruta de acceso para almacenar los datos de la sesión de XEvents. | Cualquier ruta de acceso que comience con /var/opt/mssql/xevents/
|
MAX_FILE_SIZE
|
Especifica el tamaño máximo de cada archivo de salida antes de que se cree un archivo nuevo. | Un mínimo de 10 MB
Un máximo de 1 GB |
MAX_MEMORY
|
Especifica la cantidad máxima de memoria que se asignará a la sesión para el almacenamiento en búfer de eventos. | Un mínimo de 4 MB
Un máximo de 8 MB |
MAX_DISPATCH_LATENCY
|
Especifica el tiempo máximo (en segundos) que los eventos pueden permanecer en la cola de envío de eventos antes de enviarse al destino. | Un mínimo de 1 s
Un máximo de 30 s |
MAX_EVENT_SIZE
|
Establece el tamaño máximo de cada evento, en bytes. | Un mínimo de 4 MB
Un máximo de 8 MB |
Parámetros de configuración de la sesión de XEvent
Puedes configurar sesiones de XEvent con los siguientes parámetros como marcas personalizadas:
Parámetro | Descripción |
cloud sql xe bucket name
|
Especifica el bucket de Cloud Storage al que deseas subir el resultado de la sesión de XEvent. Si no se especifica, Cloud SQL no sube los datos de salida de la sesión de XEvent a Cloud Storage. |
cloud sql xe output total disk size (mb)
|
Especifica la cantidad de espacio en disco que se reservará para el resultado de todas las sesiones de XEvent. Si no se especifica, Cloud SQL usa un espacio en disco predeterminado de 512 MB. Si los archivos de salida de XEvent usan más espacio en disco que el valor de cloud sql xe output total disk size (mb) , Cloud SQL los quita del disco.
|
cloud sql xe file retention (mins)
|
Especifica el tiempo de retención en minutos en la instancia para los archivos generados por los destinos de archivo de las sesiones de XEvent. Si no se especifica, Cloud SQL usa un valor predeterminado de 7 días. |
cloud sql xe upload interval (mins)
|
Especifica el intervalo de carga de los archivos XEvent que se suben a Cloud Storage. Si no se especifica, Cloud SQL usa un valor predeterminado de 10 minutos. |
Para obtener más información sobre configurar estas marcas, consulta Configura marcas de base de datos.
Cómo leer los archivos de salida de la sesión de XEvent
Puedes leer los archivos de salida de la sesión de XEvent desde una instancia de Cloud SQL o un bucket de Cloud Storage.
Cómo leer archivos de salida de XEvent desde una instancia
Para recuperar los datos de un archivo XEvent que crea una sesión de XEvent, usa la función sys.fn_xe_file_target_read_file
.
A continuación, se presenta un ejemplo:
SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);
Cómo leer archivos de salida de XEvent desde un bucket
Para leer los archivos de salida de XEvent desde un bucket de Cloud Storage, descarga los archivos del bucket a una instancia de SQL Server. Puedes descargar el instalador desde una de las siguientes instancias:
- Una instancia de Windows de Compute Engine
- Una instancia de Linux de Compute Engine
- Otro tipo de instancia que ejecuta SQL Server
Luego, transfiere los archivos de salida de XEvent del bucket a una ubicación accesible para esa instancia, como su disco local. Luego, para mostrar información del archivo de salida de XEvent, ejecuta la función sys.fn_xe_file_target_read_file
con una cuenta que tenga el permiso VIEW SERVER STATE
en el servidor. Para obtener más información sobre los permisos, consulta Permisos.
Métricas de supervisión
Puedes supervisar las siguientes operaciones relacionadas con xevent como parte de las métricas de Cloud SQL, disponibles a través del Explorador de métricas:
- database/sqlserver/xevents_upload_count: Indica el total de intentos de carga de archivos de xevent que se realizaron correctamente y los que fallaron. Revisa esta métrica para supervisar si las cargas se realizaron correctamente.
- database/sqlserver/xevents_size: Indica cuánto espacio en disco usan los archivos de xevent almacenados en la instancia, en bytes.
Supervisa las sesiones de XEvent
Puedes supervisar las actividades relacionadas con la sesión de XEvent a través del archivo xevents.log
para las siguientes operaciones:
- Son los archivos de salida de XEvent que se quitaron del disco, que no se subieron a Cloud Storage y que ocupaban un espacio en el disco superior al valor asociado con
cloud sql xe output total disk size (mb)
. - Son los archivos de salida de XEvent que se quitaron del disco, que no se subieron a Cloud Storage y que son más antiguos que el valor asociado a
cloud sql xe file retention
.
Consideraciones para las réplicas de lectura
En esta sección, se incluye información sobre las sesiones de XEvent para las réplicas de lectura nuevas y existentes.
Para réplicas de lectura nuevas
- Todos los parámetros de configuración de la sesión de XEvent que se pasan a través de marcas de bases de datos en la instancia original están disponibles en la réplica de lectura creada recientemente.
- Todas las sesiones de XEvent presentes en la instancia original cuando se crean las réplicas de lectura están disponibles en la réplica de lectura. Ten en cuenta que las sesiones de XEvent en la réplica de lectura deben iniciarse de forma manual, a menos que estén configuradas para iniciarse automáticamente. Para obtener más información, consulta Cómo crear sesiones de XEvent.
- Si clonas una instancia principal, todas las marcas de la base de datos que aparezcan en la instancia principal se propagarán a la instancia clonada. Además, debes otorgar permisos a la cuenta de servicio de la instancia clonada para que vuelva a acceder al bucket de Cloud Storage.
Para réplicas de lectura existentes
- Los parámetros de configuración de la sesión de XEvent que se pasan a través de marcas de bases de datos a la instancia original no se propagan a las réplicas de lectura.
- Las sesiones de XEvent creadas en la instancia original no se propagan a las réplicas de lectura.