I have tried in my environments to get those metrics
$Resource = Get-AzResource -ResourceName “metricdemoapp” -ResourceGroupName “xxx” -ResourceType "Microsoft.Web/sites"
$ResourceID = $Resource.ResourceId
$Metrics = Get-AzMetric -ResourceId $ResourceID -StartTime (Get-date).AddHours(-24) -TimeGrain 00:01:00
The above returns variable $Metrics returns only metrics of CpuTime and its details like Id, name, type ,unit ,Data,timeseries as it is the first metric that appears
With Id : /subscriptions/xxxxxx23f/resourceGroups/xxxxx/providers/Microsoft.Web/sites/metricdemoapp/providers/Microsoft.Insights/metrics/CpuTime

After Checking the supported metrics in portal in my case , web app service

when tried with other metric name, got the units as required.


Powershell :
$Resource = Get-AzResource -ResourceName “metricdemoapp” -ResourceGroupName “xxx” -ResourceType "Microsoft.Web/sites"
$ResourceID = $Resource.ResourceId
$MetricsDefinition = Get-AzMetricDefinition -ResourceId $ResourceID
$MetricsDefinition
$i=0
foreach($metric in $MetricsDefinition)
{
$MetricName=$MetricsDefinition.Name.Value[$i]
$MetricDetails= Get-AzMetric -ResourceId $ResourceID -MetricName $MetricName
$MetricDataValue=$MetricDetails.Data
$Timestamp=$MetricDetails.Data.TimeStamp
$Average=$MetricDetails.Data.Average
$mCount=$MetricName.Value.Count
$count=$mCount-1
$MetricUnit=$metric.Unit
$MetricUnit
$MetricValue=$MetricName.Value
$MetricValue
$MetricResult = New-Object PSObject
$MetricResult | add-member Noteproperty MetricName $MetricName
$MetricResult | add-member Noteproperty MetricUnit $MetricUnit
$MetricResult | add-member Noteproperty MetricDetails $MetricDetails
$MetricResult | add-member Noteproperty MetricDataValue $MetricDataValue
$MetricResult | add-member Noteproperty TimeStamp $Timestamp
$MetricResult | add-member Noteproperty Average $Average
$MetricResult
$i++
}
Output:
Will be something like:
MetricName : CpuTime
MetricUnit : Seconds
MetricDetails : Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricNoDetails
MetricDataValue : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue, Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue, Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
TimeStamp : {11/24/2022 6:23:00 AM, 11/24/2022 6:24:00 AM, 11/24/2022 6:25:00 AM, 11/24/2022 6:26:00 AM…}
Average : {$null, $null, $null, $null…}
And continues for every metric like below

Where AverageResponseTime is one of the metrics you can see

EDIT: 28/11/2022

Try adding aggregation type Average lie $MetricDetails= Get-AzMetric -ResourceId $ResourceID -MetricName $MetricName -AggregationType Average -TimeGrain 06:00:00
$MetricsDefinition = Get-AzMetricDefinition -ResourceId $ResourceID
$i=0
foreach($metric in $MetricsDefinition)
{
$MetricName=$MetricsDefinition.Name.Value[$i]
$MetricDetails= Get-AzMetric -ResourceId $ResourceID -MetricName $MetricName -AggregationType Average -TimeGrain 06:00:00
$MetricDataValue=$MetricDetails.Data
$Timestamp=$MetricDetails.Data.TimeStamp
$Average=$MetricDetails.Data.Average
$mCount=$MetricName.Value.Count
$count=$mCount-1
$MetricUnit=$metric.Unit
$MetricUnit
$MetricValue=$MetricName.Value
$MetricValue
$MetricResult = New-Object PSObject
$MetricResult | add-member Noteproperty MetricName $MetricName
$MetricResult | add-member Noteproperty MetricUnit $MetricUnit
$MetricResult | add-member Noteproperty MetricDetails $MetricDetails
$MetricResult | add-member Noteproperty MetricDataValue $MetricDataValue
$MetricResult | add-member Noteproperty TimeStamp $Timestamp
$MetricResult | add-member Noteproperty Average $Average
$MetricResult
$i++
}
