Consultas para a tabela WVDConnections

Erros de conexão

Listar pontos de verificação de conexão e erros para cada tentativa de conexão, juntamente com informações detalhadas entre todos os usuários.

//You can also uncomment the where clause to filter to a specific user if you are troubleshooting an issue. 
WVDConnections 
//| where UserName == "upn.here@contoso.com" 
| project-away TenantId,SourceSystem  
| summarize arg_max(TimeGenerated, *), StartTime = min(iff(State=='Started', TimeGenerated , datetime(null) )), ConnectTime = min(iff(State=='Connected', TimeGenerated , datetime(null) )) by CorrelationId  
| join kind=leftouter 
(
    WVDErrors
    |summarize Errors=make_list(pack('Code', Code, 'CodeSymbolic', CodeSymbolic, 'Time', TimeGenerated, 'Message', Message ,'ServiceError', ServiceError, 'Source', Source)) by CorrelationId  
) on CorrelationId
| join kind=leftouter 
(
    WVDCheckpoints
    | summarize Checkpoints=make_list(pack('Time', TimeGenerated, 'Name', Name, 'Parameters', Parameters, 'Source', Source)) by CorrelationId  
    | mv-apply Checkpoints on
    (  
        order by todatetime(Checkpoints['Time']) asc
        | summarize Checkpoints=make_list(Checkpoints)
    )
) on CorrelationId  
| project-away CorrelationId1, CorrelationId2  
| order by TimeGenerated desc

Duração da sessão

Listas a duração e o tipo de conexão das conexões de cada usuário.

// The "State" field provides information on the connection stage of an actitivity.
// The delta between "Connected" and "Completed" provides the connection duration.
WVDConnections 
| where State == "Connected"  
| project CorrelationId , UserName, ConnectionType , StartTime=TimeGenerated  
| join kind=inner
(
    WVDConnections  
    | where State == "Completed"  
    | project EndTime=TimeGenerated, CorrelationId
) on CorrelationId  
| project Duration = EndTime - StartTime, ConnectionType, UserName  
| sort by Duration desc

10 principais usuários por duração média da conexão

Listas 10 usuários com a maior duração média de conexão.

// Connection activities have 3 states, this query demonstrates how to calculate the connection duration.
WVDConnections  
| where State == "Connected"  
| project CorrelationId, UserName, ConnectionType, StartTime=TimeGenerated  
| join kind=inner
(
    WVDConnections  
    | where State == "Completed"  
    | project EndTime=TimeGenerated, CorrelationId
) on CorrelationId  
| project Duration = EndTime - StartTime, ConnectionType, UserName  
| summarize AVGDuration=avg(Duration) by UserName 
| sort by AVGDuration desc 
| limit 10

Os 10 usuários mais ativos

Listas os 10 principais usuários pela duração total da conexão.

// The connection duration is the delta between "Connected" and "Completed" state.
WVDConnections 
| where State == "Connected" 
| project CorrelationId , UserName, ConnectionType , StartTime=TimeGenerated 
| join kind=inner
(
    WVDConnections 
    | where State == "Completed" 
    | project EndTime=TimeGenerated, CorrelationId
) on CorrelationId 
| extend SessionDuration = EndTime - StartTime
| summarize TotalConnectionTime = sum(SessionDuration) by UserName, ConnectionType
| top 10 by TotalConnectionTime desc

Duração média da conexão por hostpool

Classifica os pools de host por duração média da conexão.

// Characterize the usage pattern of all hostpools in the current Log Analytics scope
WVDConnections  
| where State == "Connected"
| project ResourceAlias, CorrelationId, StartTime=TimeGenerated, _ResourceId
| join kind = leftouter 
(
    WVDConnections  
    | where State == "Completed"  
    | project EndTime=TimeGenerated, CorrelationId
) on CorrelationId
// If connection hasn't completed yet, it is still running so the end time can be assumed to be now (duration so far)
| project Duration = coalesce(EndTime, now()) - StartTime, _ResourceId
| summarize AvgDuration=avg(Duration) by _ResourceId
| parse _ResourceId with "/subscriptions/" subscription "/resourcegroups/" ResourceGroup "/providers/microsoft.desktopvirtualization/hostpools/" HostPool
| project ResourceGroup, HostPool, AvgDuration
| sort by AvgDuration desc

Informações do sistema operacional do lado do cliente por contagem de usuários

Produz um gráfico de barras de sistemas operacionais usados em dispositivos cliente que se conectam à implantação.

// Use this query to understand which OS version users have installed on the devices they are connecting from. 
WVDConnections  
| summarize UserCount=dcount(UserName) by ClientOS 
| sort by UserCount desc 
| render barchart

Informações de uso do cliente da Área de Trabalho Virtual do Azure

Lista de tipos de cliente e versões usadas pelos usuários que se conectam à implantação.

WVDConnections  
| summarize UserCount=dcount(UserName) by ClientType, ClientVersion 
| sort by ClientVersion, ClientType, UserCount desc

Tempo médio de logon da sessão

Listas o tempo médio de logon da sessão por pool de host e estado de sessão.

WVDConnections  
| where TimeGenerated > ago(24h)
| where State == "Started"
| project CorrelationId , UserName, ConnectionType , StartTime=TimeGenerated, _ResourceId
| join kind=inner
(
    WVDConnections
    | where State == "Connected"  
    | project ConnectTime=TimeGenerated, CorrelationId
) on CorrelationId
| join kind=inner
(   
    WVDCheckpoints
    | where Name =~ "LoadBalancedNewConnection"
    | extend LoadBalanceOutcome=tostring(parse_json(Parameters).LoadBalanceOutcome)
) on CorrelationId 
| project Duration = ConnectTime - StartTime, _ResourceId, Session=case(LoadBalanceOutcome in ("Active", "Disconnected"), "ExistingSession", LoadBalanceOutcome == "Pending", "Creating", LoadBalanceOutcome)
// Exclude connections that are happening while another connection kicked off the session creation, since results will be inconclusive
| where Session != "Creating"
| summarize AvgDuration=avg(Duration) by _ResourceId, Session
| parse _ResourceId with "/subscriptions/" subscription "/resourcegroups/" ResourceGroup "/providers/microsoft.desktopvirtualization/hostpools/" HostPool
| project ResourceGroup, HostPool, Session, AvgDuration
| sort by AvgDuration desc