Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.
This commit is contained in:
@@ -69,6 +69,10 @@ internal static class CliMetrics
|
||||
private static readonly Counter<long> DecisionExportCounter = Meter.CreateCounter<long>("stellaops.cli.decision.export.count");
|
||||
private static readonly Counter<long> DecisionVerifyCounter = Meter.CreateCounter<long>("stellaops.cli.decision.verify.count");
|
||||
private static readonly Counter<long> DecisionCompareCounter = Meter.CreateCounter<long>("stellaops.cli.decision.compare.count");
|
||||
// Sprint: SPRINT_20251228_002_BE_oci_attestation_attach (T3, T4)
|
||||
private static readonly Counter<long> OciAttestAttachCounter = Meter.CreateCounter<long>("stellaops.cli.oci.attest.attach.count");
|
||||
private static readonly Counter<long> OciAttestListCounter = Meter.CreateCounter<long>("stellaops.cli.oci.attest.list.count");
|
||||
private static readonly Counter<long> OciAttestVerifyCounter = Meter.CreateCounter<long>("stellaops.cli.oci.attest.verify.count");
|
||||
private static readonly Histogram<double> CommandDurationHistogram = Meter.CreateHistogram<double>("stellaops.cli.command.duration.ms");
|
||||
|
||||
public static void RecordScannerDownload(string channel, bool fromCache)
|
||||
@@ -210,6 +214,33 @@ internal static class CliMetrics
|
||||
=> DecisionCompareCounter.Add(1, WithSealedModeTag(
|
||||
Tag("outcome", string.IsNullOrWhiteSpace(outcome) ? "unknown" : outcome)));
|
||||
|
||||
/// <summary>
|
||||
/// Records an OCI attestation attach operation.
|
||||
/// Sprint: SPRINT_20251228_002_BE_oci_attestation_attach (T3)
|
||||
/// </summary>
|
||||
/// <param name="outcome">The attach outcome (success, error, invalid_json).</param>
|
||||
public static void RecordOciAttestAttach(string outcome)
|
||||
=> OciAttestAttachCounter.Add(1, WithSealedModeTag(
|
||||
Tag("outcome", string.IsNullOrWhiteSpace(outcome) ? "unknown" : outcome)));
|
||||
|
||||
/// <summary>
|
||||
/// Records an OCI attestation list operation.
|
||||
/// Sprint: SPRINT_20251228_002_BE_oci_attestation_attach (T3)
|
||||
/// </summary>
|
||||
/// <param name="outcome">The list outcome (success, error).</param>
|
||||
public static void RecordOciAttestList(string outcome)
|
||||
=> OciAttestListCounter.Add(1, WithSealedModeTag(
|
||||
Tag("outcome", string.IsNullOrWhiteSpace(outcome) ? "unknown" : outcome)));
|
||||
|
||||
/// <summary>
|
||||
/// Records an OCI attestation verify operation.
|
||||
/// Sprint: SPRINT_20251228_002_BE_oci_attestation_attach (T4)
|
||||
/// </summary>
|
||||
/// <param name="outcome">The verify outcome (success, failed, failed_strict, error).</param>
|
||||
public static void RecordOciAttestVerify(string outcome)
|
||||
=> OciAttestVerifyCounter.Add(1, WithSealedModeTag(
|
||||
Tag("outcome", string.IsNullOrWhiteSpace(outcome) ? "unknown" : outcome)));
|
||||
|
||||
public static IDisposable MeasureCommandDuration(string command)
|
||||
{
|
||||
var start = DateTime.UtcNow;
|
||||
|
||||
Reference in New Issue
Block a user