Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagepy
titleSchema of response for /jobs/:jobid/rescales/details/:rescaleuuid
linenumberstrue
collapsetrue
{   
  "rescaleUuid": ${hexString},
  "resourceRequirementsUuid":"${UUID}",
  "rescaleAttemptId": 1,
  "vertices": {
    "jobVertexId": {
      "jobVertexName": "Map-1", // Perhaps need limited length here.
      "slotSharingGroupId": "",

      // Considering the following "requiredResourceProfile"points:
 { // The key in the// sub-json The usescurrent theUI namingdoes stylenot fordisplay reusing org.apache.flink.runtime.rest.messages.ResourceProfileInfothis information.
        "cpuCores": 200000.0,
        "taskHeapMemory": 209715,
        "taskOffHeapMemory": 209715,
        "managedMemory": 25,
        "networkMemory": 12,
        "extendedResources": {}
      },
      // - We aim to keep the response body as compact and concise as possible.
      // - The sub-JSON corresponding to {jobVertexId} already contains the slotSharingGroupId information.
      // - The top-level slots.{slotSharingGroupID} section already provides the relevant details.
      // Therefore, this part will be omitted. Accordingly, if the frontend needs to display this information, 
      // it can parse and retrieve it from the corresponding sub-JSON under slots.{slotSharingGroupID}.
      "requiredResourceProfile": { 
        "cpuCores": 200000.0,
        "taskHeapMemory": 209715,
        "taskOffHeapMemory": 209715,
        "managedMemory": 25,
        "networkMemory": 12,
        "extendedResources": {}
      },
      
      // Considering the following points:
      // - The current UI does not display this information.
      // - We aim to keep the response body as compact and concise as possible.
      // - The sub-JSON corresponding to {jobVertexId} already contains the slotSharingGroupId information.
      // - The top-level slots.{slotSharingGroupID} section already provides the relevant details.
      // Therefore, this part will be omitted. Accordingly, if the frontend needs to display this information, 
      // it can parse and retrieve it from the corresponding sub-JSON under slots.{slotSharingGroupID}. 
      "acquiredResourceProfile": {
        "cpuCores": 200000.0,
        "taskHeapMemory": 209715,
        "taskOffHeapMemory": 209715,
        "managedMemory": 25,
        "networkMemory": 12,
        "extendedResources": {}
      },
      "preRescaleParallelism": 14,
      "postRescaleParallelism": 19,
      "desiredParallelism": 128,
      "sufficientParallelism": 19
    },
    ...
  },
  "slots": {
    "xxx(hexString, slot sharing group id)": {
      "slotSharingGroupName": "xxx",
      "preRescaleSlots": 10,
      "postRescaleSlots": 10,
      "desiredSlots": 10,
      "minimalRequiredSlots": 10,
      "requestResourceProfile": {
        // The key in the sub-json uses the naming style for reusing org.apache.flink.runtime.rest.messages.ResourceProfileInfo
        "cpuCores": 200000.0,
        "taskHeapMemory": 209715,
        "taskOffHeapMemory": 209715,
        "managedMemory": 25,
        "networkMemory": 12,
        "extendedResources": {}
      },
      "acquiredResourceProfile": {
        // The key in the sub-json uses the naming style for reusing org.apache.flink.runtime.rest.messages.ResourceProfileInfo
        "cpuCores": 200000.0,
        "taskHeapMemory": 209715,
        "taskOffHeapMemory": 209715,
        "managedMemory": 25,
        "networkMemory": 12,
        "extendedResources": {}
      }
    },
    ...
  }
  "schedulerStates":
    [
      {
        "state":"xxx", // xxx: one state of all states of adaptiveScheduler
        "enterTimestampInMillis": 1111111,//milliseconds.
        "leaveTimestampInMillis": 2222222,//milliseconds.
        "durationInMillis": 11111
        "stringifiedException": "",
      },
      ...
    ],
  "terminalState": "COMPLETED",
  "triggerCause": "xxxxx",
  "terminatedReason":"xxx",
  // milliseconds.
  "startTimestampInMillis": 1733279950222,
  "endTimestampInMillis":1733279950222,
  // "durationInMillis": 11111, The attribute is deprecated and removed. When showing the field in the UI, we can calculate it by startTimestampInMillis and endTimestampInMillis.
  // If the endTimestampInMillis is null, we could use the current time milliseconds timestamp to minus the startTimestampInMillis for getting durationInMillis. 
}

...