Add resilient upload queue and client health
This commit is contained in:
@@ -124,6 +124,16 @@ function Publish-NinjaCustomFields {
|
||||
}
|
||||
}
|
||||
|
||||
$uploadStatus = [string]$Report.Runtime.UploadStatus
|
||||
if ([string]::IsNullOrWhiteSpace($uploadStatus)) { $uploadStatus = "unknown" }
|
||||
$queuedReports = [int]$Report.Runtime.QueuedReportCount
|
||||
$lastUploadUtc = ""
|
||||
if ($Report.Runtime.LastSuccessfulUploadUtc) {
|
||||
try { $lastUploadUtc = ([DateTimeOffset]$Report.Runtime.LastSuccessfulUploadUtc).ToUniversalTime().ToString("o") } catch { $lastUploadUtc = [string]$Report.Runtime.LastSuccessfulUploadUtc }
|
||||
}
|
||||
$lastUploadError = [string]$Report.Runtime.LastUploadError
|
||||
if ($lastUploadError.Length -gt 900) { $lastUploadError = $lastUploadError.Substring(0, 900) }
|
||||
|
||||
$fieldValues = @(
|
||||
[pscustomobject]@{ Name = "ocsentinelstatus"; Type = "Text"; Value = [string]$Report.AlertState }
|
||||
[pscustomobject]@{ Name = "ocsentinelreason"; Type = "Text"; Value = $Reason }
|
||||
@@ -135,6 +145,11 @@ function Publish-NinjaCustomFields {
|
||||
[pscustomobject]@{ Name = "ocsentinelmode"; Type = "Text"; Value = $Mode }
|
||||
[pscustomobject]@{ Name = "ocsentineltriggered"; Type = "Checkbox"; Value = $Triggered }
|
||||
[pscustomobject]@{ Name = "ocsentinellastscanutc"; Type = "DateTime"; Value = $generatedAtUtc }
|
||||
[pscustomobject]@{ Name = "ocsentineluploadstatus"; Type = "Text"; Value = $uploadStatus }
|
||||
[pscustomobject]@{ Name = "ocsentinelqueuedreports"; Type = "Integer"; Value = $queuedReports }
|
||||
[pscustomobject]@{ Name = "ocsentinellastuploadutc"; Type = "DateTime"; Value = $lastUploadUtc }
|
||||
[pscustomobject]@{ Name = "ocsentinellasterror"; Type = "Text"; Value = $lastUploadError }
|
||||
[pscustomobject]@{ Name = "ocsentinelclientversion"; Type = "Text"; Value = [string]$Report.ClientVersion }
|
||||
)
|
||||
|
||||
$updated = 0
|
||||
@@ -190,6 +205,8 @@ $events = [int]$report.TotalEvents
|
||||
$uniqueIps = [int]$report.UniqueIpCount
|
||||
$criticalCves = [int]$report.VulnerabilityCorrelation.CriticalCount
|
||||
$totalCves = [int]$report.VulnerabilityCorrelation.TotalCount
|
||||
$uploadStatus = [string]$report.Runtime.UploadStatus
|
||||
$queuedReports = [int]$report.Runtime.QueuedReportCount
|
||||
|
||||
$monitorTriggered = $false
|
||||
$monitorReason = ""
|
||||
@@ -225,6 +242,8 @@ Write-Host "Events: $events"
|
||||
Write-Host "Unique IPs: $uniqueIps"
|
||||
Write-Host "Critical/High CVEs: $criticalCves"
|
||||
Write-Host "Total CVEs: $totalCves"
|
||||
Write-Host "Upload status: $uploadStatus"
|
||||
Write-Host "Queued reports: $queuedReports"
|
||||
Write-Host "Report: $outputFullPath"
|
||||
Write-Host "Runner exit code: $runnerExitCode"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user