Delen via


Voorbeeld van diagnostische query's voor het bijwerken van sessiehosts in Azure Virtual Desktop

Belangrijk

De sessiehostupdate voor Azure Virtual Desktop is momenteel in PREVIEW. Zie de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bètaversie, preview of anderszins nog niet algemeen beschikbaar zijn.

Bijwerken van sessiehost maakt gebruik van Log Analytics in Azure Monitor om informatie over updates op te slaan. Dit artikel bevat enkele voorbeelden van Kusto-query's die u kunt gebruiken met Log Analytics om informatie te bekijken over updates van sessiehosts.

Vereisten

Voordat u deze query's kunt gebruiken, hebt u het volgende nodig:

  • Een bestaande hostgroep met een sessiehostconfiguratie.

  • Geconfigureerde diagnostische instellingen voor elke hostgroep die u gebruikt met sessiehostupdate om logboeken en metrische gegevens te verzenden naar een Log Analytics-werkruimte. De activiteitenlogboeken van de categorieën Controlepunt, Fout en Sessiehostbeheer moeten minimaal worden ingeschakeld.

  • Een eerder geplande en uitvoeren van een sessiehostupdate op de sessiehosts in de hostgroep.

Locatie van diagnostische gegevens

Zodra u diagnostische instellingen voor een hostgroep hebt geconfigureerd, worden de diagnostische gegevens voor het bijwerken van de sessiehost opgeslagen in de tabellen WVDSessionHostManagement en WVDCheckpoints in uw Log Analytics-werkruimte. Logboekvermeldingen maken gebruik van het bestaande type beheeractiviteit, dat afkomstig is van de Azure Resource Manager (ARM)-provider.

De tabel WVDSessionHostManagement is specifiek voor het bijwerken van sessiehosts en wordt gemaakt zodra u de categorie Sessiehostbeheer activiteitenlogboeken inschakelt voor de diagnostische instellingen voor elke hostgroep die u gebruikt met sessiehostupdate en sessiehostupdate wordt uitgevoerd. Als u eerder diagnostische instellingen voor een hostgroep hebt geconfigureerd, moet u de categorie Sessiehostbeheeractiviteitenlogboeken inschakelen. Voor meer informatie Diagnostische instellingen configureren voor het vastleggen van platformlogboeken en metrische gegevens voor Azure Virtual Desktop.

De rest van dit artikel bevat enkele voorbeeldquery's die u kunt uitvoeren. U kunt ze gebruiken als basis om uw eigen query's te maken. U moet elk van deze query's uitvoeren in Log Analytics. Zie Log Analytics starten voor meer informatie over het uitvoeren van query's.

Updates van sessiehost die zijn voltooid

Deze query correleert de tabellen WVDSessionHostManagement en WVDCheckpoints geeft de tijd die nodig is om een update te voltooien en de mediaantijd voor het bijwerken van één sessiehost in minuten in de afgelopen 30 dagen:

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

De geretourneerde gegevensset is als volgt:

Kolom Definitie
TimeGenerated Door het systeem gegenereerde gebeurtenistijdstempel
_SubscriptionId Abonnements-id van een hostgroep
_ResourceId Resource-id van een hostgroep
CorrelationId Unieke id die is toegewezen aan elke installatiekopie-update die wordt uitgevoerd op een hostgroep
UpdateStartDateTime Begintijdstempel van sessiehostupdate in UTC
UpdateEndDateTime Tijdstempel voor voltooiing van sessiehostupdates in UTC
UpdateDuration Tijd die nodig is om de installatiekopie van alle sessiehosts in een hostgroep in minuten bij te werken
SessionHostUpdateCount Aantal bijgewerkte sessiehosts
MedianSessionHostUpdateTime Mediaantijd voor het bijwerken van de installatiekopie van één sessiehost in minuten
UpdateBatchSize Aantal sessiehosts dat zich in één batch bevindt tijdens een update van de installatiekopieën
FromSessionHostConfigVer Configuratie van sessiehost vóór een update van de installatiekopie
ToSessionHostConfigVer Configuratie van sessiehost na een update van de installatiekopie
UpdateDeleteOriginalVm Of de oorspronkelijke virtuele machine is behouden na het voltooien van een update van de installatiekopieën

Fouten tijdens een sessiehostupdate

Deze query correleert de tabellen WVDSessionHostManagement en WVDErrors biedt informatie die u kunt gebruiken om fouten op te lossen tijdens updates van sessiehosts in de afgelopen 30 dagen:

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

De geretourneerde gegevensset is als volgt:

Kolom Definitie
TimeGenerated Door het systeem gegenereerde gebeurtenistijdstempel
_SubscriptionId Abonnements-id van een hostgroep
_ResourceId Resource-id van een hostgroep
CorrelationId Unieke id die is toegewezen aan elke installatiekopie-update die wordt uitgevoerd op een hostgroep
CodeSymbolic Foutcode
SessionHostResourceId Resource-id van een sessiehost, indien van toepassing
Bericht Foutinformatie
FromSessionHostConfigVer Configuratieversie van sessiehost vóór een installatiekopie-update
ToSessionHostConfigVer Configuratieversie van sessiehost naar welke sessiehosts zijn bijgewerkt waar het updateproces is mislukt

Updates van sessiehosts die vóór de geplande tijd door een beheerder zijn geannuleerd

Met deze query worden de tabellen WVDSessionHostManagement gecorreleerd en WVDCheckpoints worden updates van de sessiehost verstrekt die in de afgelopen 30 dagen zijn gepland, maar vervolgens zijn geannuleerd door een beheerder voordat deze werden gestart:

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

De geretourneerde gegevensset is als volgt:

Kolom Definitie
TimeGenerated Door het systeem gegenereerde gebeurtenistijdstempel
_SubscriptionId Abonnements-id van een hostgroep
_ResourceId Resource-id van een hostgroep
CorrelationId Unieke id die is toegewezen aan elke update van de installatiekopie van een hostgroep
ScheduledDateTime Geplande tijd van sessiehost bijwerken in UTC
CanceledDateTime Tijdstip in UTC waarop een update van de afbeelding is geannuleerd door een beheerder
UpdateBatchSize Aantal sessiehosts dat zich in één batch bevindt tijdens een update van de installatiekopieën

Updates van sessiehosts die worden uitgevoerd of mislukt, en die later worden geannuleerd door een beheerder

Met deze query worden de tabellen WVDSessionHostManagement gecorreleerd en WVDCheckpoints worden updates van de sessiehost aangeboden die in de afgelopen 30 dagen zijn uitgevoerd of zijn mislukt en later door een beheerder zijn geannuleerd:

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

De geretourneerde gegevensset is als volgt:

Kolom Definitie
TimeGenerated Door het systeem gegenereerde gebeurtenistijdstempel
_SubscriptionId Abonnements-id van een hostgroep
_ResourceId Resource-id van een hostgroep
CorrelationId Unieke id die is toegewezen aan elke update van de sessiehost van een hostgroep
ScheduledDateTime Geplande tijd van sessiehost bijwerken in UTC
CanceledDateTime Tijd in UTC waarop een beheerder een update van de sessiehost heeft geannuleerd
TotalSessionHostsInHostPool Totaal aantal sessiehosts in een hostgroep
SessionHostUpdateCount Aantal sessiehosts dat is bijgewerkt voordat een sessiehostupdate werd geannuleerd
UpdateBatchSize Aantal sessiehosts in één batch tijdens een update van de sessiehost

Status van elke sessiehostupdate

Met deze query worden de tabellen WVDSessionHostManagement gecorreleerd en WVDCheckpoints wordt de meest recente status van elke sessiehostupdate in de afgelopen 30 dagen opgegeven:

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)

De geretourneerde gegevensset is als volgt:

Kolom Definitie
TimeGenerated Door het systeem gegenereerde gebeurtenistijdstempel
_SubscriptionId Abonnements-id voor een hostgroep
_ResourceId Resource-id van een hostgroep
CorrelationId Unieke id die is toegewezen aan elke update van de installatiekopie van een hostgroep
ProvisioningStatus Huidige status van een update van de installatiekopie van een hostgroep
ScheduledDateTime Geplande tijd van sessiehost bijwerken in UTC
UpdateBatchSize Aantal sessiehosts in één batch tijdens een update van de installatiekopieën
SessionHostUpdateCount Aantal sessiehosts dat is bijgewerkt

Volgende stappen

Zie Problemen met het bijwerken van sessiehosts oplossen voor hulp bij het oplossen van problemen met het bijwerken van sessiehosts.