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.