JeremyMain / GPUProfiler

GPUProfiler - Understand your application and workflow resource requirements
285 stars 19 forks source link

Remoting Protocol Network (Tx/RX) and packet loss #137

Open JeremyMain opened 4 years ago

JeremyMain commented 4 years ago

Adding the remoting protocol metrics for Network Tx/Rx and packet loss information. HDX, PCoIP and Blast support. Request for details about TGX, RDP if anyone has data sources I can add those as well.

JeremyMain commented 3 years ago

HDX, PCoIP and Blast protocol metrics AND overall network utilization (Tx/Rx) implemented and tested. For protocols that don't have data sources the general network utilization can be used.

stitchpc commented 3 years ago

I see a need in the market for TGX, RDP & HP Z Central for GFX protocol support (priority for TGX as they support Game Pad). Let me know what Data source you need, I can provide samples for each. There are other key network metrics that we measure separately that would be nice to have like Jitter and packet re-ordering but most important is comparing Sender vs Receiver Tx/Rx at both ends.

JeremyMain commented 3 years ago

If you have those metric details please share them with me at [ jmain @ gpuprofiler.com ] and I can attempt to add them to the next release (the release with the network / protocol utilization). I will need to add an additional define for ZCentral.

image

mjnowen commented 3 years ago

Would love to see NICE DCV protocol supported here. Let us know in this comment thread what information/software/resources you need to help make this happen and I can help organise that for you.

JeremyMain commented 3 years ago

@mjnowen I installed DCV server in a VM and poked around WMI looking for something relevant but no luck. If you know if there is an DCV API that I can query to collect some of the metrics that the client can display (except on the VM-side) it would make adding Nice DCV support possible. image

JeremyMain commented 3 years ago

The DCV documentation and API calls haven't revealed anything as well. https://docs.aws.amazon.com/dcv/index.html

There is a "metrics" registry key but no documentation about what key values and what that enables. Computer\HKEY_CURRENT_USER\SOFTWARE\GSettings\com\nicesoftware\dcv\metrics

pbor commented 3 years ago

Yes, that is something we plan to better document once we also improve the content of the metrics we collect.

In the mean time, in that registry folder you can set a registry key called reporters and assign the string value ['jsonlogfile'] (including the square brackets, since potentially it is a list of reporters but right now the json dump is the only one that we have.

This will generate json log files every minute in the DCV logs folder (C:\ProgramData\NICE\dcv). There will be a log file for each process (server and agents) and the files are rotated so you can pick them up at your own pace.

JeremyMain commented 3 years ago

adding reporters : ['jsonlogfile'] to Computer\HKEY_CURRENT_USER\SOFTWARE\GSettings\com\nicesoftware\dcv\metrics\ resulted in the user session agent.%USERNAME%.json files to be generated. Not quite what I was looking to parse.

With some more digging in the registry, I added the same to Computer\HKEY_USERS\.DEFAULT\Software\GSettings\com\nicesoftware\dcv\metrics which now generates:

I am going to examine the available metrics in each of the json files. The challenge will be to efficiently parse these files to extract relevant data at every sample interval (Minimum, once per second).

I would like to extract

A test application to extract these metrics will be easier to test and profile.

JeremyMain commented 3 years ago

Current status is that overall network Tx/Rx as well as remoting protocol Tx/Rx for some protocols (PCoIP, Blast, HDX) are in verification phase. WIP screenshot, there are some other UI issues that need to still be resolved: Img Tx is the Tx value for the remoting protocol's image transfer counter. image