**Use case**

It is better than hostname in the following example:
```
SELECT hostname() AS host, event_time, round(value, 2) AS v, bar(v, 0, 10, 100) FROM system.asynchronous_metric_log WHERE event_date >= yesterday() AND event_time >= now() - 300 AND metric = 'LoadAverage1' ORDER BY host, event_time
```

Because hostnames can be non-informative like `ip-172-31-5-46`.

#include <Functions/FunctionConstantBase.h>
#include <DataTypes/DataTypesNumber.h>
#include <DataTypes/DataTypeString.h>
#include <DataTypes/DataTypeUUID.h>
#include <Core/ServerUUID.h>
#include <Common/SymbolIndex.h>
#include <Common/DNSResolver.h>
#include <Common/DateLUT.h>
#include <Common/ClickHouseRevision.h>
#include <Poco/Environment.h>
#include "config_version.h"
namespace DB
{
namespace
{
#if defined(__ELF__) && !defined(OS_FREEBSD)
    
    class FunctionBuildId : public FunctionConstantBase<FunctionBuildId, String, DataTypeString>
    {
    public:
        static constexpr auto name = "buildId";
        static FunctionPtr create(ContextPtr context) { return std::make_shared<FunctionBuildId>(context); }
        explicit FunctionBuildId(ContextPtr context) : FunctionConstantBase(SymbolIndex::instance()->getBuildIDHex(), context->isDistributed()) {}
    };
#endif
    
    class FunctionHostName : public FunctionConstantBase<FunctionHostName, String, DataTypeString>