feat: Log every gRPC call on server and client paths in Flow#2276
feat: Log every gRPC call on server and client paths in Flow#2276kunzhao-nv wants to merge 3 commits into
Conversation
Adds a shared grpclog package and wires unary interceptors into both the Flow gRPC server and the Core (NICo) gRPC client. Each RPC now emits one structured log line with method, duration_ms, status code, and peer or target. Payloads are intentionally not logged: AddExpectedMachine / AddExpectedSwitch carry BMC credentials. Log level is derived from the status code: OK and expected business outcomes (NotFound, AlreadyExists, ...) at Info; transient outcomes (DeadlineExceeded, Aborted) at Warn; infrastructure failures (Unavailable, Internal) at Error. Same classifier on both sides so a given code reads identically wherever it surfaces. Closes the observability gap in step 4 of the documented debug flow (REST -> workflow -> activity -> Flow -> Core), which previously had zero per-RPC logs in either direction. Signed-off-by: Kun Zhao <kunzhao@nvidia.com>
Bump the per-component verification stage from 4m / 3m (stage / action) to 20m / 5m. The previous values left the inner verify-power-status action with only 3m to converge, which is tight for PowerShelves and NVSwitches after a forced power transition. Signed-off-by: Kun Zhao <kunzhao@nvidia.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
🔐 TruffleHog Secret Scan✅ No secrets or credentials found! Your code has been scanned for 700+ types of secrets and credentials. All clear! 🎉 🕐 Last updated: 2026-06-05 23:01:20 UTC | Commit: 4c30d23 |
🔍 Container Scan Summary
Per-CVE detail lives in the per-service |
… Core Each inventory sync iteration now logs one summary line with compute / nvswitches / powershelves counts received from Core's GetMachines / GetAllExpectedSwitchesLinked / GetAllExpectedPowerShelvesLinked calls. Lets operators sanity-check "did Core return anything for this type?" without grepping per-component logs. Signed-off-by: Kun Zhao <kunzhao@nvidia.com>
Description
flow/internal/common/grpclog/with unary interceptors and wire them into the Flow gRPC server and the NICo (Core) gRPC client. One structured log line per RPC:grpc.service/grpc.method/grpc.code/grpc.duration_ms/grpc.peerorgrpc.target. Level by status code. No payloads (BMC creds).Type of Change
Related Issues (Optional)
Breaking Changes
Testing
Additional Notes