THE LINUX FOUNDATION PROJECTS
Docs navigation
On this page

    3.1.2 Allocated Method Details

    Dataset: Cost and Usage
    Column Type: Dimension / Metric
    Feature Level: Recommended
    Data Type: JSON
    Since: 1.3

    Allocated Method Details provides information about how resources are allocated when usage records are split to support cost allocation requirements.

    Allocated Method Details consists of a valid JSON object which contains an array consisting of key-value objects describing the one or more factors that determined the split cost allocation. Each object consists of FOCUS-defined property keys but can be extended to provide additional details about the allocation.

    3.1.2.1 Requirements

    3.1.2.1.1 Column Requirements

    AllocatedMethodDetails MUST adhere to the following requirements:

    • AllocatedMethodDetails MUST be of type JSON Object (serialized as a String where necessary).
    • AllocatedMethodDetails MUST conform to StringHandling requirements.
    • AllocatedMethodDetails MUST conform to JsonObjectFormat requirements.
    • AllocatedMethodDetails MUST adhere to the following nullability requirements:
      • AllocatedMethodDetails MUST be null when a charge is not related to a data generator-calculated split cost allocation.
      • AllocatedMethodDetails SHOULD NOT be null when a charge is related to a data generator-calculated split cost allocation.
    • AllocatedMethodDetails MUST conform to AllocatedMethodDetailsObject requirements when AllocatedMethodDetails is not null.

    3.1.2.2 Allocated Method Details Object

    Allocated Method Details consists of a valid JSON object with a top level key of Elements containing an Array of entry objects. Each entry object consists of FOCUS-defined property keys but can be extended to provide additional details about the allocation.

    The following section details the normative requirements for the AllocatedMethodDetailsObject and its nested properties. For a logical overview of the expected content, see the Schema Structure and Object Example sections.

    3.1.2.2.1 Object Requirements

    The AllocatedMethodDetailsObject MUST adhere to the following requirements:

    • AllocatedMethodDetailsObject MUST conform to the AllocatedMethodDetailsObjectSchema JSON Schema.
    • AllocatedMethodDetailsObject.Elements[*].AllocatedRatio MUST represent the allocated charge's percentage of the origin charge.
    • The sum of AllocatedMethodDetailsObject.Elements[*].AllocatedRatio across all allocated charges related to a single origin charge MUST be equal to 1 (100%).
    • AllocatedMethodDetailsObject.Elements[*].UsageUnit SHOULD conform to UnitFormat requirements.
    • AllocatedMethodDetailsObject.Elements[*].UsageUnit MUST represent the unit or component of data generator's documented AllocationMethod which was used to determine the AllocatedMethodDetailsObject.Elements[*].AllocatedRatio value.
    • AllocatedMethodDetailsObject.Elements[*].UsageQuantity SHOULD capture the quantity or volume of the AllocatedMethodDetailsObject.Elements[*].UsageUnit measured by the data generator that was used to determine the AllocatedMethodDetailsObject.Elements[*].AllocatedRatio value.

    3.1.2.2.2 Object Schema Structure

    AllocatedMethodDetails contains a structured JSON object defining the allocation properties used to calculate a split cost allocation.

    Top-Level Properties
    Property Type Required Description
    Elements Array True The parent array containing one or more objects which communicate information about how an allocated record was calculated.
    Elements Object

    The Elements array contains one or more objects, each of which contains the following entries:

    Key Type Required Description
    AllocatedRatio Numeric True Communicates the percentage of the Origin Charge that this Allocated Charge derived from the corresponding Allocated Method Id and Usage Unit property.
    UsageUnit String Conditional Communicates the aspect of the documented Allocation Method Id being used to calculate the Allocated Ratio property and what is being measured by Usage Quantity property.

    Condition: must be present if Usage Quantity is provided.
    UsageQuantity Numeric False Communicates the volume that was consumed or used, denominated in the Usage Unit property value.

    3.1.2.2.3 Object Implementation Guidance

    Custom Properties

    To facilitate querying data across allocations and across data generators, a data generator may include one or more custom properties. These may be placed at the top level of the object (alongside Elements) or nested within the individual Elements objects. Custom keys must be prefixed with "x_" followed by PascalCase format (e.g., x_MyCustomKey) to make them easy to identify as well as prevent collisions with FOCUS-defined keys.

    3.1.2.2.4 Object Example

    Here is a basic example of the object format.

    {
      "Elements" : [ {
        "AllocatedRatio" : 0.05,
        "UsageUnit" : "CPU",
        "UsageQuantity" : 0.5
      }, {
        "AllocatedRatio" : 0.1,
        "UsageUnit" : "Memory",
        "UsageQuantity" : 4
      } ]
    }
    

    3.1.2.2.5 Object ID

    AllocatedMethodDetailsObject

    3.1.2.2.6 Object Display Name

    Allocated Method Details Object

    3.1.2.5 Description

    A set of properties describing how resources are allocated in data generator-defined split cost allocation.

    Constraints

    Property Value
    Column Type Dimension / Metric
    Feature Level Recommended
    Allows Nulls Yes
    Data Type JSON
    Value Format JSON Object Format