modules/Azure/Discovery/Public/Save-CIEMAzureDiscoveryPhaseMetric.ps1
|
function Save-CIEMAzureDiscoveryPhaseMetric { [CmdletBinding()] param( [Parameter(Mandatory)] [int]$DiscoveryRunId, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string]$PhaseName, [Parameter(Mandatory)] [bool]$Succeeded, [Parameter(Mandatory)] [ValidateRange(0, [double]::MaxValue)] [double]$ElapsedSeconds, [Parameter()] [string]$Evidence, [Parameter()] [string]$RecordedAt = (Get-Date).ToString('o') ) $ErrorActionPreference = 'Stop' $runRows = @(Invoke-CIEMQuery -Query 'SELECT id FROM azure_discovery_runs WHERE id = @id' -Parameters @{ id = $DiscoveryRunId }) if ($runRows.Count -ne 1) { throw "Discovery run '$DiscoveryRunId' was not found." } Invoke-CIEMQuery -Query @" INSERT OR REPLACE INTO azure_discovery_phase_metrics ( discovery_run_id, phase_name, succeeded, elapsed_seconds, evidence, recorded_at ) VALUES ( @discovery_run_id, @phase_name, @succeeded, @elapsed_seconds, @evidence, @recorded_at ) "@ -Parameters @{ discovery_run_id = $DiscoveryRunId phase_name = $PhaseName succeeded = if ($Succeeded) { 1 } else { 0 } elapsed_seconds = [math]::Round($ElapsedSeconds, 2, [MidpointRounding]::AwayFromZero) evidence = $Evidence recorded_at = $RecordedAt } -AsNonQuery | Out-Null @(Get-CIEMAzureDiscoveryPhaseMetric -DiscoveryRunId $DiscoveryRunId -PhaseName $PhaseName)[0] } |