Példa diagnosztikai lekérdezésekre a munkamenet-gazdagép frissítéséhez az Azure Virtual Desktopban
Fontos
Az Azure Virtual Desktop munkamenet-gazdagépének frissítése jelenleg előzetes verzióban érhető el. A bétaverziójú, előzetes verziójú vagy másként még általánosan nem elérhető Azure-szolgáltatások jogi feltételeit lásd: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.
A munkamenet-gazdagép frissítése az Azure Monitor Log Analytics szolgáltatását használja a frissítésekre vonatkozó információk tárolására. Ez a cikk néhány kusto-lekérdezést tartalmaz, amelyet a Log Analytics használatával használhat a munkamenet-gazdagép frissítéseivel kapcsolatos információk megtekintéséhez.
Előfeltételek
A lekérdezések használatához a következőkre van szükség:
Egy meglévő gazdagépkészlet munkamenet-gazdagépkonfigurációval.
Konfigurált diagnosztikai beállítások minden egyes gazdagépkészleten, amelyet a munkamenet-gazdagép frissítésével használ a naplók és metrikák Log Analytics-munkaterületre való küldéséhez. Az Ellenőrzőpont, a Hiba és a Munkamenetgazda-kezelési tevékenységnaplók kategóriát legalább engedélyezni kell.
Korábban ütemezett és futtatott munkamenet-gazdagépfrissítés a gazdagépkészletben lévő munkamenet-gazdagépeken.
Diagnosztikai adatok helye
Miután konfigurálta a diagnosztikai beállításokat egy gazdagépkészleten, a munkamenet-gazdagép frissítésének diagnosztikai adatait a rendszer a táblákban WVDSessionHostManagement
és WVDCheckpoints
a Log Analytics-munkaterületen tárolja. A naplóbejegyzések a meglévő felügyeleti tevékenységtípust használják, amely az Azure Resource Manager (ARM) szolgáltatótól származik.
A tábla WVDSessionHostManagement
a munkamenet-gazdagép frissítésére vonatkozik, és akkor jön létre, ha engedélyezi a munkamenetgazda-kezelési tevékenységnaplókat a munkamenet-gazdagép frissítésével használt egyes gazdagépkészletek diagnosztikai beállításaiban, és a munkamenet-gazdagép frissítése fut. Ha korábban konfigurálta a gazdagépkészlet diagnosztikai beállításait, engedélyeznie kell a munkamenetgazda-kezelési tevékenységnaplókat. További információ : Diagnosztikai beállítások konfigurálása az Azure Virtual Desktop platformnaplóinak és metrikáinak rögzítéséhez.
A cikk további részében néhány, futtatható lekérdezés található. Ezek alapján saját lekérdezéseket hozhat létre. Ezeket a lekérdezéseket a Log Analyticsben kell futtatnia. A lekérdezések futtatásáról további információt a Log Analytics indítása című témakörben talál.
A munkamenet-gazdagép sikeres frissítései
Ez a lekérdezés korrelálja a táblákat WVDSessionHostManagement
, és WVDCheckpoints
megadja a frissítés befejezéséhez szükséges időt, valamint az egyetlen munkamenet-gazdagép frissítésének medián idejét az elmúlt 30 napban percekben:
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
A visszaadott adathalmaz a következő:
Oszlop | Definíció |
---|---|
TimeGenerated | Rendszer által létrehozott eseményidőbélyeg |
_SubscriptionId | Gazdagépkészlet előfizetés-azonosítója |
_ResourceId | Gazdagépkészlet erőforrás-azonosítója |
Korrelációazonosító | A gazdagépkészleten végrehajtott minden képfrissítéshez hozzárendelt egyedi azonosító |
UpdateStartDateTime | Munkamenet-gazdagép frissítésének kezdési időbélyege (UTC) |
UpdateEndDateTime | Munkamenet-gazdagép frissítésének befejezési időbélyege (UTC) |
UpdateDuration | A gazdagépkészlet összes munkamenet-gazdagépének képének frissítéséhez szükséges idő percek alatt |
SessionHostUpdateCount | Frissített munkamenet-gazdagépek száma |
MedianSessionHostUpdateTime | Egy munkamenet-gazdagép képének percek alatt történő frissítésének mediánideje |
UpdateBatchSize | Azoknak a munkamenet-gazdagépeknek a száma, amelyek egyetlen kötegben voltak a rendszerkép frissítése során |
FromSessionHostConfigVer | Munkamenet-gazdagép konfigurációja a rendszerkép frissítése előtt |
ToSessionHostConfigVer | Munkamenet-gazdagép konfigurációja a rendszerkép frissítése után |
UpdateDeleteOriginalVm | Az eredeti virtuális gép megőrzése a rendszerkép frissítésének befejezése után |
A munkamenet-gazdagép frissítése során felmerülő hibák
Ez a lekérdezés korrelálja a táblákat WVDSessionHostManagement
, és WVDErrors
olyan információkat biztosít, amelyek segítségével elháríthatja a munkamenet-gazdagépek elmúlt 30 napban történt frissítéseinek hibáit:
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
A visszaadott adathalmaz a következő:
Oszlop | Definíció |
---|---|
TimeGenerated | Rendszer által létrehozott eseményidőbélyeg |
_SubscriptionId | Gazdagépkészlet előfizetés-azonosítója |
_ResourceId | Gazdagépkészlet erőforrás-azonosítója |
Korrelációazonosító | A gazdagépkészleten végrehajtott minden képfrissítéshez hozzárendelt egyedi azonosító |
CodeSymbolic | Hibakód |
SessionHostResourceId | Munkamenet-gazdagép erőforrás-azonosítója, ha van ilyen |
Üzenet | Hibainformációk |
FromSessionHostConfigVer | Munkamenet-gazdagép konfigurációs verziója képfrissítés előtt |
ToSessionHostConfigVer | A munkamenet-gazdagép konfigurációs verziója, amelyre a munkamenet-gazdagépek frissültek, ahol a frissítési folyamat meghiúsult |
A munkamenet-gazdagép frissítéseit a rendszergazda megszakította az ütemezett időpont előtt
Ez a lekérdezés korrelálja a táblákat WVDSessionHostManagement
, és WVDCheckpoints
biztosítja a munkamenet-gazdagép ütemezett, majd a rendszergazda által a kezdés előtt megszakított frissítéseit az elmúlt 30 napban:
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
A visszaadott adathalmaz a következő:
Oszlop | Definíció |
---|---|
TimeGenerated | Rendszer által létrehozott eseményidőbélyeg |
_SubscriptionId | Gazdagépkészlet előfizetés-azonosítója |
_ResourceId | Gazdagépkészlet erőforrás-azonosítója |
Korrelációazonosító | A gazdagépkészlet rendszerképének minden frissítéséhez hozzárendelt egyedi azonosító |
ScheduledDateTime | Munkamenet-gazdagép ütemezett időpontja (UTC) |
CanceledDateTime | Időpont UTC-ben, amikor egy rendszergazda megszakította a rendszerkép frissítését |
UpdateBatchSize | Azoknak a munkamenet-gazdagépeknek a száma, amelyek egyetlen kötegben voltak a rendszerkép frissítése során |
Folyamatban lévő vagy sikertelen munkamenet-gazdagép-frissítések, majd később a rendszergazda megszakította
Ez a lekérdezés korrelálja a táblákat WVDSessionHostManagement
, és WVDCheckpoints
biztosítja a munkamenet-gazdagép folyamatban lévő vagy sikertelen frissítéseit, majd később egy rendszergazda megszakította az elmúlt 30 napban:
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
A visszaadott adathalmaz a következő:
Oszlop | Definíció |
---|---|
TimeGenerated | Rendszer által létrehozott eseményidőbélyeg |
_SubscriptionId | Gazdagépkészlet előfizetés-azonosítója |
_ResourceId | Gazdagépkészlet erőforrás-azonosítója |
Korrelációazonosító | A gazdagépkészlet munkamenet-gazdagépének minden frissítéséhez hozzárendelt egyedi azonosító |
ScheduledDateTime | Munkamenet-gazdagép ütemezett időpontja (UTC) |
CanceledDateTime | Időpont UTC-ben, amikor egy rendszergazda megszakította a munkamenet-gazdagép frissítését |
TotalSessionHostsInHostPool | A gazdagépkészlet munkamenet-gazdagépeinek teljes száma |
SessionHostUpdateCount | A munkamenet-gazdagépek frissítése előtt frissített munkamenet-gazdagépek száma |
UpdateBatchSize | Munkamenet-gazdagépek száma egyetlen kötegben a munkamenet-gazdagép frissítése során |
A munkamenet-gazdagép minden frissítésének állapota
Ez a lekérdezés korrelálja a táblákat WVDSessionHostManagement
, és WVDCheckpoints
az elmúlt 30 napban minden munkamenet-gazdagép frissítésének legújabb állapotát adja meg:
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)
A visszaadott adathalmaz a következő:
Oszlop | Definíció |
---|---|
TimeGenerated | Rendszer által létrehozott eseményidőbélyeg |
_SubscriptionId | Gazdagépkészlet előfizetés-azonosítója |
_ResourceId | Gazdagépkészlet erőforrás-azonosítója |
Korrelációazonosító | A gazdagépkészlet rendszerképének minden frissítéséhez hozzárendelt egyedi azonosító |
ProvisioningStatus | A gazdagépkészlet képének aktuális állapota |
ScheduledDateTime | Munkamenet-gazdagép ütemezett időpontja (UTC) |
UpdateBatchSize | Munkamenet-gazdagépek száma egyetlen kötegben a rendszerkép frissítése során |
SessionHostUpdateCount | A frissített munkamenet-gazdagépek száma |
Következő lépések
A munkamenet-gazdagép frissítésével kapcsolatos hibaelhárítási útmutatásért tekintse meg a munkamenet-gazdagép frissítésének hibaelhárítását ismertető témakört.