@Override
    public NamespacedMetric namespace(final String... key) {
        final IRubyObject[] rubyfiedKeys = Stream.of(key)
            .map(this::getSymbol)
            .toArray(IRubyObject[]::new);

        return new NamespacedMetricImpl(
            this.threadContext,
            this.metrics.namespace(this.threadContext, RubyArray.newArray(this.threadContext.getRuntime(), rubyfiedKeys))
        );
    }
@Test
    public void testNamespace() {
        final NamespacedMetric metrics = this.getInstance().namespace("test");

        final NamespacedMetric namespaced = metrics.namespace("abcdef");
        assertThat(namespaced.namespaceName()).containsExactly("test", "abcdef");

        final NamespacedMetric namespaced2 = namespaced.namespace("12345", "qwerty");
        assertThat(namespaced2.namespaceName()).containsExactly("test", "abcdef", "12345", "qwerty");
    }