Src/Public/New-PromOutput.ps1

function New-PromOutput {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [PSTypeName('PrometheusMetric')][object[]] $Metrics
    )
    process{
        $Lines = [System.Collections.Generic.List[String]]::new()
        $LastRecord = $null
        foreach ($Metric in $Metrics) {
            if($Metric.Description.name -ne $LastRecord){
                $LastRecord = $Metric.Description.name
                $Lines.Add("# HELP $($Metric.Description.name) $($Metric.Description.help)")
                $Lines.Add("# TYPE $($Metric.Description.name) $($Metric.Description.type)")
            }

            $strBuilder = $null
            if($Metric.Description.labels.count -gt 0){
                for ($i = 0; $i -lt $Metric.Description.labels.Count; $i++) {
                    $strBuilder += "{$($Metric.Description.labels[$i])=`"$($Metric.labels[$i])`"}"
                }
            }
            $Lines.Add("$($Metric.Description.name)$strBuilder $($Metric.type)")
        }
        $Lines -join "`n"
    }
}