Maybe all the specialized codecs: DoubleDelta, Gorilla, etc. are obsolete and people should simply use ZSTD instead.
#pragma once
#include <Interpreters/SystemLog.h>
#include <Common/ProfileEvents.h>
#include <Common/CurrentMetrics.h>
#include <Core/NamesAndTypes.h>
#include <Core/NamesAndAliases.h>
#include <vector>
#include <atomic>
#include <ctime>
namespace DB
{
using AsynchronousMetricValue = double;
using AsynchronousMetricValues = std::unordered_map<std::string, AsynchronousMetricValue>;
/** AsynchronousMetricLog is a log of metric values measured at regular time interval.
  */
struct AsynchronousMetricLogElement
{
    UInt16 event_date;
    time_t event_time;
    std::string metric_name;
    double value;
    static std::string name() { return "AsynchronousMetricLog"; }