### 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/test/java/org/elasticsearch/xpack/downsample/DownsampleActionSingleNodeTests.java
final Integer totalFieldsLimit = randomBoolean() ? randomIntBetween(100, 10_000) : null;
        if (totalFieldsLimit != null) {
            settingsBuilder.put(MapperService.INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING.getKey(), totalFieldsLimit);
        }
        final Settings settings = settingsBuilder.build();
        logger.info("Updating index [{}] with settings [{}]", sourceIndex, settings);
        var updateSettingsReq = new UpdateSettingsRequest(settings, sourceIndex);
        assertAcked(client().admin().indices().updateSettings(updateSettingsReq).actionGet());
        DownsampleConfig config = new DownsampleConfig(randomInterval());
        SourceSupplier sourceSupplier = () -> {
            String ts = randomDateForInterval(config.getInterval());
            return XContentFactory.jsonBuilder()
                .startObject()
                .field(FIELD_TIMESTAMP, ts)
                .field(FIELD_DIMENSION_1, randomFrom(dimensionValues))
                .field(FIELD_NUMERIC_1, randomInt())
                .endObject();
        };
        bulkIndex(sourceSupplier);
        prepareSourceIndex(sourceIndex);
        rollup(sourceIndex, rollupIndex, config);
        GetIndexResponse indexSettingsResp = client().admin().indices().prepareGetIndex().addIndices(sourceIndex, rollupIndex).get();
        assertRollupIndexSettings(sourceIndex, rollupIndex, indexSettingsResp);
        for (String key : settings.keySet()) {
            assertEquals(settings.get(key), indexSettingsResp.getSetting(rollupIndex, key));
        }
    }
    public void testNullSourceIndexName() {
        DownsampleConfig config = new DownsampleConfig(randomInterval());
        ActionRequestValidationException exception = expectThrows(