@Override
    public Class<? extends AvgLabeledStorageBuilder> builder() {
        return AvgLabeledStorageBuilder.class;
    }
@Test
    public void testBuilder() throws IllegalAccessException, InstantiationException {
        function.accept(
            MeterEntity.newService("request_count", Layer.GENERAL), build(asList("200", "404"), asList(10L, 2L)));
        function.calculate();
        StorageBuilder<AvgLabeledFunction> storageBuilder = function.builder().newInstance();

        final HashMapConverter.ToStorage toStorage = new HashMapConverter.ToStorage();
        storageBuilder.entity2Storage(function, toStorage);
        final Map<String, Object> map = toStorage.obtain();
        map.put(SUMMATION, ((DataTable) map.get(SUMMATION)).toStorageData());
        map.put(COUNT, ((DataTable) map.get(COUNT)).toStorageData());
        map.put(VALUE, ((DataTable) map.get(VALUE)).toStorageData());

        AvgLabeledFunction function2 = storageBuilder.storage2Entity(new HashMapConverter.ToEntity(map));
        assertThat(function2.getValue()).isEqualTo(function.getValue());
    }