class SysMetricsTableInfo {

    public static final RelationName NAME = new RelationName(SysSchemaInfo.NAME, "jobs_metrics");

    public static SystemTable<MetricsView> create(Supplier<DiscoveryNode> localNode) {<FILL_FUNCTION_BODY>}
}

        return SystemTable.<MetricsView>builder(NAME)
            .add("total_count", LONG, MetricsView::totalCount)
            .add("sum_of_durations", LONG, MetricsView::sumOfDurations)
            .add("failed_count", LONG, MetricsView::failedCount)
            .add("mean", DOUBLE, MetricsView::mean)
            .add("stdev", DOUBLE, MetricsView::stdDeviation)
            .add("max", LONG, MetricsView::maxValue)
            .add("min", LONG, MetricsView::minValue)
            .startObject("percentiles")
                .add("25", LONG, x -> x.getValueAtPercentile(25.0))
                .add("50", LONG, x -> x.getValueAtPercentile(50.0))
                .add("75", LONG, x -> x.getValueAtPercentile(75.0))
                .add("90", LONG, x -> x.getValueAtPercentile(90.0))
                .add("95", LONG, x -> x.getValueAtPercentile(95.0))
                .add("99", LONG, x -> x.getValueAtPercentile(99.0))
            .endObject()
            .startObject("node")
                .add("id", STRING, ignored -> localNode.get().getId())
                .add("name", STRING, ignored -> localNode.get().getName())
            .endObject()
            .startObject("classification")
                .add("type", STRING, x -> x.classification().type().name())
                .add("labels", STRING_ARRAY, x -> List.copyOf(x.classification().labels()))
            .endObject()
            .withRouting((state, routingProvider, sessionSettings) -> Routing.forTableOnAllNodes(NAME, state.nodes()))
            .build();
    
<no_super_class>