Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
A atualização do anfitrião de sessões para o Azure Virtual Desktop está atualmente em PRÉ-VISUALIZAÇÃO. Veja os Termos de Utilização Suplementares das Pré-visualizações do Microsoft Azure para obter os termos legais aplicáveis às funcionalidades do Azure que estão em versão beta, pré-visualização ou que ainda não foram lançadas para disponibilidade geral.
A atualização do anfitrião de sessões utiliza o Log Analytics no Azure Monitor para armazenar informações sobre atualizações. Este artigo tem algumas consultas kusto de exemplo que pode utilizar com o Log Analytics para ver informações sobre atualizações do anfitrião de sessões.
Pré-requisitos
Antes de poder utilizar estas consultas, precisa de:
Um conjunto de anfitriões existente com uma configuração de anfitrião de sessão.
Definições de diagnóstico configuradas em cada conjunto de anfitriões que utiliza com a atualização do anfitrião de sessão para enviar registos e métricas para uma área de trabalho do Log Analytics. Os Registos de Atividades de Gestão de Anfitriões de Sessões,Erros e Pontos de Verificação de Categorias têm de estar ativados no mínimo.
Uma atualização de anfitrião de sessão agendada anteriormente e executada nos anfitriões de sessões no conjunto de anfitriões.
Localização dos dados de diagnóstico
Depois de configurar as definições de diagnóstico num conjunto de anfitriões, os dados de diagnóstico da atualização do anfitrião da sessão são armazenados nas tabelas WVDSessionHostManagement e WVDCheckpoints na área de trabalho do Log Analytics. As entradas de registo utilizam o tipo de atividade Gestão existente, proveniente do fornecedor do Azure Resource Manager (ARM).
A tabela WVDSessionHostManagement é específica da atualização do anfitrião da sessão e é criada assim que ativar a categoria Registos de Atividades de Gestão de Anfitriões de Sessões nas definições de diagnóstico para cada conjunto de anfitriões que utiliza com a atualização do anfitrião de sessão e as execuções da atualização do anfitrião da sessão. Se tiver configurado anteriormente as definições de diagnóstico para um conjunto de anfitriões, terá de ativar a categoria Registos de Atividades de Gestão de Anfitriões de Sessões. Para obter mais informações , configure as definições de diagnóstico para capturar registos e métricas da plataforma para o Azure Virtual Desktop.
O resto deste artigo tem algumas consultas de exemplo que pode executar. Pode utilizá-las como base para criar as suas próprias consultas. Tem de executar cada uma destas consultas no Log Analytics. Para obter mais informações sobre como executar consultas, veja Iniciar o Log Analytics.
Atualizações do anfitrião de sessões que foram concluídas com êxito
Esta consulta correlaciona as tabelas WVDSessionHostManagement e WVDCheckpoints fornece o tempo necessário para concluir uma atualização e o tempo mediano para atualizar um único anfitrião de sessão em minutos nos últimos 30 dias:
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
O conjunto de dados devolvido é o seguinte:
| Coluna | Definição |
|---|---|
| TimeGenerated | Carimbo de data/hora do evento gerado pelo sistema |
| _SubscriptionId | ID de subscrição de um conjunto de anfitriões |
| _ResourceId | ID de recurso de um conjunto de anfitriões |
| CorrelationId | Identificador exclusivo atribuído a todas as atualizações de imagens executadas num conjunto de anfitriões |
| UpdateStartDateTime | Carimbo de data/hora de início da atualização do anfitrião da sessão em UTC |
| UpdateEndDateTime | Carimbo de data/hora de conclusão da atualização do anfitrião da sessão em UTC |
| UpdateDuration | Tempo necessário para concluir a atualização da imagem de todos os anfitriões de sessão num conjunto de anfitriões em minutos |
| SessionHostUpdateCount | Número de anfitriões de sessão atualizados |
| MedianSessionHostUpdateTime | Tempo mediano para atualizar a imagem de um único anfitrião de sessão em minutos |
| UpdateBatchSize | Número de anfitriões de sessão que estavam num único lote durante uma atualização da imagem |
| FromSessionHostConfigVer | Configuração do anfitrião da sessão antes de uma atualização da imagem |
| ToSessionHostConfigVer | Configuração do anfitrião da sessão após uma atualização da imagem |
| UpdateDeleteOriginalVm | Se a máquina virtual original foi preservada após a conclusão de uma atualização da imagem |
Erros durante uma atualização do anfitrião da sessão
Esta consulta correlaciona as tabelas WVDSessionHostManagement e WVDErrors fornece informações que pode utilizar para resolver erros durante as atualizações do anfitrião da sessão nos últimos 30 dias:
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
O conjunto de dados devolvido é o seguinte:
| Coluna | Definição |
|---|---|
| TimeGenerated | Carimbo de data/hora do evento gerado pelo sistema |
| _SubscriptionId | ID de subscrição de um conjunto de anfitriões |
| _ResourceId | ID de recurso de um conjunto de anfitriões |
| CorrelationId | Identificador exclusivo atribuído a todas as atualizações de imagens executadas num conjunto de anfitriões |
| CodeSymbolic | Código de erro |
| SessionHostResourceId | ID de recurso de um anfitrião de sessão, se aplicável |
| Mensagem | Informações do erro |
| FromSessionHostConfigVer | Versão de configuração do anfitrião da sessão antes de uma atualização de imagem |
| ToSessionHostConfigVer | Versão de configuração do anfitrião da sessão para a qual os anfitriões de sessão foram atualizados onde o processo de atualização falhou |
Atualizações do anfitrião da sessão canceladas por um administrador antes da hora agendada
Esta consulta correlaciona as tabelas WVDSessionHostManagement e WVDCheckpoints fornece atualizações do anfitrião da sessão agendadas, mas que foram canceladas por um administrador antes de serem iniciadas, nos últimos 30 dias:
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
O conjunto de dados devolvido é o seguinte:
| Coluna | Definição |
|---|---|
| TimeGenerated | Carimbo de data/hora do evento gerado pelo sistema |
| _SubscriptionId | ID de subscrição de um conjunto de anfitriões |
| _ResourceId | ID de recurso de um conjunto de anfitriões |
| CorrelationId | Identificador exclusivo atribuído a cada atualização da imagem de um conjunto de anfitriões |
| ScheduledDateTime | Hora agendada da atualização do anfitrião da sessão em UTC |
| CanceledDateTime | Hora em UTC em que uma atualização da imagem foi cancelada por um administrador |
| UpdateBatchSize | Número de anfitriões de sessão que estavam num único lote durante uma atualização da imagem |
Atualizações do anfitrião de sessões que estavam em curso ou falharam e posteriormente canceladas por um administrador
Esta consulta correlaciona as tabelas WVDSessionHostManagement e WVDCheckpoints fornece atualizações do anfitrião da sessão que estavam em curso ou falharam e, posteriormente, canceladas por um administrador nos últimos 30 dias:
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
O conjunto de dados devolvido é o seguinte:
| Coluna | Definição |
|---|---|
| TimeGenerated | Carimbo de data/hora do evento gerado pelo sistema |
| _SubscriptionId | ID de subscrição de um conjunto de anfitriões |
| _ResourceId | ID de recurso de um conjunto de anfitriões |
| CorrelationId | Identificador exclusivo atribuído a todas as atualizações do anfitrião de sessões de um conjunto de anfitriões |
| ScheduledDateTime | Hora agendada da atualização do anfitrião da sessão em UTC |
| CanceledDateTime | Hora em UTC em que um administrador cancelou uma atualização do anfitrião da sessão |
| TotalSessionHostsInHostPool | Número total de anfitriões de sessão num conjunto de anfitriões |
| SessionHostUpdateCount | Número de anfitriões de sessão que foram atualizados antes de cancelar uma atualização do anfitrião da sessão |
| UpdateBatchSize | Número de anfitriões de sessão num único lote durante uma atualização do anfitrião da sessão |
Estado de cada atualização do anfitrião da sessão
Esta consulta correlaciona as tabelas WVDSessionHostManagement e WVDCheckpoints fornece os status mais recentes de cada atualização do anfitrião de sessões nos últimos 30 dias:
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)
O conjunto de dados devolvido é o seguinte:
| Coluna | Definição |
|---|---|
| TimeGenerated | Carimbo de data/hora do evento gerado pelo sistema |
| _SubscriptionId | ID da subscrição de um conjunto de anfitriões |
| _ResourceId | ID de recurso de um conjunto de anfitriões |
| CorrelationId | Identificador exclusivo atribuído a cada atualização da imagem de um conjunto de anfitriões |
| ProvisioningStatus | Status atual de uma atualização da imagem de um conjunto de anfitriões |
| ScheduledDateTime | Hora agendada da atualização do anfitrião da sessão em UTC |
| UpdateBatchSize | Número de anfitriões de sessão num único lote durante uma atualização da imagem |
| SessionHostUpdateCount | Número de anfitriões de sessão que foram atualizados |
Próximas etapas
Para obter orientações de resolução de problemas para a atualização do anfitrião de sessões, veja Resolução de problemas de atualização do anfitrião de sessões.