Delen via


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

Belangrijk

Update van sessiehost voor Azure Virtual Desktop is momenteel in PREVIEW. Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

Sessiehost-update 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 met Log Analytics kunt gebruiken voor informatie 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 categorieën Controlepunt, Fout en Activiteitenlogboeken voor sessiehostbeheer moeten minimaal zijn ingeschakeld.

  • Een eerder geplande update van een sessiehost op de sessiehosts in de hostgroep.

Locatie van diagnostische gegevens

Zodra u diagnostische instellingen voor een hostgroep hebt geconfigureerd, worden 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 ARM-provider (Azure Resource Manager).

De tabel WVDSessionHostManagement is specifiek voor het bijwerken van de sessiehost en wordt gemaakt zodra u de activiteitenlogboeken voor sessiehostbeheer inschakelt in de diagnostische instellingen voor elke hostgroep die u gebruikt met update van sessiehost en uitvoeringen van sessiehostupdates. Als u eerder diagnostische instellingen voor een hostgroep hebt geconfigureerd, moet u de activiteitenlogboeken voor sessiehostbeheer inschakelen. Voor meer informatie Configureer diagnostische instellingen 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 als basis gebruiken 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 sessiehosts die zijn voltooid

Deze query correleert de tabellen WVDSessionHostManagement en WVDCheckpoints geeft de tijd die nodig is voor het voltooien van een update 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 tijdstempel voor gebeurtenissen
_SubscriptionId Abonnements-id van een hostgroep
_ResourceId Resource-id van een hostgroep
CorrelationId Unieke id die is toegewezen aan elke update van de installatiekopie die wordt uitgevoerd in een hostgroep
UpdateStartDateTime Starttijdstempel van sessiehost bijwerken in UTC
UpdateEndDateTime Tijdstempel voor voltooiing van sessiehostupdate in UTC
UpdateDuration Tijd die nodig is om de installatiekopie van alle sessiehosts in een hostgroep in minuten bij te werken
SessionHostUpdateCount Aantal sessiehosts bijgewerkt
MedianSessionHostUpdateTime Mediaantijd voor het bijwerken van de installatiekopie van één sessiehost in minuten
UpdateBatchSize Aantal sessiehosts die zich in één batch bevonden tijdens een update van de installatiekopieën
FromSessionHostConfigVer Sessiehostconfiguratie vóór een update van de installatiekopie
ToSessionHostConfigVer Sessiehostconfiguratie na een update van de installatiekopie
UpdateDeleteOriginalVm Of de oorspronkelijke virtuele machine behouden blijft na het voltooien van een update van de installatiekopieën

Fouten tijdens het bijwerken van een sessiehost

Deze query correleert de tabellen WVDSessionHostManagement en WVDErrors biedt informatie die u kunt gebruiken om fouten op te lossen tijdens sessiehostupdates 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 tijdstempel voor gebeurtenissen
_SubscriptionId Abonnements-id van een hostgroep
_ResourceId Resource-id van een hostgroep
CorrelationId Unieke id die is toegewezen aan elke update van de installatiekopie die wordt uitgevoerd in een hostgroep
CodeSymbolicus 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 waarnaar sessiehosts zijn bijgewerkt waar het updateproces is mislukt

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

Deze query correleert de tabellen WVDSessionHostManagement en WVDCheckpoints biedt updates voor sessiehosts die zijn gepland, maar vervolgens geannuleerd door een beheerder voordat ze zijn gestart, in de afgelopen 30 dagen:

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 tijdstempel voor gebeurtenissen
_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 voor update van sessiehost in UTC
CanceledDateTime Tijd in UTC waarop een update van de afbeelding is geannuleerd door een beheerder
UpdateBatchSize Aantal sessiehosts die zich in één batch bevonden tijdens een update van de installatiekopieën

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

Met deze query worden de tabellen WVDSessionHostManagement gecorreleerd en WVDCheckpoints worden updates voor sessiehosts verstrekt die in de afgelopen 30 dagen zijn uitgevoerd of mislukt, en later geannuleerd door een beheerder:

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 tijdstempel voor gebeurtenissen
_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 voor update van sessiehost in UTC
CanceledDateTime Tijd in UTC toen 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

Deze query correleert de tabellen WVDSessionHostManagement en WVDCheckpoints geeft de meest recente status op van elke sessiehostupdate in de afgelopen 30 dagen:

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 tijdstempel voor gebeurtenissen
_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 voor update van sessiehost 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 update van sessiehost oplossen voor hulp bij het oplossen van problemen met sessiehostupdates.