Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Aktualizacja hosta sesji dla usługi Azure Virtual Desktop jest obecnie dostępna w wersji zapoznawczej. Zapoznaj się z dodatkowymi warunkami użytkowania dla wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z warunkami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze udostępnione do ogólnej dostępności.
Aktualizacja hosta sesji używa usługi Log Analytics w usłudze Azure Monitor do przechowywania informacji o aktualizacjach. Ten artykuł zawiera przykładowe zapytania Kusto, których można użyć w usłudze Log Analytics, aby wyświetlić informacje o aktualizacjach hosta sesji.
Wymagania wstępne
Przed użyciem tych zapytań potrzebne są następujące elementy:
Istniejąca pula hostów z konfiguracją hosta sesji.
Skonfigurowano ustawienia diagnostyczne dla każdej puli hostów używanej z aktualizacją hosta sesji w celu wysyłania dzienników i metryk do obszaru roboczego usługi Log Analytics. Kategorie Checkpoint, Error i Session Host Management Activity Logs muszą być włączone co najmniej.
Wcześniej zaplanowano i uruchomiono aktualizację hosta sesji na hostach sesji w puli hostów.
Lokalizacja danych diagnostycznych
Po skonfigurowaniu ustawień diagnostycznych w puli hostów dane diagnostyczne dotyczące aktualizacji hosta sesji są przechowywane w tabelach WVDSessionHostManagement i WVDCheckpoints obszarze roboczym usługi Log Analytics. Wpisy dziennika używają istniejącego typu działania zarządzania, który pochodzi od dostawcy usługi Azure Resource Manager (ARM).
Tabela WVDSessionHostManagement jest specyficzna dla aktualizacji hosta sesji i jest tworzona po włączeniu kategorii Dzienniki aktywności zarządzania hostami sesji w ustawieniach diagnostycznych dla każdej puli hostów używanej z aktualizacją hosta sesji i przebiegami aktualizacji hosta sesji. Jeśli wcześniej skonfigurowano ustawienia diagnostyczne dla puli hostów, musisz włączyć kategorię Dzienniki aktywności zarządzania hostem sesji. Aby uzyskać więcej informacji , skonfiguruj ustawienia diagnostyczne w celu przechwytywania dzienników i metryk platformy dla usługi Azure Virtual Desktop.
W pozostałej części tego artykułu przedstawiono przykładowe zapytania, które można uruchomić. Można ich używać jako podstawy do tworzenia własnych zapytań. Każde z tych zapytań należy uruchomić w usłudze Log Analytics. Aby uzyskać więcej informacji na temat uruchamiania zapytań, zobacz Uruchamianie usługi Log Analytics.
Aktualizacje hosta sesji, które zostały pomyślnie ukończone
To zapytanie koreluje tabele WVDSessionHostManagement i WVDCheckpoints określa czas potrzebny na ukończenie aktualizacji oraz medianę czasu aktualizacji pojedynczego hosta sesji w minutach w ciągu ostatnich 30 dni:
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
Zwrócony zestaw danych jest następujący:
| Kolumna | Definicja |
|---|---|
| TimeGenerated | Sygnatura czasowa wygenerowanego przez system zdarzenia |
| _SubscriptionId | Identyfikator subskrypcji puli hostów |
| _ResourceId | Identyfikator zasobu puli hostów |
| CorrelationId | Unikatowy identyfikator przypisany do każdej aktualizacji obrazu wykonywanej w puli hostów |
| UpdateStartDateTime | Sygnatura czasowa rozpoczęcia aktualizacji hosta sesji w formacie UTC |
| UpdateEndDateTime | Sygnatura czasowa ukończenia aktualizacji hosta sesji w formacie UTC |
| UpdateDuration | Czas potrzebny do ukończenia aktualizacji obrazu wszystkich hostów sesji w puli hostów w ciągu kilku minut |
| SessionHostUpdateCount | Liczba zaktualizowanych hostów sesji |
| MedianSessionHostUpdateTime | Mediana czasu aktualizowania obrazu pojedynczego hosta sesji w minutach |
| UpdateBatchSize | Liczba hostów sesji, które znajdowały się w jednej partii podczas aktualizacji obrazu |
| FromSessionHostConfigVer | Konfiguracja hosta sesji przed aktualizacją obrazu |
| ToSessionHostConfigVer | Konfiguracja hosta sesji po aktualizacji obrazu |
| UpdateDeleteOriginalVm | Czy oryginalna maszyna wirtualna została zachowana po zakończeniu aktualizacji obrazu |
Błędy podczas aktualizacji hosta sesji
To zapytanie koreluje tabele WVDSessionHostManagement i WVDErrors udostępnia informacje, których można użyć do rozwiązywania problemów z błędami podczas aktualizacji hosta sesji w ciągu ostatnich 30 dni:
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
Zwrócony zestaw danych jest następujący:
| Kolumna | Definicja |
|---|---|
| TimeGenerated | Sygnatura czasowa wygenerowanego przez system zdarzenia |
| _SubscriptionId | Identyfikator subskrypcji puli hostów |
| _ResourceId | Identyfikator zasobu puli hostów |
| CorrelationId | Unikatowy identyfikator przypisany do każdej aktualizacji obrazu wykonywanej w puli hostów |
| CodeSymbolic | Kod błędu |
| SessionHostResourceId | Identyfikator zasobu hosta sesji, jeśli ma to zastosowanie |
| Komunikat | Informacje o błędzie |
| FromSessionHostConfigVer | Wersja konfiguracji hosta sesji przed aktualizacją obrazu |
| ToSessionHostConfigVer | Wersja konfiguracji hosta sesji, do której hosty sesji zostały zaktualizowane w przypadku niepowodzenia procesu aktualizacji |
Aktualizacje hosta sesji anulowane przez administratora przed zaplanowanym czasem
To zapytanie skoreluje tabele WVDSessionHostManagement i WVDCheckpoints udostępni aktualizacje hosta sesji, które zostały zaplanowane, ale następnie anulowane przez administratora przed ich rozpoczęciem w ciągu ostatnich 30 dni:
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
Zwrócony zestaw danych jest następujący:
| Kolumna | Definicja |
|---|---|
| TimeGenerated | Sygnatura czasowa wygenerowanego przez system zdarzenia |
| _SubscriptionId | Identyfikator subskrypcji puli hostów |
| _ResourceId | Identyfikator zasobu puli hostów |
| CorrelationId | Unikatowy identyfikator przypisany do każdej aktualizacji obrazu puli hostów |
| ScheduledDateTime | Zaplanowana godzina aktualizacji hosta sesji w formacie UTC |
| CanceledDateTime | Czas w formacie UTC, kiedy aktualizacja obrazu została anulowana przez administratora |
| UpdateBatchSize | Liczba hostów sesji, które znajdowały się w jednej partii podczas aktualizacji obrazu |
Aktualizacje hosta sesji, które były w toku lub nie powiodły się, a następnie zostały później anulowane przez administratora
To zapytanie koreluje tabele WVDSessionHostManagement i WVDCheckpoints udostępnia aktualizacje hosta sesji, które były w toku lub nie powiodły się, a następnie zostały później anulowane przez administratora w ciągu ostatnich 30 dni:
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
Zwrócony zestaw danych jest następujący:
| Kolumna | Definicja |
|---|---|
| TimeGenerated | Sygnatura czasowa wygenerowanego przez system zdarzenia |
| _SubscriptionId | Identyfikator subskrypcji puli hostów |
| _ResourceId | Identyfikator zasobu puli hostów |
| CorrelationId | Unikatowy identyfikator przypisany do każdej aktualizacji hosta sesji puli hostów |
| ScheduledDateTime | Zaplanowana godzina aktualizacji hosta sesji w formacie UTC |
| CanceledDateTime | Czas w formacie UTC, kiedy administrator anulował aktualizację hosta sesji |
| TotalSessionHostsInHostPool | Całkowita liczba hostów sesji w puli hostów |
| SessionHostUpdateCount | Liczba hostów sesji, które zostały zaktualizowane przed anulowaniem aktualizacji hosta sesji |
| UpdateBatchSize | Liczba hostów sesji w jednej partii podczas aktualizacji hosta sesji |
Stan każdej aktualizacji hosta sesji
To zapytanie koreluje tabele WVDSessionHostManagement i WVDCheckpoints zapewnia najnowszy stan każdej aktualizacji hosta sesji w ciągu ostatnich 30 dni:
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)
Zwrócony zestaw danych jest następujący:
| Kolumna | Definicja |
|---|---|
| TimeGenerated | Sygnatura czasowa wygenerowanego przez system zdarzenia |
| _SubscriptionId | Identyfikator subskrypcji dla puli hostów |
| _ResourceId | Identyfikator zasobu puli hostów |
| CorrelationId | Unikatowy identyfikator przypisany do każdej aktualizacji obrazu puli hostów |
| ProvisioningStatus | Bieżący stan aktualizacji obrazu puli hostów |
| ScheduledDateTime | Zaplanowana godzina aktualizacji hosta sesji w formacie UTC |
| UpdateBatchSize | Liczba hostów sesji w jednej partii podczas aktualizacji obrazu |
| SessionHostUpdateCount | Liczba zaktualizowanych hostów sesji |
Następne kroki
Aby uzyskać wskazówki dotyczące rozwiązywania problemów z aktualizacją hosta sesji, zobacz Rozwiązywanie problemów z aktualizacją hosta sesji.