Status
Current state: [Under Discussion]
...
Page properties | ||||
---|---|---|---|---|
|
...
...
|
...
Jira | ||||||
---|---|---|---|---|---|---|
|
Jira | ||||||
---|---|---|---|---|---|---|
|
|
Released: <Flink Version>
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
Add view attempt history menu in the subtask, when popup an attempts history modal when user clicking it.
When users click the vertex timeline, display all the subtask attempts timeline with subtaskId-host-attemptId.
REST API Design
- ArchivedExecutionVertex adds method to return prior executions.
- get prior execution attempt
...
AccessExecution execution = executionVertex.getCurrentExecutionAttempt();
int currentAttemptNum = execution.getAttemptNumber();
JobID jobID = request.getPathParameter(JobIDPathParameter.class);
JobVertexID jobVertexID = request.getPathParameter(JobVertexIdPathParameter.class);
List<SubtaskExecutionAttemptDetailsInfo> allAttempts = new ArrayList<>();
allAttempts.add(SubtaskExecutionAttemptDetailsInfo.create(execution, metricFetcher, jobID, jobVertexID));
if (currentAttemptNum > 0) {
for (int i = currentAttemptNum - 1; i >= 0; i--) {
AccessExecution currentExecution = executionVertex.getPriorExecutionAttempt(i);
if (currentExecution != null) {
allAttempts.add(SubtaskExecutionAttemptDetailsInfo.create(currentExecution, metricFetcher, jobID, jobVertexID));
}
}
}
- by ArchivedExecutionVertex.getPriorExecutionAttempts()
- add add SubtaskAllExecutionAttemptsDetailsHandler for failed attempt
- url /jobs/:jobid/vertices/:vertexid/subtasks/:subtaskIndex/attempts
- response:
{ "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:SubtaskAllExecutionAttemptsDetailsInfo", "properties" : { "attempts" : { "type" : "array", "items" : { "type" : "object", "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:SubtaskExecutionAttemptDetailsInfo", "properties" : { "subtask" : { "type" : "integer" }, "status" : { "type" : "string", "enum" : [ "CREATED", "SCHEDULED", "DEPLOYING", "RUNNING", "FINISHED", "CANCELING", "CANCELED", "FAILED", "RECONCILING" ] }, "attempt" : { "type" : "integer" }, "host" : { "type" : "string" }, "start-time" : { "type" : "integer" }, "end-time" : { "type" : "integer" }, "duration" : { "type" : "integer" }, "metrics" : { "type" : "object", "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:IOMetricsInfo", "properties" : { "read-bytes" : { "type" : "integer" }, "read-bytes-complete" : { "type" : "boolean" }, "write-bytes" : { "type" : "integer" }, "write-bytes-complete" : { "type" : "boolean" }, "read-records" : { "type" : "integer" }, "read-records-complete" : { "type" : "boolean" }, "write-records" : { "type" : "integer" }, "write-records-complete" : { "type" : "boolean" } } } } } } } |
- add Collection<SubtaskTimeInfo> in SubtasksTimesHandler result, which comes from ExecutionVertex’s prior executions.
- url: /jobs/:jobid/vertices/:vertexid/subtasktimes
- response
} } }, "taskmanager-id" : { { "type" : "object", "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:SubtasksTimesInfo", "properties" : { "id" : { "type" : "string" |
- In the 'subtasks' array we have objects of type SubtaskTimeInfo with only one added field 'attempt'.
- add query parameter show-history, default value is false. If show-history is true, information for all attempts including
previous ones will be returned - url: /jobs/:jobid/vertices/:vertexid/subtasktimes?show-history=true
- response:
{
}, "now" : { "type" : "integer" }, "subtasks" : { "type" : "array", "items" : { "type" : "object", "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:SubtasksTimesInfo:SubtaskTimeInfo", "properties" : { "subtask "id" : { "type" : "integerstring" }, "hostname" : { "type" : "string" }, "durationnow" : { "type" : "integer" }, "timestampssubtasks" : { "type" : "object ", "additionalProperties" : { "type" : "integer" } }, "attempt-num": { "type" : "integer" }, "attempts-time-info": { "type": "array", "items" : { "type" : "object", "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:SubtasksTimesInfo:SubtaskAttemptTimeInfoSubtaskTimeInfo", "properties" : { "subtask" : { "type" : "integer" }, "host" : { "type" : "string" }, "duration" : { "type" : "integer" }, "timestamps" : { "type" : "object", "additionalProperties" : { "type" : "integer" } }, "attempt-num": { } }, "attempt": { "type" : "integer" }, } } } } } } } } } |
Test Plan
Everything can be tested with unit tests.