private JsonObject(JsonGenerator gen, String name) throws IOException { this.gen = gen; gen.writeObjectFieldStart(name); }
json.writeStartObject(); json.writeObjectFieldStart("Apache Flink"); json.writeStringField("version", EnvironmentInformation.getVersion()); json.writeStringField("commit ID", EnvironmentInformation.getRevisionInformation().commitId); json.writeNumberField("runtime_ms", result.getNetRuntime()); json.writeObjectFieldStart("parameters"); for (Map.Entry<String, String> entry : env.getConfig().getGlobalJobParameters().toMap().entrySet()) { json.writeStringField(entry.getKey(), entry.getValue()); json.writeObjectFieldStart("accumulators"); for (Map.Entry<String, Object> entry : result.getAllAccumulatorResults().entrySet()) { json.writeStringField(entry.getKey(), entry.getValue().toString());
private static void writeSummary( JsonGenerator gen, CompletedCheckpointStatsSummary summary) throws IOException { gen.writeObjectFieldStart(CheckpointingStatistics.FIELD_NAME_SUMMARY); gen.writeObjectFieldStart(CheckpointingStatistics.Summary.FIELD_NAME_STATE_SIZE); writeMinMaxAvg(gen, summary.getStateSizeStats()); gen.writeEndObject(); gen.writeObjectFieldStart(CheckpointingStatistics.Summary.FIELD_NAME_DURATION); writeMinMaxAvg(gen, summary.getEndToEndDurationStats()); gen.writeEndObject(); gen.writeObjectFieldStart(CheckpointingStatistics.Summary.FIELD_NAME_ALIGNMENT_BUFFERED); writeMinMaxAvg(gen, summary.getAlignmentBufferedStats()); gen.writeEndObject(); gen.writeEndObject(); }
@Nullable RestoredCheckpointStats restored) throws IOException { gen.writeObjectFieldStart(CheckpointingStatistics.FIELD_NAME_LATEST_CHECKPOINTS); gen.writeObjectFieldStart(CheckpointingStatistics.LatestCheckpoints.FIELD_NAME_COMPLETED); writeCheckpoint(gen, completed); gen.writeObjectFieldStart(CheckpointingStatistics.LatestCheckpoints.FIELD_NAME_SAVEPOINT); writeCheckpoint(gen, savepoint); gen.writeObjectFieldStart(CheckpointingStatistics.LatestCheckpoints.FIELD_NAME_FAILED); writeCheckpoint(gen, failed); gen.writeObjectFieldStart(CheckpointingStatistics.LatestCheckpoints.FIELD_NAME_RESTORED); gen.writeNumberField(CheckpointingStatistics.RestoredCheckpointStatistics.FIELD_NAME_ID, restored.getCheckpointId()); gen.writeNumberField(CheckpointingStatistics.RestoredCheckpointStatistics.FIELD_NAME_RESTORE_TIMESTAMP, restored.getRestoreTimestamp());
gen.writeObjectFieldStart(JobConfigInfo.FIELD_NAME_EXECUTION_CONFIG); gen.writeObjectFieldStart(JobConfigInfo.ExecutionConfigInfo.FIELD_NAME_GLOBAL_JOB_PARAMETERS);
private static void writeCounts(JsonGenerator gen, CheckpointStatsCounts counts) throws IOException { gen.writeObjectFieldStart(CheckpointingStatistics.FIELD_NAME_COUNTS); gen.writeNumberField(CheckpointingStatistics.Counts.FIELD_NAME_RESTORED_CHECKPOINTS, counts.getNumberOfRestoredCheckpoints()); gen.writeNumberField(CheckpointingStatistics.Counts.FIELD_NAME_TOTAL_CHECKPOINTS, counts.getTotalNumberOfCheckpoints()); gen.writeNumberField(CheckpointingStatistics.Counts.FIELD_NAME_IN_PROGRESS_CHECKPOINTS, counts.getNumberOfInProgressCheckpoints()); gen.writeNumberField(CheckpointingStatistics.Counts.FIELD_NAME_COMPLETED_CHECKPOINTS, counts.getNumberOfCompletedCheckpoints()); gen.writeNumberField(CheckpointingStatistics.Counts.FIELD_NAME_FAILED_CHECKPOINTS, counts.getNumberOfFailedCheckpoints()); gen.writeEndObject(); }
gen.writeObjectFieldStart("status-counts"); for (ExecutionState state : ExecutionState.values()) { gen.writeNumberField(state.name(), tasksPerState[state.ordinal()]);
gen.writeObjectFieldStart("summary"); gen.writeObjectFieldStart("state_size"); CheckpointStatsHandler.writeMinMaxAvg(gen, taskStats.getSummaryStats().getStateSizeStats()); gen.writeEndObject(); gen.writeObjectFieldStart("end_to_end_duration"); MinMaxAvgStats ackTimestampStats = taskStats.getSummaryStats().getAckTimestampStats(); gen.writeNumberField("min", Math.max(0, ackTimestampStats.getMinimum() - checkpoint.getTriggerTimestamp())); gen.writeObjectFieldStart("checkpoint_duration"); gen.writeObjectFieldStart("sync"); CheckpointStatsHandler.writeMinMaxAvg(gen, taskStats.getSummaryStats().getSyncCheckpointDurationStats()); gen.writeEndObject(); gen.writeObjectFieldStart("async"); CheckpointStatsHandler.writeMinMaxAvg(gen, taskStats.getSummaryStats().getAsyncCheckpointDurationStats()); gen.writeEndObject(); gen.writeEndObject(); gen.writeObjectFieldStart("alignment"); gen.writeObjectFieldStart("buffered"); CheckpointStatsHandler.writeMinMaxAvg(gen, taskStats.getSummaryStats().getAlignmentBufferedStats()); gen.writeEndObject(); gen.writeObjectFieldStart("duration"); CheckpointStatsHandler.writeMinMaxAvg(gen, taskStats.getSummaryStats().getAlignmentDurationStats()); gen.writeEndObject(); gen.writeObjectFieldStart("checkpoint"); gen.writeNumberField("sync", subtask.getSyncCheckpointDuration()); gen.writeNumberField("async", subtask.getAsyncCheckpointDuration());
gen.writeObjectFieldStart("metrics");
gen.writeObjectFieldStart("metrics");
gen.writeNumberField("freeSlots", instance.getNumberOfAvailableSlots()); gen.writeObjectFieldStart(TaskManagerInfo.FIELD_NAME_HARDWARE); gen.writeNumberField("cpuCores", instance.getResources().getNumberOfCPUCores()); gen.writeNumberField("physicalMemory", instance.getResources().getSizeOfPhysicalMemory()); gen.writeObjectFieldStart("metrics"); long heapUsed = Long.valueOf(metrics.getMetric("Status.JVM.Memory.Heap.Used", "0")); long heapCommitted = Long.valueOf(metrics.getMetric("Status.JVM.Memory.Heap.Committed", "0"));
gen.writeObjectFieldStart(CheckpointConfigInfo.FIELD_NAME_EXTERNALIZED_CHECKPOINT_CONFIG);
gen.writeObjectFieldStart("timestamps"); for (ExecutionState state : ExecutionState.values()) { gen.writeNumberField(state.name(), timestamps[state.ordinal()]);
gen.writeObjectFieldStart("metrics");
@Override public void serialize( JobDetails jobDetails, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField(FIELD_NAME_JOB_ID, jobDetails.getJobId().toString()); jsonGenerator.writeStringField(FIELD_NAME_JOB_NAME, jobDetails.getJobName()); jsonGenerator.writeStringField(FIELD_NAME_STATUS, jobDetails.getStatus().name()); jsonGenerator.writeNumberField(FIELD_NAME_START_TIME, jobDetails.getStartTime()); jsonGenerator.writeNumberField(FIELD_NAME_END_TIME, jobDetails.getEndTime()); jsonGenerator.writeNumberField(FIELD_NAME_DURATION, jobDetails.getDuration()); jsonGenerator.writeNumberField(FIELD_NAME_LAST_MODIFICATION, jobDetails.getLastUpdateTime()); jsonGenerator.writeObjectFieldStart("tasks"); jsonGenerator.writeNumberField(FIELD_NAME_TOTAL_NUMBER_TASKS, jobDetails.getNumTasks()); final int[] perState = jobDetails.getTasksPerState(); for (ExecutionState executionState : ExecutionState.values()) { jsonGenerator.writeNumberField(executionState.name().toLowerCase(), perState[executionState.ordinal()]); } jsonGenerator.writeEndObject(); jsonGenerator.writeEndObject(); } }
@Override public void serialize( JobDetails jobDetails, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField(FIELD_NAME_JOB_ID, jobDetails.getJobId().toString()); jsonGenerator.writeStringField(FIELD_NAME_JOB_NAME, jobDetails.getJobName()); jsonGenerator.writeStringField(FIELD_NAME_STATUS, jobDetails.getStatus().name()); jsonGenerator.writeNumberField(FIELD_NAME_START_TIME, jobDetails.getStartTime()); jsonGenerator.writeNumberField(FIELD_NAME_END_TIME, jobDetails.getEndTime()); jsonGenerator.writeNumberField(FIELD_NAME_DURATION, jobDetails.getDuration()); jsonGenerator.writeNumberField(FIELD_NAME_LAST_MODIFICATION, jobDetails.getLastUpdateTime()); jsonGenerator.writeObjectFieldStart("tasks"); jsonGenerator.writeNumberField(FIELD_NAME_TOTAL_NUMBER_TASKS, jobDetails.getNumTasks()); final int[] perState = jobDetails.getTasksPerState(); for (ExecutionState executionState : ExecutionState.values()) { jsonGenerator.writeNumberField(executionState.name().toLowerCase(), perState[executionState.ordinal()]); } jsonGenerator.writeEndObject(); jsonGenerator.writeEndObject(); } }
@Override public void serialize( JobDetails jobDetails, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField(FIELD_NAME_JOB_ID, jobDetails.getJobId().toString()); jsonGenerator.writeStringField(FIELD_NAME_JOB_NAME, jobDetails.getJobName()); jsonGenerator.writeStringField(FIELD_NAME_STATUS, jobDetails.getStatus().name()); jsonGenerator.writeNumberField(FIELD_NAME_START_TIME, jobDetails.getStartTime()); jsonGenerator.writeNumberField(FIELD_NAME_END_TIME, jobDetails.getEndTime()); jsonGenerator.writeNumberField(FIELD_NAME_DURATION, jobDetails.getDuration()); jsonGenerator.writeNumberField(FIELD_NAME_LAST_MODIFICATION, jobDetails.getLastUpdateTime()); jsonGenerator.writeObjectFieldStart("tasks"); jsonGenerator.writeNumberField(FIELD_NAME_TOTAL_NUMBER_TASKS, jobDetails.getNumTasks()); final int[] perState = jobDetails.getTasksPerState(); for (ExecutionState executionState : ExecutionState.values()) { jsonGenerator.writeNumberField(executionState.name().toLowerCase(), perState[executionState.ordinal()]); } jsonGenerator.writeEndObject(); jsonGenerator.writeEndObject(); } }
gen.writeObjectFieldStart("timestamps"); for (JobStatus status : JobStatus.values()) { gen.writeNumberField(status.name(), graph.getStatusTimestamp(status)); gen.writeNumberField("duration", duration); gen.writeObjectFieldStart("tasks"); for (ExecutionState state : ExecutionState.values()) { gen.writeNumberField(state.name(), tasksPerState[state.ordinal()]); gen.writeObjectFieldStart("status-counts"); for (ExecutionState state : ExecutionState.values()) { gen.writeNumberField(state.name(), jobVerticesPerState[state.ordinal()]);
gen.writeObjectFieldStart("tasks"); for (TaskStateStats taskStats : checkpoint.getAllTaskStateStats()) { gen.writeObjectFieldStart(taskStats.getJobVertexId().toString());