public/Measure-Queue.ps1

<#PSScriptInfo
{
    "VERSION": "1.0.0",
    "GUID": "2e3f6483-081d-4277-823a-18bc34043a93",
    "FILENAME": "Measure-Queue.ps1",
    "AUTHOR": "Hannes Palmquist",
    "AUTHOREMAIL": "hannes.palmquist@outlook.com",
    "CREATEDDATE": "2021-01-21",
    "COMPANYNAME": "Personal",
    "COPYRIGHT": "(c) 2021, Hannes Palmquist, All Rights Reserved"
}
PSScriptInfo#>

function Measure-Queue {
    <#
    .DESCRIPTION
        Returns an object with performance metrics for the provided queue.
    .PARAMETER Queue
        Queue object to retreive performance metrics for.
    .EXAMPLE
        Measure-Queue -Queue $Queue
        This example will return a object containing performance metrics for the provided queue.
    #>


    [CmdletBinding()] # Enabled advanced function support
    param(
        [parameter(Mandatory)][ExtendedQueue]$Queue
    )

    return [pscustomobject]@{
        QueueCount = $Queue.GetQueueCount()
        AddsPerSec = [Math]::Round($Queue.AddPerSec,2)
        RemovesPerSec = [Math]::Round($Queue.RemovePerSec,2)
        Velocity = [Math]::Round($Queue.Velocity,2)
    }

}
#endregion