Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Aktualizace hostitele relace pro Azure Virtual Desktop je aktuálně ve verzi PREVIEW. Právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, ve verzi Preview nebo jinak ještě nejsou obecně dostupné, najdete v doplňkových podmínkách použití pro verze Microsoft Azure Preview .
Aktualizace hostitele relace používá Log Analytics ve službě Azure Monitor k ukládání informací o aktualizacích. Tento článek obsahuje několik ukázkových dotazů Kusto, které můžete použít s Log Analytics k zobrazení informací o aktualizacích hostitelů relací.
Požadavky
Před použitím těchto dotazů potřebujete:
Existující fond hostitelů s konfigurací hostitele relace
Nakonfigurovaná nastavení diagnostiky pro každý fond hostitelů, který používáte s aktualizací hostitelů relací, aby se odesílaly protokoly a metriky do pracovního prostoru služby Log Analytics. Kategorie Kontrolní bod, Chyba a Protokoly aktivit správy hostitelů relací musí být povolené minimálně.
Dříve naplánovaná a spuštěná aktualizace hostitele relace na hostitelích relací ve fondu hostitelů.
Umístění diagnostických dat
Jakmile nakonfigurujete nastavení diagnostiky ve fondu hostitelů, diagnostická data pro aktualizaci hostitele relace se uloží do tabulek WVDSessionHostManagement a WVDCheckpoints pracovního prostoru služby Log Analytics. Položky protokolu používají existující typ aktivity správy, který pochází od poskytovatele Azure Resource Manager (ARM).
Tabulka WVDSessionHostManagement je specifická pro aktualizaci hostitele relace a vytvoří se po povolení kategorie Protokoly aktivit správy hostitele relace v nastavení diagnostiky pro každý fond hostitelů, který používáte s aktualizací hostitele relace, a spuštění aktualizace hostitele relace. Pokud jste dříve nakonfigurovali nastavení diagnostiky pro fond hostitelů, musíte povolit kategorii Protokoly aktivit správy hostitelů relací. Další informace najdete v tématu Konfigurace nastavení diagnostiky pro zachytávání protokolů platformy a metrik pro Azure Virtual Desktop.
Zbytek tohoto článku obsahuje několik příkladů dotazů, které můžete spustit. Můžete je použít jako základ pro vytváření vlastních dotazů. Každý z těchto dotazů musíte spustit v Log Analytics. Další informace o tom, jak spouštět dotazy, najdete v tématu Spuštění Log Analytics.
Aktualizace hostitele relace, které se úspěšně dokončily
Tento dotaz koreluje tabulky WVDSessionHostManagement a WVDCheckpoints poskytuje čas potřebný k dokončení aktualizace a medián času k aktualizaci jednoho hostitele relace v minutách za posledních 30 dnů:
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
Vrácená datová sada je následující:
| Sloupec | Vysvětlení |
|---|---|
| TimeGenerated | Časové razítko událostí vygenerované systémem |
| _SubscriptionId | ID předplatného fondu hostitelů |
| _ResourceId | ID zdroje fondu hostitelů |
| Id korelace | Jedinečný identifikátor přiřazený ke každé aktualizaci image provedené ve fondu hostitelů |
| UpdateStartDateTime | Časové razítko zahájení aktualizace hostitele relace ve standardu UTC |
| UpdateEndDateTime | Časové razítko dokončení aktualizace hostitele relace ve standardu UTC |
| Doba trvání aktualizace | Doba potřebná k dokončení aktualizace image všech hostitelů relací ve fondu hostitelů v minutách |
| SessionHostUpdateCount | Počet aktualizovaných hostitelů relací |
| MedianSessionHostUpdateTime | Medián času aktualizace image jednoho hostitele relace v minutách |
| UpdateBatchSize | Počet hostitelů relací, kteří byli během aktualizace image v jedné dávce |
| FromSessionHostConfigVer | Konfigurace hostitele relace před aktualizací image |
| ToSessionHostConfigVer | Konfigurace hostitele relace po aktualizaci image |
| UpdateDeleteOriginalVm | Jestli se původní virtuální počítač zachoval i po dokončení aktualizace image |
Chyby během aktualizace hostitele relace
Tento dotaz koreluje tabulky WVDSessionHostManagement a WVDErrors poskytuje informace, které můžete použít k řešení chyb během aktualizací hostitelů relací za posledních 30 dnů:
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
Vrácená datová sada je následující:
| Sloupec | Vysvětlení |
|---|---|
| TimeGenerated | Časové razítko událostí vygenerované systémem |
| _SubscriptionId | ID předplatného fondu hostitelů |
| _ResourceId | ID zdroje fondu hostitelů |
| Id korelace | Jedinečný identifikátor přiřazený ke každé aktualizaci image provedené ve fondu hostitelů |
| CodeSymbolic | Kód chyby |
| SessionHostResourceId | ID prostředku hostitele relace, pokud je k dispozici |
| Zpráva | Informace o chybě |
| FromSessionHostConfigVer | Verze konfigurace hostitele relace před aktualizací image |
| ToSessionHostConfigVer | Verze konfigurace hostitele relace, na kterou se hostitelé relace aktualizovali v případě selhání procesu aktualizace |
Aktualizace hostitele relace zrušené správcem před naplánovaným časem
Tento dotaz koreluje tabulky WVDSessionHostManagement a WVDCheckpoints poskytuje aktualizace hostitelů relací, které byly naplánované, ale následně zrušené správcem před jejich zahájením během posledních 30 dnů:
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
Vrácená datová sada je následující:
| Sloupec | Vysvětlení |
|---|---|
| TimeGenerated | Časové razítko událostí vygenerované systémem |
| _SubscriptionId | ID předplatného fondu hostitelů |
| _ResourceId | ID zdroje fondu hostitelů |
| Id korelace | Jedinečný identifikátor přiřazený každé aktualizaci image fondu hostitelů |
| ScheduledDateTime | Naplánovaný čas aktualizace hostitele relace ve standardu UTC |
| CanceledDateTime | Čas ve standardu UTC, kdy správce zrušil aktualizaci image |
| UpdateBatchSize | Počet hostitelů relací, kteří byli během aktualizace image v jedné dávce |
Aktualizace hostitele relace, které probíhaly nebo selhaly, a pak je správce později zrušil.
Tento dotaz koreluje tabulky WVDSessionHostManagement a WVDCheckpoints poskytuje aktualizace hostitele relace, které probíhaly nebo selhaly, a následně je správce během posledních 30 dnů zrušil:
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
Vrácená datová sada je následující:
| Sloupec | Vysvětlení |
|---|---|
| TimeGenerated | Časové razítko událostí vygenerované systémem |
| _SubscriptionId | ID předplatného fondu hostitelů |
| _ResourceId | ID zdroje fondu hostitelů |
| Id korelace | Jedinečný identifikátor přiřazený každé aktualizaci hostitele relace fondu hostitelů |
| ScheduledDateTime | Naplánovaný čas aktualizace hostitele relace ve standardu UTC |
| CanceledDateTime | Čas ve standardu UTC, kdy správce zrušil aktualizaci hostitele relace |
| TotalSessionHostsInHostPool | Celkový počet hostitelů relací ve fondu hostitelů |
| SessionHostUpdateCount | Počet hostitelů relací, kteří byli aktualizováni před zrušením aktualizace hostitele relace |
| UpdateBatchSize | Počet hostitelů relací v jedné dávce během aktualizace hostitele relace |
Stav každé aktualizace hostitele relace
Tento dotaz koreluje tabulky WVDSessionHostManagement a WVDCheckpoints poskytuje nejnovější stav každé aktualizace hostitele relace za posledních 30 dnů:
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)
Vrácená datová sada je následující:
| Sloupec | Vysvětlení |
|---|---|
| TimeGenerated | Časové razítko událostí vygenerované systémem |
| _SubscriptionId | ID předplatného pro fond hostitelů |
| _ResourceId | ID zdroje fondu hostitelů |
| Id korelace | Jedinečný identifikátor přiřazený každé aktualizaci image fondu hostitelů |
| Stav zřizování | Aktuální stav aktualizace image fondu hostitelů |
| ScheduledDateTime | Naplánovaný čas aktualizace hostitele relace ve standardu UTC |
| UpdateBatchSize | Počet hostitelů relací v jedné dávce během aktualizace image |
| SessionHostUpdateCount | Počet aktualizovaných hostitelů relací |
Další kroky
Pokyny k řešení potíží s aktualizací hostitele relace najdete v tématu Řešení potíží s aktualizací hostitele relace.