### Elasticsearch Version

8.7.0

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

all

### Problem Description

Downsampling of a time series index without any metric field fails with a validation error:

```
Index <index> does not contain any metric fields;
```

Metric fields are not required in a time series index, unlike dimension fields. For this reason failing downsampling is not consistent with the idea of allowing time series indices without metrics.

### Steps to Reproduce

Create a time series index with at least one dimension field, without any metric field and run a downsample operation (through ILM or through the API endpoint directly).

### Logs (if relevant)

_No response_
x-pack/plugin/rollup/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java
public void onResponse(AcknowledgedResponse acknowledgedResponse) {
                if (e == null && acknowledgedResponse.isAcknowledged()) {
                    listener.onResponse(acknowledgedResponse);
                } else {
                    listener.onFailure(new ElasticsearchException("Unable to rollup index [" + sourceIndex + "]", e));
                }
            }
            @Override
            public void onFailure(Exception deleteException) {
                listener.onFailure(new ElasticsearchException("Unable to delete rollup index [" + rollupIndex + "]", e));
            }
        });
    }
    /**
     * A specialized cluster state update task that always takes a listener handling an
     * AcknowledgedResponse, as all template actions have simple acknowledged yes/no responses.
     */
    private abstract static class RollupClusterStateUpdateTask implements ClusterStateTaskListener {
        final ActionListener<AcknowledgedResponse> listener;
        RollupClusterStateUpdateTask(ActionListener<AcknowledgedResponse> listener) {
            this.listener = listener;
        }
        public abstract ClusterState execute(ClusterState currentState) throws Exception;
        @Override
        public void onFailure(Exception e) {
            listener.onFailure(e);
        }
    }
}