fix: 支持 OTel trace 位置参数

This commit is contained in:
Codex
2026-07-10 22:26:43 +02:00
parent e7f205ec3f
commit 25ea96e50a
2 changed files with 10 additions and 4 deletions
@@ -37,7 +37,7 @@ export function observabilityHelp(): Record<string, unknown> {
"bun scripts/cli.ts platform-infra observability status --target D601 [--full|--raw]",
"bun scripts/cli.ts platform-infra observability status --target D518 [--full|--raw]",
"bun scripts/cli.ts platform-infra observability validate --target D518 [--full|--raw]",
"bun scripts/cli.ts platform-infra observability trace --target D518 --trace-id <traceId> [--grep provider-stream-disconnected] [--limit 40] [--full|--raw]",
"bun scripts/cli.ts platform-infra observability trace <traceId> --target D518 [--grep provider-stream-disconnected] [--limit 40] [--full|--raw]",
"bun scripts/cli.ts platform-infra observability search --target D518 --grep 'no rollout found' [--lookback-minutes 360] [--candidate-limit 80] [--limit 20] [--full|--raw]",
"bun scripts/cli.ts platform-infra observability search --target JD01 --grep opencode.proxy.stream.start --lookback-minutes 30 --limit 20",
"bun scripts/cli.ts platform-infra observability search --target JD01 --grep opencode.proxy.sse.directory_rewrite_enabled --lookback-minutes 30 --limit 20",
@@ -113,13 +113,17 @@ export function parseTraceOptions(args: string[]): TraceOptions {
let traceId: string | null = null;
let grep: string | null = null;
let limit = 40;
const assignTraceId = (value: string) => {
if (!/^[0-9a-fA-F]{32}$/u.test(value)) throw new Error("trace id must be a 32-character OpenTelemetry trace id encoded as hex");
if (traceId !== null) throw new Error("observability trace accepts exactly one trace id, either positionally or through --trace-id");
traceId = value;
};
for (let index = 0; index < args.length; index += 1) {
const arg = args[index];
if (arg === "--trace-id") {
const value = args[index + 1];
if (value === undefined || value.startsWith("--")) throw new Error("--trace-id requires a value");
if (!/^[0-9a-fA-F]{32}$/u.test(value)) throw new Error("--trace-id must be a 32-character OpenTelemetry trace id encoded as hex");
traceId = value;
assignTraceId(value);
index += 1;
} else if (arg === "--grep") {
const value = args[index + 1];
@@ -133,6 +137,8 @@ export function parseTraceOptions(args: string[]): TraceOptions {
if (!Number.isInteger(parsed) || parsed < 1 || parsed > 500) throw new Error("--limit must be an integer from 1 to 500");
limit = parsed;
index += 1;
} else if (!arg.startsWith("--")) {
assignTraceId(arg);
} else {
commonArgs.push(arg);
if (arg === "--target") {
+1 -1
View File
@@ -438,7 +438,7 @@ export function platformInfraHelp(): unknown {
"bun scripts/cli.ts platform-infra observability apply --target D601 --confirm",
"bun scripts/cli.ts platform-infra observability status --target D601",
"bun scripts/cli.ts platform-infra observability validate --target D601",
"bun scripts/cli.ts platform-infra observability trace --target D601 --trace-id <traceId> [--grep text] [--limit 40] [--full|--raw]",
"bun scripts/cli.ts platform-infra observability trace <traceId> --target D601 [--grep text] [--limit 40] [--full|--raw]",
"bun scripts/cli.ts platform-infra observability search --target D601 --grep 'no rollout found' [--lookback-minutes 360] [--candidate-limit 80] [--limit 20]",
"bun scripts/cli.ts platform-infra observability diagnose-code-agent --target D601 --business-trace-id <trc_...> [--full|--raw]",
"bun scripts/cli.ts platform-infra observability diagnose-code-agent --target D601 --run-id <run_...> [--command-id <cmd_...>] [--runner-job-id <rjob_...>]",