Consultas de diagnóstico de ejemplo para la actualización del host de sesión en Azure Virtual Desktop
Importante
La actualización del host de sesión para Azure Virtual Desktop se encuentra actualmente en VERSIÓN PRELIMINAR. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
La actualización del host de sesión usa Log Analytics en Azure Monitor para almacenar información sobre las actualizaciones. En este artículo se incluyen algunas consultas de Kusto de ejemplo que puede usar con Log Analytics para ver información sobre las actualizaciones del host de sesión.
Requisitos previos
Para poder usar estas consultas, necesita lo siguiente:
Un grupo de hosts existente con una configuración de host de sesión.
Se han configurado valores de diagnóstico en cada grupo host que use con la actualización del host de sesión para enviar registros y métricas a un área de trabajo de Log Analytics. Las categorías Punto de control, Error y Host de sesión de administración de registros de actividad deben estar habilitadas como mínimo.
Una actualización de host de sesión programada y ejecutada previamente en los hosts de sesión del grupo de hosts.
Ubicación de datos de diagnóstico
Una vez que haya configurado las opciones de diagnóstico en un grupo host, los datos de diagnóstico para la actualización del host de sesión se almacenan en las tablas WVDSessionHostManagement
y WVDCheckpoints
del área de trabajo de Log Analytics. Las entradas de registro usan el tipo de actividad Administración existente, que procede del proveedor de Azure Resource Manager (ARM).
La tabla WVDSessionHostManagement
es específica de la actualización del host de sesión y se crea una vez que se habilita la categoría Registros de actividad de administración de host de sesión en la configuración de diagnóstico de cada grupo host que use con la actualización del host de sesión y se ejecuta la actualización del host de sesión. Si anteriormente configuró las opciones de diagnóstico para un grupo de hosts, debe habilitar la categoría Registros de actividad de administración de host de sesión. Para más información Configure valores de diagnóstico para capturar métricas y registros de plataforma para Azure Virtual Desktop.
El resto de este artículo tiene algunas consultas de ejemplo que puede ejecutar. Puede usarlas como base para crear sus propias consultas. Debe ejecutar cada una de estas consultas en Log Analytics. Para obtener más información sobre cómo ejecutar consultas, lea Iniciar Log Analytics.
Actualizaciones del host de sesión que se completaron correctamente
Esta consulta correlaciona las tablas WVDSessionHostManagement
y WVDCheckpoints
para proporcionar el tiempo necesario para completar una actualización y la mediana para actualizar un host de sesión único en minutos en los últimos 30 días:
let timeRange = ago(30d);
let succeededStatus = "Succeeded";
let hostPoolUpdateCompletedCheckpoint = "HostPoolUpdateCompleted";
let sessionHostUpdateCompletedCheckpoint = "SessionHostUpdateCompleted";
let provisioningTypeUpdate = "Update";
WVDSessionHostManagement
| where ProvisioningStatus == succeededStatus and TimeGenerated >= timeRange and ProvisioningType == provisioningTypeUpdate
| join kind = inner (
// Get number of session hosts updated
WVDCheckpoints
| where Name == hostPoolUpdateCompletedCheckpoint
| extend ParametersParsed = parse_json(Parameters)
| extend SessionHostUpdateCount = ParametersParsed["SessionHostsUpdateCompleted"], UpdateCompletionTime = todatetime(ParametersParsed["TimeCompleted"]), UpdateStartTime = todatetime(ParametersParsed["TimeStarted"])
| project CorrelationId, SessionHostUpdateCount, UpdateStartTime, UpdateCompletionTime
) on CorrelationId
| join kind = inner
(
// Get time to update individual session hosts
WVDCheckpoints
| where Name == sessionHostUpdateCompletedCheckpoint
| extend ParametersParsed = parse_json(Parameters)
| extend SessionHostUpdateTime = todecimal(ParametersParsed["TimeTakenToUpdateSessionHostInSeconds"])
// Calculate median time to update session host
| summarize SessionHostMedianUpdateTime = percentile(SessionHostUpdateTime, 50) by CorrelationId
) on CorrelationId
| project TimeGenerated, _SubscriptionId, _ResourceId, CorrelationId, UpdateStartDateTime = UpdateStartTime, UpdateEndDateTime = UpdateCompletionTime, ['UpdateDuration [InMinutes]'] = datetime_diff('minute', UpdateCompletionTime, UpdateStartTime), SessionHostUpdateCount, ['MedianSessionHostUpdateTime [InMinutes]'] = toint(SessionHostMedianUpdateTime/(60 * 1.0)), UpdateBatchSize = UpdateMaxVmsRemoved, FromSessionHostConfigVer, ToSessionHostConfigVer, UpdateDeleteOriginalVm
El conjunto de datos devuelto es el siguiente:
Columna | Definición |
---|---|
TimeGenerated | Marca de tiempo del evento generado por el sistema |
_SubscriptionId | Identificador de suscripción de un grupo de hosts |
_ResourceId | Identificador de recurso de un grupo de hosts |
CorrelationId | Identificador único asignado a cada actualización de imagen realizada en un grupo de hosts |
UpdateStartDateTime | Marca de tiempo de inicio de la actualización del host de sesión en UTC |
UpdateEndDateTime | Marca de tiempo de finalización de la actualización del host de sesión en UTC |
UpdateDuration | Tiempo necesario para completar la actualización de la imagen de todos los hosts de sesión de un grupo de hosts en minutos |
SessionHostUpdateCount | Número de hosts de sesión actualizados |
MedianSessionHostUpdateTime | Mediana del tiempo necesario para actualizar la imagen de un único host de sesión en minutos |
UpdateBatchSize | Número de hosts de sesión que estaban en un único lote durante una actualización de la imagen |
FromSessionHostConfigVer | Configuración del host de sesión antes de actualizar la imagen |
ToSessionHostConfigVer | Configuración del host de sesión después de una actualización de la imagen |
UpdateDeleteOriginalVm | Si la máquina virtual original se conserva después de la finalización de una actualización de la imagen |
Errores durante una actualización del host de sesión
Esta consulta correlaciona las tablas WVDSessionHostManagement
y WVDErrors
para proporcionar información que puede usar para solucionar errores durante las actualizaciones del host de sesión en los últimos 30 días:
let timeRange = ago(30d);
let provisioningTypeUpdate = "Update";
WVDSessionHostManagement
| where ProvisioningStatus in ("Failed", "Error", "Canceled") and TimeGenerated >= timeRange and ProvisioningType == provisioningTypeUpdate
| summarize arg_max(TimeGenerated, _ResourceId, _SubscriptionId, FromSessionHostConfigVer, ToSessionHostConfigVer) by CorrelationId
| join kind = inner
(
// Get image update errors
WVDErrors
| where TimeGenerated >= timeRange
| extend IsSessionHostResourceIdAvailable = iif(Message startswith "SessionHostResourceId", 1, 0)
| extend startIndex = iif(IsSessionHostResourceIdAvailable == 1, indexof(Message, ":") + 1, 0)
| extend length = iif(IsSessionHostResourceIdAvailable == 1, indexof(Message, ";") - startIndex, 0)
// Get Session host ResourceId when available
| extend SessionHostResourceId = iif(IsSessionHostResourceIdAvailable == 1, substring(Message, startIndex, length), "")
| project TimeGenerated, CorrelationId, SessionHostResourceId, CodeSymbolic, Message
) on CorrelationId
| project TimeGenerated, _SubscriptionId, _ResourceId, CorrelationId, CodeSymbolic, SessionHostResourceId, Message, FromSessionHostConfigVer, ToSessionHostConfigVer
El conjunto de datos devuelto es el siguiente:
Columna | Definición |
---|---|
TimeGenerated | Marca de tiempo del evento generado por el sistema |
_SubscriptionId | Identificador de suscripción de un grupo de hosts |
_ResourceId | Identificador de recurso de un grupo de hosts |
CorrelationId | Identificador único asignado a cada actualización de imagen realizada en un grupo de hosts |
CodeSymbolic | Código de error |
SessionHostResourceId | Identificador de recurso de un host de sesión, si procede |
Mensaje | Información de errores |
FromSessionHostConfigVer | Versión de configuración del host de sesión antes de una actualización de imagen |
ToSessionHostConfigVer | Versión de configuración del host de sesión a la que se actualizaron los hosts de sesión en los que se produjo un error en el proceso de actualización |
Actualizaciones del host de sesión canceladas por un administrador antes de la hora programada
Esta consulta correlaciona las tablas WVDSessionHostManagement
y WVDCheckpoints
para proporcionar actualizaciones de host de sesión programadas, pero luego canceladas por un administrador antes de comenzar, en los últimos 30 días:
let timeRange = ago(30d);
let canceledStatus = "Canceled";
let scheduledStatus = "Scheduled";
let hostPoolUpdateCanceledCheckpoint = "HostPoolUpdateCanceled";
let provisioningTypeUpdate = "Update";
WVDSessionHostManagement
| where ProvisioningStatus == canceledStatus and TimeGenerated >= timeRange and ProvisioningType == provisioningTypeUpdate
| join kind = inner
(
WVDCheckpoints
| where Name == "HostPoolUpdateCanceled"
| project TimeGenerated, CorrelationId, Name, Parameters
| extend ParametersParsed = parse_json(Parameters)
| extend StateFrom = tostring(ParametersParsed["StateFrom"]), StateTo = tostring(ParametersParsed["StateTo"]), CanceledTime = todatetime(ParametersParsed["TimeCanceled"])
| where StateFrom == scheduledStatus and StateTo == canceledStatus
) on CorrelationId
| project TimeGenerated, _SubscriptionId, _ResourceId, CorrelationId, ScheduledDateTime = todatetime(ScheduledDateTime), CanceledDateTime = CanceledTime, UpdateBatchSize = UpdateMaxVmsRemoved
El conjunto de datos devuelto es el siguiente:
Columna | Definición |
---|---|
TimeGenerated | Marca de tiempo del evento generado por el sistema |
_SubscriptionId | Identificador de suscripción de un grupo de hosts |
_ResourceId | Identificador de recurso de un grupo de hosts |
CorrelationId | Identificador único asignado a cada actualización de la imagen de un grupo de hosts |
ScheduledDateTime | Hora programada de actualización del host de sesión en UTC |
CanceledDateTime | Hora UTC en la que un administrador canceló una actualización de la imagen |
UpdateBatchSize | Número de hosts de sesión que estaban en un único lote durante una actualización de la imagen |
Actualizaciones del host de sesión que estaban en curso o con errores y, a continuación, las canceló posteriormente un administrador
Esta consulta correlaciona las tablas WVDSessionHostManagement
y WVDCheckpoints
para proporcionar actualizaciones del host de sesión que estaban en curso o con errores y, posteriormente, las canceló un administrador en los últimos 30 días:
let timeRange = ago(30d);
let canceledStatus = "Canceled";
let scheduledStatus = "Scheduled";
let hostPoolUpdateCanceledCheckpoint = "HostPoolUpdateCanceled";
let provisioningTypeUpdate = "Update";
WVDSessionHostManagement
| where ProvisioningStatus == canceledStatus and TimeGenerated >= timeRange and ProvisioningType == provisioningTypeUpdate
| join kind = inner
(
WVDCheckpoints
| where Name == hostPoolUpdateCanceledCheckpoint
| project TimeGenerated, CorrelationId, Name, Parameters
| extend ParametersParsed = parse_json(Parameters)
| extend StateFrom = tostring(ParametersParsed["StateFrom"]), StateTo = tostring(ParametersParsed["StateTo"]), CanceledTime = todatetime(ParametersParsed["TimeCanceled"]), TotalSessionHostsInHostPool = toint(ParametersParsed["TotalSessionHostsInHostPool"]), SessionHostUpdateCount = ParametersParsed["SessionHostsUpdateCompleted"]
| where StateFrom != scheduledStatus and StateTo == canceledStatus
) on CorrelationId
| project TimeGenerated, _SubscriptionId, _ResourceId, CorrelationId, ScheduledDateTime = todatetime(ScheduledDateTime), CanceledDateTime = CanceledTime, TotalSessionHostsInHostPool, SessionHostUpdateCount, UpdateBatchSize = UpdateMaxVmsRemoved
El conjunto de datos devuelto es el siguiente:
Columna | Definición |
---|---|
TimeGenerated | Marca de tiempo del evento generado por el sistema |
_SubscriptionId | Identificador de suscripción de un grupo de hosts |
_ResourceId | Identificador de recurso de un grupo de hosts |
CorrelationId | Identificador único asignado a cada actualización del host de sesión de un grupo de hosts |
ScheduledDateTime | Hora programada de actualización del host de sesión en UTC |
CanceledDateTime | Hora UTC en la que un administrador canceló una actualización del host de sesión |
TotalSessionHostsInHostPool | Número total de hosts de sesión en un grupo de hosts |
SessionHostUpdateCount | Número de hosts de sesión que se actualizaron antes de cancelar una actualización del host de sesión |
UpdateBatchSize | Número de hosts de sesión en un único lote durante una actualización del host de sesión |
Estado de cada actualización del host de sesión
Esta consulta correlaciona las tablas WVDSessionHostManagement
y WVDCheckpoints
para proporcionar el estado más reciente de cada actualización del host de sesión en los últimos 30 días:
let timeRange = ago(30d);
let sessionHostUpdateCompletedCheckpoint = "SessionHostUpdateCompleted";
let provisioningTypeUpdate = "Update";
WVDSessionHostManagement
| where TimeGenerated >= timeRange and ProvisioningType == provisioningTypeUpdate
| join kind = leftouter (
// Get number of session hosts updated if available
WVDCheckpoints
| where Name == sessionHostUpdateCompletedCheckpoint
| summarize SessionHostUpdateCount = count() by CorrelationId
) on CorrelationId
| summarize arg_max(TimeGenerated, _SubscriptionId, _ResourceId, ScheduledDateTime, UpdateMaxVmsRemoved, SessionHostUpdateCount, ProvisioningStatus) by CorrelationId
| project TimeGenerated, _SubscriptionId, _ResourceId, CorrelationId, ProvisioningStatus, ScheduledDateTime = todatetime(ScheduledDateTime), UpdateBatchSize = UpdateMaxVmsRemoved, SessionHostUpdateCount = iif(isempty(SessionHostUpdateCount), 0, SessionHostUpdateCount)
El conjunto de datos devuelto es el siguiente:
Columna | Definición |
---|---|
TimeGenerated | Marca de tiempo del evento generado por el sistema |
_SubscriptionId | Identificador de suscripción para un grupo de hosts |
_ResourceId | Identificador de recurso de un grupo de hosts |
CorrelationId | Identificador único asignado a cada actualización de la imagen de un grupo de hosts |
ProvisioningStatus | Estado actual de una actualización de la imagen de un grupo de hosts |
ScheduledDateTime | Hora programada de actualización del host de sesión en UTC |
UpdateBatchSize | Número de hosts de sesión en un único lote durante una actualización de la imagen |
SessionHostUpdateCount | Número de hosts de sesión que se actualizaron |
Pasos siguientes
Para obtener instrucciones de solución de problemas para la actualización del host de sesión, consulte Solución de problemas de actualización del host de sesión.