@Override
    public String getMetricIdentifier(String metricName) {
        return getMetricIdentifier(metricName, CharacterFilter.NO_OP_FILTER);
    }
@Test
    void testScopeGenerationWithoutReporters() throws Exception {
        Configuration config = new Configuration();
        config.set(MetricOptions.SCOPE_NAMING_TM, "A.B.C.D");
        MetricRegistryImpl testRegistry =
                new MetricRegistryImpl(MetricRegistryTestUtils.fromConfiguration(config));

        try {
            TaskManagerMetricGroup group =
                    TaskManagerMetricGroup.createTaskManagerMetricGroup(
                            testRegistry, "host", new ResourceID("id"));
            assertThat(testRegistry.getReporters())
                    .withFailMessage("MetricReporters list should be empty")
                    .isEmpty();

            // default delimiter should be used
            assertThat(group.getMetricIdentifier("1", FILTER_C)).isEqualTo("A.B.X.D.1");
            // no caching should occur
            assertThat(group.getMetricIdentifier("1", FILTER_B)).isEqualTo("A.X.C.D.1");
            // invalid reporter indices do not throw errors
            assertThat(group.getMetricIdentifier("1", FILTER_B, -1, '.')).isEqualTo("A.X.C.D.1");
            assertThat(group.getMetricIdentifier("1", FILTER_B, 2, '.')).isEqualTo("A.X.C.D.1");
        } finally {
            testRegistry.closeAsync().get();
        }
    }