Skip to content

FOCUS 1.1 support #1275

Open
Feature
@flanakin

Description

@flanakin

📝 Scenario

As a FinOps practitioner, I need to leverage new FOCUS 1.1 columns in order to account for commitment discount flexibility and track capacity reservations

💎 Solution

Implement FOCUS 1.1

📋 Tasks

Required tasks

Preview Give feedback

Stretch goals

Preview Give feedback

ℹ️ Additional context

  1. Rename the following columns:
    1. x_SkuDetails → SkuPriceDetails.
    2. x_SkuMeterName → SkuMeter.
  2. Add the following new columns for VM on-demand capacity reservations:
    1. CapacityReservationId = AdditionalInfo.VMCapacityReservationId.
    2. CapacityReservationStatus which will need to copy data out of AdditionalInfo.
  3. Add the following new columns for commitment discount utilization and coverage:
    1. CommitmentDiscountQuantity
      1. Savings plans = EffectiveCost / ExchangeRate.
      2. Reservations = PricingQuantity / x_PricingBlockSize * x_CommitmentDiscountNormalizedRatio.
    2. CommitmentDiscountUnit
      1. Savings plans = x_PricingCurrency (e.g., “USD”, “CNY”).
      2. Reservations w/o ISF = PricingUnit (e.g., “Hours”, “GB”).
      3. Reservations w/ ISF = "Normalized {PricingUnit}".
    3. x_CommitmentDiscountNormalizedRatio = AdditionalInfo.RINormalizationRatio ?? null.
    4. x_CommitmentDiscountSpendEligibility = “Covered” / “Eligible” / “Not Eligible”
    5. x_CommitmentDiscountUsageEligibility = “Covered” / “Eligible” / “Not Eligible”
  4. Add the following other new columns:
    1. ServiceSubcategory with a new mapping.
    2. x_ServiceModel with a new mapping.
    3. x_SkuPlanName = PlanName (marketplace meter metadata).
    4. x_SkuSize = ArmSkuName (meter metadata).
  5. Update the following columns to fix known bugs:
    1. BillingPeriodEnd is showing Oct 2 (as of Sep 26).
    2. ContractedUnitPrice/ContractedCost = UnitPrice for on-demand prices based on MeterId and PartNumber (EA) or PSMT (MCA).
    3. ListUnitPrice/ListCost = MarketPrice for on-demand prices based on MeterId/PartNumber (EA) or PSMT (MCA).
    4. SkuId = ProductId (same value for EA and MCA) and replace -1 with null.
    5. SkuPriceId = “{PriceType}{Term}{ChargeCategory}{MeterId}{ProductId}{SkuId}{MeterType}{TierId}{OfferId}_???”.
    6. SubAccountName = Replace "Unasigned" with null.
    7. x_AccountId = Replace "-2" with null.
    8. x_AccountName = Replace "Unassigned" with null.
    9. x_AccountOwnerId = Replace "Unassigned" with null.
    10. x_InvoiceSectionId = Replace "-2" with null.
    11. x_InvoiceSectionName = Replace "Unassigned" with null.
    12. x_PricingUnitDescription = Replace "Unassigned" with null.
    13. PublisherName is null for reservation usage, reservation purchases, and savings plan unused charges.

For additional information about what’s included in the FOCUS 1.1 release, refer to the FOCUS changelog.

🙋‍♀️ Ask for the community

We could use your help:

  1. Please vote this issue up (👍) to prioritize it.
  2. Leave comments to help us solidify the vision.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions