Repository navigation
fix(azure): land Advisor field derivation and Synapse collection (recovers #378, #382) - #400
Conversation
…rtial-result error A non-USD billing currency or an unpriceable SKU was dropped with only a log line, so an EUR or GBP account looked like it had no savings. The skips are now recorded on a context-carried SkipLog and returned from GetRecommendations as *PartialResultError alongside the recommendations that did succeed. Closes #362 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… fail loud on truncation Only subscription-scoped reservation and Savings Plan Advisor recommendations are converted; resize and shutdown recommendations are no longer emitted as RI purchases with count 0. Commitment type, term, SKU and quantity come from the extended properties and a missing or unknown value is skipped with a recorded reason instead of defaulting. A page cap or page error now surfaces as a PartialResultError rather than a silently partial list. Refs #292 Refs #252 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s client covers Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… partial result PartialResultError was only reachable from the internal package and the multi-subscription merge counted any error as a failed subscription, dropping its recommendations. Export the type and AsPartialResult, give it a Partial() method, and aggregate skips across subscriptions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…visor-derive-fields
…visor converter Advisor routinely returns reservations for services this collector does not price; recording them as skips made nearly every subscription partial. Savings Plan rows now use ServiceSavingsPlansAll, the savings amount guard tests are restored, and the now-unused extractServiceType is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…382) * fix(azure): collect Synapse recommendations in the provider fan-out The Synapse client was complete and tested but never called from GetRecommendations. Search and Managed Redis stay out: Search has no valid Consumption resource type and no reservation prices (#197), and Managed Redis queries the same RedisCache resource type as the cache client, so wiring it would emit the same recommendations twice. Refs #47 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(azure): repair merge of the Synapse wiring onto the Advisor branch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(azure): stub the Synapse client in the adapter fan-out tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…-recover # Conflicts: # providers/azure/internal/recommendations/consumption.go # providers/azure/recommendations.go
|
Warning Review limit reached
This review includes 5 billable files and costs up to $1.25.
Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing. Or wait 53 minutes for your next included review. View limit details
Comment |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Independent review (claude-opus-5-5) of 676b9e8: APPROVE This PR recovers #378 + #382, which the gate merged into their stacked bases instead of main. Review only.
The non-blocking notes from my #378/#382 reviews still apply: Advisor rows repeat per lookback period, and |
Closes #292
Refs #47 (wires Synapse only; Search and Managed Redis stay unwired, reasons in the issue comment).
Refs #252 (Advisor page cap only; the subscription cap and other uncapped pagers stay open)
This recovers content that was approved at 462df7e (#378) and 87db9c8 (#382) but was merged into stacked branches by mistake instead of main. #366 and #373 are already on main; this branch is
origin/fix/292-azure-advisor-derive-fieldswithorigin/mainmerged in. The only conflicts were against the squashed #366, resolved to its content plus the follow-up changes from #378/#382.Contents
PartialResultError; page cap and page errors surface the same way.ServiceSavingsPlansAlland are dropped when the Benefit Recommendations client returned an SP row for the same (account, term).ServiceDataWarehouse. Search (no valid Consumption type, no retail rows) and Managed Redis (sameRedisCachetype as the cache client, would duplicate rows) are deliberately not wired.Verification (fixture-based)
GOWORK=off go vet ./... && go test ./...in providers/azure pass;GOWORK=off go build ./...of pkg, providers/aws, providers/gcp and providers/azure pass; pre-commit gocyclo passes.git diff origin/main...HEADtouches only:providers/azure/internal/recommendations/consumption.go,pagination_cap_test.go,recommendations.go,recommendations_advisor_test.go,recommendations_test.go.🤖 Generated with Claude Code