Condividi tramite


Query di diagnostica di esempio per l'aggiornamento dell'host sessione in Desktop virtuale Azure

Importante

L'aggiornamento dell'host di sessione per Desktop virtuale Azure è attualmente in ANTEPRIMA. Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

L'aggiornamento dell'host di sessione usa Log Analytics in Monitoraggio di Azure per archiviare informazioni sugli aggiornamenti. Questo articolo include alcune query Kusto di esempio che è possibile usare con Log Analytics per visualizzare informazioni sugli aggiornamenti dell'host sessione.

Prerequisiti

Prima di poter usare queste query, è necessario:

  • Un pool di host esistente con una configurazione host di sessione.

  • Impostazioni di diagnostica configurate in ogni pool di host usati con l'aggiornamento dell'host sessione per inviare log e metriche a un'area di lavoro Log Analytics. Le categorie Checkpoint, Error e Session Host Management Activity Logs devono essere abilitate come minimo.

  • Oggetto pianificato in precedenza ed eseguito un aggiornamento dell'host di sessione negli host di sessione nel pool di host.

Posizione dei dati di diagnostica

Dopo aver configurato le impostazioni di diagnostica in un pool di host, i dati di diagnostica per l'aggiornamento dell'host sessione vengono archiviati nelle tabelle WVDSessionHostManagement e WVDCheckpoints nell'area di lavoro Log Analytics. Le voci di log usano il tipo di attività di gestione esistente, proveniente dal provider di Azure Resource Manager (ARM).

La tabella WVDSessionHostManagement è specifica per l'aggiornamento dell'host sessione e viene creata dopo aver abilitato la categoria Session Host Management Activity Logs (Log attività di gestione host sessione) nelle impostazioni di diagnostica per ogni pool di host usato con l'aggiornamento dell'host sessione e l'aggiornamento dell'host sessione viene eseguito. Se in precedenza sono state configurate le impostazioni di diagnostica per un pool di host, è necessario abilitare i log attività di gestione host sessione. Per altre informazioni, vedere Configurare le impostazioni di diagnostica per acquisire i log e le metriche della piattaforma per Desktop virtuale Azure.

Il resto di questo articolo include alcune query di esempio che è possibile eseguire. È possibile usarli come base per creare query personalizzate. È necessario eseguire ognuna di queste query in Log Analytics. Per altre informazioni su come eseguire query, vedere Avviare Log Analytics.

Aggiornamenti dell'host sessione completati correttamente

Questa query mette in correlazione le tabelle WVDSessionHostManagement e WVDCheckpoints fornisce il tempo impiegato per completare un aggiornamento e il tempo mediano per aggiornare un singolo host di sessione in minuti negli ultimi 30 giorni:

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

Il set di dati restituito è il seguente:

Colonna Definizione
TimeGenerated Timestamp dell'evento generato dal sistema
_SubscriptionId ID sottoscrizione di un pool di host
_ResourceId ID risorsa di un pool di host
CorrelationId Identificatore univoco assegnato a ogni aggiornamento delle immagini eseguito in un pool di host
UpdateStartDateTime Timestamp di inizio dell'aggiornamento dell'host di sessione in formato UTC
UpdateEndDateTime Timestamp di completamento dell'aggiornamento dell'host di sessione in formato UTC
UpdateDuration Tempo necessario per completare per aggiornare l'immagine di tutti gli host di sessione in un pool di host in pochi minuti
SessionHostUpdateCount Numero di host di sessione aggiornati
MedianSessionHostUpdateTime Tempo mediano per aggiornare l'immagine di un singolo host di sessione in minuti
UpdateBatchSize Numero di host di sessione inclusi in un singolo batch durante un aggiornamento dell'immagine
FromSessionHostConfigVer Configurazione dell'host di sessione prima di un aggiornamento dell'immagine
ToSessionHostConfigVer Configurazione host sessione dopo un aggiornamento dell'immagine
UpdateDeleteOriginalVm Indica se la macchina virtuale originale è stata mantenuta dopo il completamento di un aggiornamento dell'immagine

Errori durante un aggiornamento dell'host di sessione

Questa query correla le tabelle WVDSessionHostManagement e WVDErrors fornisce informazioni che è possibile usare per risolvere gli errori durante gli aggiornamenti dell'host sessione negli ultimi 30 giorni:

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

Il set di dati restituito è il seguente:

Colonna Definizione
TimeGenerated Timestamp dell'evento generato dal sistema
_SubscriptionId ID sottoscrizione di un pool di host
_ResourceId ID risorsa di un pool di host
CorrelationId Identificatore univoco assegnato a ogni aggiornamento delle immagini eseguito in un pool di host
CodeSymbolic Codice errore
SessionHostResourceId ID risorsa di un host di sessione, se applicabile
Message Informazioni sugli errori
FromSessionHostConfigVer Versione di configurazione dell'host di sessione prima di un aggiornamento dell'immagine
ToSessionHostConfigVer Versione di configurazione dell'host sessione in cui sono stati aggiornati gli host sessione in cui il processo di aggiornamento non è riuscito

Aggiornamenti dell'host di sessione annullati da un amministratore prima dell'ora pianificata

Questa query mette in correlazione le tabelle WVDSessionHostManagement e WVDCheckpoints fornisce gli aggiornamenti dell'host sessione pianificati, ma poi annullati da un amministratore prima dell'avvio, negli ultimi 30 giorni:

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

Il set di dati restituito è il seguente:

Colonna Definizione
TimeGenerated Timestamp dell'evento generato dal sistema
_SubscriptionId ID sottoscrizione di un pool di host
_ResourceId ID risorsa di un pool di host
CorrelationId Identificatore univoco assegnato a ogni aggiornamento dell'immagine di un pool di host
ScheduledDateTime Ora pianificata dell'aggiornamento dell'host di sessione in formato UTC
CanceledDateTime Ora utc in cui un aggiornamento dell'immagine è stato annullato da un amministratore
UpdateBatchSize Numero di host di sessione inclusi in un singolo batch durante un aggiornamento dell'immagine

Aggiornamenti dell'host di sessione in corso o non riusciti, quindi annullati successivamente da un amministratore

Questa query correla le tabelle WVDSessionHostManagement e WVDCheckpoints per fornire gli aggiornamenti dell'host sessione in corso o non riusciti, quindi annullata successivamente da un amministratore negli ultimi 30 giorni:

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

Il set di dati restituito è il seguente:

Colonna Definizione
TimeGenerated Timestamp dell'evento generato dal sistema
_SubscriptionId ID sottoscrizione di un pool di host
_ResourceId ID risorsa di un pool di host
CorrelationId Identificatore univoco assegnato a ogni aggiornamento dell'host di sessione di un pool di host
ScheduledDateTime Ora pianificata dell'aggiornamento dell'host di sessione in formato UTC
CanceledDateTime Ora utc in cui un amministratore ha annullato un aggiornamento dell'host sessione
TotalSessionHostsInHostPool Numero totale di host di sessione in un pool di host
SessionHostUpdateCount Numero di host di sessione aggiornati prima dell'annullamento di un aggiornamento dell'host di sessione
UpdateBatchSize Numero di host di sessione in un singolo batch durante un aggiornamento dell'host di sessione

Stato di ogni aggiornamento dell'host di sessione

Questa query correla le tabelle WVDSessionHostManagement e WVDCheckpoints fornisce lo stato più recente di ogni aggiornamento dell'host di sessione negli ultimi 30 giorni:

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)

Il set di dati restituito è il seguente:

Colonna Definizione
TimeGenerated Timestamp dell'evento generato dal sistema
_SubscriptionId ID sottoscrizione per un pool di host
_ResourceId ID risorsa di un pool di host
CorrelationId Identificatore univoco assegnato a ogni aggiornamento dell'immagine di un pool di host
ProvisioningStatus Stato corrente di un aggiornamento dell'immagine di un pool di host
ScheduledDateTime Ora pianificata dell'aggiornamento dell'host di sessione in formato UTC
UpdateBatchSize Numero di host di sessione in un singolo batch durante un aggiornamento dell'immagine
SessionHostUpdateCount Numero di host di sessione aggiornati

Passaggi successivi

Per indicazioni sulla risoluzione dei problemi relativi all'aggiornamento dell'host di sessione, vedere Risolvere i problemi relativi all'aggiornamento dell'host di sessione.