> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# asynchronous_metrics_* server settings

> ClickHouse server settings in the asynchronous_metrics_* generated group.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Default</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Changeable without restart
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

These settings configure the ClickHouse server and are autogenerated from ClickHouse source.

<h2 id="asynchronous_metrics_enable_heavy_metrics">
  asynchronous\_metrics\_enable\_heavy\_metrics
</h2>

<SettingsInfoBlock type="Bool" default_value="0" changeable_without_restart="No" />Enable the calculation of heavy asynchronous metrics.

<h2 id="asynchronous_metrics_keeper_metrics_only">
  asynchronous\_metrics\_keeper\_metrics\_only
</h2>

<SettingsInfoBlock type="Bool" default_value="0" changeable_without_restart="No" />Make asynchronous metrics calculate the keeper-related metrics only.

<h2 id="asynchronous_metrics_key_values_mode">
  asynchronous\_metrics\_key\_values\_mode
</h2>

<SettingsInfoBlock type="AsynchronousMetricsKeyValuesMode" default_value="key_values" changeable_without_restart="Yes" />

In which form the key-value asynchronous metrics - those broken down per CPU core, block device, network interface, disk, temperature sensor, memory controller or logging channel - are published to [`system.asynchronous_metrics`](/docs/reference/system-tables/asynchronous_metrics), [`system.asynchronous_metric_log`](/docs/reference/system-tables/asynchronous_metric_log), the Prometheus endpoint and Graphite.

Possible values:

* `key_values` - every family is a single key-value metric: a `Map` in the `key_values` column of `system.asynchronous_metrics`, one row per key in `system.asynchronous_metric_log`, one Prometheus sample per key carrying a label such as `device="sda"`, and a `<prefix>.<Metric>.<key>` Graphite path.
* `legacy_names` - every key is a separate scalar metric with the key mangled into its name, as it was before version 26.8: `OSUserTimeCPU3`, `CPUFrequencyMHz_0`, `BlockReadBytes_sda`, `NetworkReceiveBytes_eth0`, `DiskTotal_default`, `Temperature0`, `EDAC0_Correctable`, and so on.
* `both` - both forms are published at once, which is useful while the monitoring is being migrated. Beware of double counting in this mode: an aggregate over metric names matching a prefix, such as `sum(value) ... WHERE metric LIKE 'NetworkReceiveBytes%'`, counts every value twice.

A key-value metric family introduced after version 26.8 has no legacy name and is always published in the key-value form.

The setting is applied on the fly: it is re-read on every update of the asynchronous metrics, so `SYSTEM RELOAD CONFIG` is enough to switch the form without a restart.

<h2 id="asynchronous_metrics_update_period_s">
  asynchronous\_metrics\_update\_period\_s
</h2>

<SettingsInfoBlock type="UInt32" default_value="1" changeable_without_restart="No" />Period in seconds for updating asynchronous metrics.
