This commit is contained in:
StellaOps Bot
2025-12-13 02:22:15 +02:00
parent 564df71bfb
commit 999e26a48e
395 changed files with 25045 additions and 2224 deletions

View File

@@ -52,6 +52,15 @@ internal sealed class ReachabilityFactEventBuilder
var (reachable, unreachable) = CountStates(fact);
var runtimeFactsCount = fact.RuntimeFacts?.Count ?? 0;
var avgConfidence = fact.States.Count > 0 ? fact.States.Average(s => s.Confidence) : 0;
var uncertaintyStates = fact.Uncertainty?.States ?? new List<UncertaintyStateDocument>();
var uncertaintyCodes = uncertaintyStates
.Where(s => s is not null && !string.IsNullOrWhiteSpace(s.Code))
.Select(s => s.Code.Trim())
.Distinct(StringComparer.OrdinalIgnoreCase)
.OrderBy(s => s, StringComparer.Ordinal)
.ToArray();
var avgEntropy = uncertaintyStates.Count > 0 ? uncertaintyStates.Average(s => s.Entropy) : 0;
var maxEntropy = uncertaintyStates.Count > 0 ? uncertaintyStates.Max(s => s.Entropy) : 0;
var topBucket = fact.States.Count > 0
? fact.States
.GroupBy(s => s.Bucket, StringComparer.OrdinalIgnoreCase)
@@ -72,11 +81,16 @@ internal sealed class ReachabilityFactEventBuilder
Weight: topBucket?.Average(s => s.Weight) ?? 0,
StateCount: fact.States.Count,
FactScore: fact.Score,
RiskScore: fact.RiskScore,
UnknownsCount: fact.UnknownsCount,
UnknownsPressure: fact.UnknownsPressure,
UncertaintyCount: uncertaintyStates.Count,
MaxEntropy: maxEntropy,
AverageEntropy: avgEntropy,
AverageConfidence: avgConfidence,
ComputedAtUtc: fact.ComputedAt,
Targets: fact.States.Select(s => s.Target).ToArray());
Targets: fact.States.Select(s => s.Target).ToArray(),
UncertaintyCodes: uncertaintyCodes);
}
private static (int reachable, int unreachable) CountStates(ReachabilityFactDocument fact)