Skip to content

Commit a89e2bd

Browse files
committed
Override MetricCollectionSchema
1 parent 662f7f4 commit a89e2bd

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

flink-docs/src/main/java/org/apache/flink/docs/rest/OpenApiSpecGenerator.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.apache.flink.runtime.rest.messages.MessageQueryParameter;
3737
import org.apache.flink.runtime.rest.messages.TriggerId;
3838
import org.apache.flink.runtime.rest.messages.job.JobSubmitHeaders;
39+
import org.apache.flink.runtime.rest.messages.job.metrics.MetricCollectionResponseBody;
3940
import org.apache.flink.runtime.rest.messages.json.SerializedThrowableSerializer;
4041
import org.apache.flink.runtime.rest.util.DocumentingRestEndpoint;
4142
import org.apache.flink.runtime.rest.versioning.RestAPIVersion;
@@ -152,6 +153,7 @@ static OpenAPI createDocumentation(
152153

153154
overrideIdSchemas(openApi);
154155
overrideSerializeThrowableSchema(openApi);
156+
overrideMetricCollectionSchema(openApi);
155157

156158
sortProperties(openApi);
157159
sortSchemas(openApi);
@@ -284,6 +286,19 @@ private static void overrideIdSchemas(final OpenAPI openApi) {
284286
.addSchemas(SlotSharingGroupId.class.getSimpleName(), idSchema);
285287
}
286288

289+
/**
290+
* Overrides the schema for {@link MetricCollectionResponseBody} which uses a custom Jackson
291+
* serializer that writes the metrics collection as a raw JSON array, not as an object with a
292+
* "metrics" field.
293+
*/
294+
private static void overrideMetricCollectionSchema(final OpenAPI openApi) {
295+
final ArraySchema metricArraySchema =
296+
new ArraySchema().items(new Schema().$ref("#/components/schemas/Metric"));
297+
298+
openApi.getComponents()
299+
.addSchemas(MetricCollectionResponseBody.class.getSimpleName(), metricArraySchema);
300+
}
301+
287302
private static void overrideSerializeThrowableSchema(final OpenAPI openAPI) {
288303
final Schema serializedThrowableSchema =
289304
new Schema<>()

0 commit comments

Comments
 (0)