private static String createConfigJson(DashboardConfiguration dashboardConfiguration) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_REFRESH_INTERVAL, dashboardConfiguration.getRefreshInterval()); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_TIMEZONE_OFFSET, dashboardConfiguration.getTimeZoneOffset()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_TIMEZONE_NAME, dashboardConfiguration.getTimeZoneName()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_VERSION, dashboardConfiguration.getFlinkVersion()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_REVISION, dashboardConfiguration.getFlinkRevision()); gen.writeEndObject(); gen.close(); return writer.toString(); }
gen.close(); return writer.toString();
private static String mapMetricListToJson(Collection<String> metrics) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartArray(); for (String m : metrics) { gen.writeStartObject(); gen.writeStringField("id", m); gen.writeEndObject(); } gen.writeEndArray(); gen.close(); return writer.toString(); }
private String createTaskManagersJson(Collection<Instance> instances, boolean includeMetrics) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeArrayFieldStart("taskmanagers"); for (Instance instance : instances) { gen.writeRawValue(createTaskManagerJson(instance, includeMetrics)); } gen.writeEndArray(); gen.writeEndObject(); gen.close(); return writer.toString(); }
private String getAvailableMetricsList(Map<String, String> pathParams) throws IOException { Map<String, String> metrics = getMapFor(pathParams, fetcher.getMetricStore()); if (metrics == null) { return ""; } StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartArray(); for (String m : metrics.keySet()) { gen.writeStartObject(); gen.writeStringField("id", m); gen.writeEndObject(); } gen.writeEndArray(); gen.close(); return writer.toString(); } }
private String getMetricsValues(Map<String, String> pathParams, String requestedMetricsList) throws IOException { if (requestedMetricsList.isEmpty()) { /* * The WebInterface doesn't check whether the list of available metrics was empty. This can lead to a * request for which the "get" parameter is an empty string. */ return ""; } Map<String, String> metrics = getMapFor(pathParams, fetcher.getMetricStore()); if (metrics == null) { return ""; } String[] requestedMetrics = requestedMetricsList.split(","); StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartArray(); for (String requestedMetric : requestedMetrics) { Object metricValue = metrics.get(requestedMetric); if (metricValue != null) { gen.writeStartObject(); gen.writeStringField("id", requestedMetric); gen.writeStringField("value", metricValue.toString()); gen.writeEndObject(); } } gen.writeEndArray(); gen.close(); return writer.toString(); }
private FullHttpResponse createInProgressResponse(long requestId) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeStringField("status", "in-progress"); gen.writeNumberField("request-id", requestId); gen.writeEndObject(); gen.close(); String json = writer.toString(); byte[] bytes = json.getBytes(ENCODING); DefaultFullHttpResponse response = new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.ACCEPTED, Unpooled.wrappedBuffer(bytes)); response.headers().set(HttpHeaders.Names.CONTENT_TYPE, "application/json; charset=" + ENCODING.name()); response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, response.content().readableBytes()); return response; }
private FullHttpResponse createSuccessResponse(long requestId, String savepointPath) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeStringField("status", "success"); gen.writeNumberField("request-id", requestId); gen.writeStringField("savepoint-path", savepointPath); gen.writeEndObject(); gen.close(); String json = writer.toString(); byte[] bytes = json.getBytes(ENCODING); DefaultFullHttpResponse response = new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.CREATED, Unpooled.wrappedBuffer(bytes)); response.headers().set(HttpHeaders.Names.CONTENT_TYPE, "application/json; charset=" + ENCODING.name()); response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, response.content().readableBytes()); return response; }
private FullHttpResponse createFailureResponse(HttpResponseStatus code, long requestId, String errMsg) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeStringField("status", "failed"); gen.writeNumberField("request-id", requestId); gen.writeStringField("cause", errMsg); gen.writeEndObject(); gen.close(); String json = writer.toString(); byte[] bytes = json.getBytes(ENCODING); DefaultFullHttpResponse response = new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, code, Unpooled.wrappedBuffer(bytes)); response.headers().set(HttpHeaders.Names.CONTENT_TYPE, "application/json; charset=" + ENCODING.name()); response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, response.content().readableBytes()); return response; } }
gen.writeEndObject(); gen.close();
private static String createConfigJson(DashboardConfiguration dashboardConfiguration) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_REFRESH_INTERVAL, dashboardConfiguration.getRefreshInterval()); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_TIMEZONE_OFFSET, dashboardConfiguration.getTimeZoneOffset()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_TIMEZONE_NAME, dashboardConfiguration.getTimeZoneName()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_VERSION, dashboardConfiguration.getFlinkVersion()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_REVISION, dashboardConfiguration.getFlinkRevision()); gen.writeEndObject(); gen.close(); return writer.toString(); }
private static String createConfigJson(DashboardConfiguration dashboardConfiguration) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_REFRESH_INTERVAL, dashboardConfiguration.getRefreshInterval()); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_TIMEZONE_OFFSET, dashboardConfiguration.getTimeZoneOffset()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_TIMEZONE_NAME, dashboardConfiguration.getTimeZoneName()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_VERSION, dashboardConfiguration.getFlinkVersion()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_REVISION, dashboardConfiguration.getFlinkRevision()); gen.writeEndObject(); gen.close(); return writer.toString(); }
public static String createConfigJson(DashboardConfiguration dashboardConfiguration) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartObject(); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_REFRESH_INTERVAL, dashboardConfiguration.getRefreshInterval()); gen.writeNumberField(DashboardConfiguration.FIELD_NAME_TIMEZONE_OFFSET, dashboardConfiguration.getTimeZoneOffset()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_TIMEZONE_NAME, dashboardConfiguration.getTimeZoneName()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_VERSION, dashboardConfiguration.getFlinkVersion()); gen.writeStringField(DashboardConfiguration.FIELD_NAME_FLINK_REVISION, dashboardConfiguration.getFlinkRevision()); gen.writeEndObject(); gen.close(); return writer.toString(); } }
@Override public CompletableFuture<String> handleJsonRequest(Map<String, String> pathParams, Map<String, String> queryParams, JobManagerGateway jobManagerGateway) { if (jobManagerGateway != null) { CompletableFuture<MultipleJobsDetails> jobDetailsFuture = jobManagerGateway.requestMultipleJobDetails(timeout); return jobDetailsFuture.thenApplyAsync( (MultipleJobsDetails result) -> { StringWriter writer = new StringWriter(); try { JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); final JobDetails.JobDetailsSerializer jobDetailsSerializer = new JobDetails.JobDetailsSerializer(); gen.writeStartObject(); gen.writeArrayFieldStart(MultipleJobsDetails.FIELD_NAME_JOBS); for (JobDetails detail : result.getJobs()) { jobDetailsSerializer.serialize(detail, gen, null); } gen.writeEndArray(); gen.writeEndObject(); gen.close(); return writer.toString(); } catch (IOException e) { throw new CompletionException(new FlinkException("Could not write current jobs overview json.", e)); } }, executor); } else { return FutureUtils.completedExceptionally(new Exception("No connection to the leading JobManager.")); } }
private static String createConfigJson(Configuration config) { try { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); gen.writeStartArray(); for (String key : config.keySet()) { gen.writeStartObject(); gen.writeStringField(ClusterConfigurationInfoEntry.FIELD_NAME_CONFIG_KEY, key); String value = config.getString(key, null); // Mask key values which contain sensitive information if (value != null && GlobalConfiguration.isSensitive(key)) { value = GlobalConfiguration.HIDDEN_CONTENT; } gen.writeStringField(ClusterConfigurationInfoEntry.FIELD_NAME_CONFIG_VALUE, value); gen.writeEndObject(); } gen.writeEndArray(); gen.close(); return writer.toString(); } catch (IOException e) { throw new CompletionException(new FlinkException("Could not write configuration.", e)); } } }
gen.close(); return writer.toString();
public static String createJobAccumulatorsJson(AccessExecutionGraph graph) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); StringifiedAccumulatorResult[] allAccumulators = graph.getAccumulatorResultsStringified(); gen.writeStartObject(); gen.writeArrayFieldStart("job-accumulators"); // empty for now gen.writeEndArray(); gen.writeArrayFieldStart("user-task-accumulators"); for (StringifiedAccumulatorResult acc : allAccumulators) { gen.writeStartObject(); gen.writeStringField("name", acc.getName()); gen.writeStringField("type", acc.getType()); gen.writeStringField("value", acc.getValue()); gen.writeEndObject(); } gen.writeEndArray(); gen.writeEndObject(); gen.close(); return writer.toString(); } }
public static String createVertexAccumulatorsJson(AccessExecutionJobVertex jobVertex) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); StringifiedAccumulatorResult[] accs = jobVertex.getAggregatedUserAccumulatorsStringified(); gen.writeStartObject(); gen.writeStringField("id", jobVertex.getJobVertexId().toString()); gen.writeArrayFieldStart("user-accumulators"); for (StringifiedAccumulatorResult acc : accs) { gen.writeStartObject(); gen.writeStringField("name", acc.getName()); gen.writeStringField("type", acc.getType()); gen.writeStringField("value", acc.getValue()); gen.writeEndObject(); } gen.writeEndArray(); gen.writeEndObject(); gen.close(); return writer.toString(); } }
private static String createCheckpointStatsJson(AccessExecutionGraph graph) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); CheckpointStatsSnapshot snapshot = graph.getCheckpointStatsSnapshot(); if (snapshot == null) { return "{}"; } gen.writeStartObject(); // Counts writeCounts(gen, snapshot.getCounts()); // Summary writeSummary(gen, snapshot.getSummaryStats()); CheckpointStatsHistory history = snapshot.getHistory(); // Latest writeLatestCheckpoints( gen, history.getLatestCompletedCheckpoint(), history.getLatestSavepoint(), history.getLatestFailedCheckpoint(), snapshot.getLatestRestoredCheckpoint()); // History writeHistory(gen, snapshot.getHistory()); gen.writeEndObject(); gen.close(); return writer.toString(); }
public static String createAttemptAccumulatorsJson(AccessExecution execAttempt) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator gen = JsonFactory.JACKSON_FACTORY.createGenerator(writer); final StringifiedAccumulatorResult[] accs = execAttempt.getUserAccumulatorsStringified(); gen.writeStartObject(); gen.writeNumberField("subtask", execAttempt.getParallelSubtaskIndex()); gen.writeNumberField("attempt", execAttempt.getAttemptNumber()); gen.writeStringField("id", execAttempt.getAttemptId().toString()); gen.writeArrayFieldStart("user-accumulators"); for (StringifiedAccumulatorResult acc : accs) { gen.writeStartObject(); gen.writeStringField("name", acc.getName()); gen.writeStringField("type", acc.getType()); gen.writeStringField("value", acc.getValue()); gen.writeEndObject(); } gen.writeEndArray(); gen.writeEndObject(); gen.close(); return writer.toString(); } }