So I was close. I tested with $filter=LUN eq '*' before without any result
$uri = "https://management.azure.com/subscriptions/$($subscription)/resourceGroups/$($resourceGroup)/providers/Microsoft.Compute/virtualMachines/$($vmname)/providers/microsoft.insights/metrics?api-version=2024-02-01&metricnames=$($metricName)&interval=PT5M$filter=LUN eq '*'"
The tweak is to escape the $ in $filter
$uri = "https://management.azure.com/subscriptions/$($subscription)/resourceGroups/$($resourceGroup)/providers/Microsoft.Compute/virtualMachines/$($vmname)/providers/microsoft.insights/metrics?api-version=2024-02-01&metricnames=$($metricName)&interval=PT5M`$filter=LUN eq '*'"