Maybe all the specialized codecs: DoubleDelta, Gorilla, etc. are obsolete and people should simply use ZSTD instead.
static NamesAndTypesList getNamesAndTypes();
    static NamesAndAliases getNamesAndAliases() { return {}; }
    void appendToBlock(MutableColumns & columns) const;
    
    
    
    static const char * getCustomColumnList()
    {
        return "event_date Date CODEC(Delta(2), ZSTD(1)), "
               "event_time DateTime CODEC(Delta(4), ZSTD(1)), "
               "metric LowCardinality(String) CODEC(ZSTD(1)), "
               "value Float64 CODEC(Gorilla, ZSTD(3))";
    }
};
class AsynchronousMetricLog : public SystemLog<AsynchronousMetricLogElement>
{
public:
    using SystemLog<AsynchronousMetricLogElement>::SystemLog;
    void addValues(const AsynchronousMetricValues &);
    
    static const char * getDefaultOrderBy() { return "(metric, event_date, event_time)"; }
};
}