feat: improve g14 observability closeout cli

This commit is contained in:
Codex
2026-06-05 02:34:13 +00:00
parent b767c1f331
commit 64c936bf0c
4 changed files with 970 additions and 25 deletions
+59 -1
View File
@@ -1,4 +1,5 @@
import { activeV02PipelineRuns, gitMirrorFlushJobManifest, gitMirrorStatusSummary, gitMirrorSyncJobManifest, gitMirrorV02SyncRequirement, hwlabG14Help, hwlabG14MonitorStateFileName, parseGitMirrorStatusRefs, parsePipelineTaskRunMetrics, parseV02TriggerSnapshot, rolloutRecordBody, semanticChangelogBullets, summarizeV02CdStatus, v02CloseoutVerdict, v02CommitAlignment, v02ControlPlaneRefreshScriptHash, v02ControlPlaneRenderScript, v02ExistingPipelineRunReuseDecision, v02FalseGreenGuard, v02GitMirrorPreSyncWaitMs, v02LatestOnlyTargetValidation, v02PipelineServiceIds, v02PrAutomationCommentBody, v02ReusableGitMirrorPreSyncMarker, v02ReusableRefreshMarker, v02TaskRunPerformanceSummary } from "./src/hwlab-g14";
import { activeV02PipelineRuns, g14ObservabilityQueryAssertion, gitMirrorFlushJobManifest, gitMirrorStatusSummary, gitMirrorSyncJobManifest, gitMirrorV02SyncRequirement, hwlabG14Help, hwlabG14MonitorStateFileName, parseGitMirrorStatusRefs, parsePipelineTaskRunMetrics, parseV02TriggerSnapshot, rolloutRecordBody, semanticChangelogBullets, summarizeV02CdStatus, v02CloseoutVerdict, v02CommitAlignment, v02ControlPlaneRefreshScriptHash, v02ControlPlaneRenderScript, v02ExistingPipelineRunReuseDecision, v02FalseGreenGuard, v02GitMirrorPreSyncWaitMs, v02LatestOnlyTargetValidation, v02PipelineServiceIds, v02PrAutomationCommentBody, v02ReusableGitMirrorPreSyncMarker, v02ReusableRefreshMarker, v02TaskRunPerformanceSummary } from "./src/hwlab-g14";
import { runCommand } from "./src/command";
function assertCondition(condition: unknown, message: string, detail: unknown = {}): void {
if (!condition) throw new Error(`${message}: ${JSON.stringify(detail)}`);
@@ -60,6 +61,59 @@ assertCondition(
"v0.2 help must expose the controlled OpenFGA upstream image mirroring path",
hwlabHelpUsage,
);
assertCondition(
hwlabHelpUsage.some((line) => line.includes("observability query --promql 'up{namespace=\"hwlab-v02\"}' --expect-count 6 --expect-value 1"))
&& hwlabHelpUsage.some((line) => line.includes("observability targets --lane v02"))
&& hwlabHelpUsage.some((line) => line.includes("observability boundary --lane v02"))
&& hwlabHelpUsage.some((line) => line.includes("observability closeout --lane v02")),
"observability help must expose assertion, target, boundary, and closeout entrypoints",
hwlabHelpUsage,
);
const observabilityAssertionPass = g14ObservabilityQueryAssertion({
status: "success",
data: {
resultType: "vector",
result: [
{ metric: { job: "hwlab-cloud-api", namespace: "hwlab-v02", pod: "api-pod", hwlab_pikastech_local_service_id: "hwlab-cloud-api" }, value: [1, "1"] },
{ metric: { job: "hwlab-cloud-web", namespace: "hwlab-v02", pod: "web-pod", hwlab_pikastech_local_service_id: "hwlab-cloud-web" }, value: [1, "1.0"] },
],
},
}, 2, "1");
const observabilityAssertionFail = g14ObservabilityQueryAssertion({
status: "success",
data: {
resultType: "vector",
result: [
{ metric: { job: "hwlab-cloud-api", namespace: "hwlab-v02", pod: "api-pod", hwlab_pikastech_local_service_id: "hwlab-cloud-api" }, value: [1, "0"] },
],
},
}, 2, "1");
assertCondition(
record(observabilityAssertionPass).ok === true
&& record(observabilityAssertionPass).actualCount === 2
&& record(observabilityAssertionPass).valueOk === true,
"observability query assertion must pass matching vector count and numeric string values",
observabilityAssertionPass,
);
assertCondition(
record(observabilityAssertionFail).ok === false
&& record(observabilityAssertionFail).actualCount === 1
&& Array.isArray(record(observabilityAssertionFail).badValues)
&& Array.isArray(record(observabilityAssertionFail).missingSeries)
&& record(observabilityAssertionFail).badValueCount === 1,
"observability query assertion must report bad values and missing series instead of requiring manual vector inspection",
observabilityAssertionFail,
);
const unsupportedObservabilityOption = runCommand(["bun", "scripts/cli.ts", "hwlab", "g14", "observability", "query", "--not-a-real-option"], process.cwd(), { timeoutMs: 30_000 });
const unsupportedObservabilityJson = JSON.parse(unsupportedObservabilityOption.stdout) as unknown;
assertCondition(
unsupportedObservabilityOption.exitCode !== 0
&& record(unsupportedObservabilityJson).ok === false
&& String(record(record(unsupportedObservabilityJson).error).message ?? "").includes("unsupported observability option"),
"observability CLI must fail visibly on unsupported options instead of silently ignoring friction-prone flags",
unsupportedObservabilityJson,
);
const v02CommentBody = v02PrAutomationCommentBody({
pr: {
@@ -683,6 +737,10 @@ console.log(JSON.stringify({
"once jobs do not overwrite long-running monitor state",
"dry-run jobs do not overwrite live monitor state",
"once dry-run jobs have a distinct diagnostic state file",
"v0.2 PR monitor state pointers do not overwrite legacy G14 monitor pointers",
"observability help exposes assertion, target, boundary, and closeout entrypoints",
"observability query assertions report count and terminal value pass/fail",
"observability CLI rejects unsupported options with visible JSON errors",
"git mirror sync is a manual devops-infra Job, not a CronJob",
"git mirror flush is a manual devops-infra Job, not a CronJob",
"trigger-current can decide whether v0.2 git mirror pre-sync is required",
+905 -19
View File
File diff suppressed because it is too large Load Diff