private List<String> buildLabelNames(Scope scope, ValueColumnMetadata.ValueColumn metaData) {
        List<String> labelNames = new ArrayList<>();
        labelNames.add(LabelName.LAYER.getLabel());
        labelNames.add(LabelName.SERVICE.getLabel());
        labelNames.add(LabelName.TOP_N.getLabel());
        labelNames.add(LabelName.ORDER.getLabel());
        if (metaData.isMultiIntValues()) {
            labelNames.add(LabelName.LABELS.getLabel());
            labelNames.add(LabelName.RELABELS.getLabel());
        }
        switch (scope) {
            case ServiceInstance:
                labelNames.add(LabelName.SERVICE_INSTANCE.getLabel());
                labelNames.add(LabelName.PARENT_SERVICE.getLabel());
                break;
            case Endpoint:
                labelNames.add(LabelName.ENDPOINT.getLabel());
                labelNames.add(LabelName.PARENT_SERVICE.getLabel());
                break;
        }
        return labelNames;
    }
OAP adopt time step by start/end,
reserve step/timeout param to keep consistent with API protocol.
oap-server/server-query-plugin/promql-plugin/src/main/java/org/apache/skywalking/oap/query/promql/handler/PromQLApiHandler.java